diff --git a/docs/dev/Dropbox.md b/docs/dev/Dropbox.md new file mode 100644 index 00000000000..20f2c950a9d --- /dev/null +++ b/docs/dev/Dropbox.md @@ -0,0 +1,59 @@ +#Dropbox and Drill +As of Drill 1.20.0 it is possible to connect Drill to a Dropbox account and query files stored there. Clearly, the performance will be much better if the files are stored +locally, however, if your data is located in dropbox Drill makes it easy to explore that data. + +## Creating an API Token +The first step to enabling Drill to query Dropbox is creating an API token. +1. Navigate to https://www.dropbox.com/developers/apps/create +2. Choose `Scoped Access` under Choose an API. +3. Depending on the access limitations you are looking for select either full or limited to a particular folder. +4. In the permissions tab, make sure all the permissions associated with reading data are enabled. + +Once you've done that, and hit submit, you'll see a section in your newly created Dropbox App called `Generated Access Token`. Copy the value here and that is what you will +use in your Drill configuration. + +## Configuring Drill +Once you've created a Dropbox access token, you are now ready to configure Drill to query Dropbox. To create a dropbox connection, in Drill's UI, navigate to the Storage tab, +click on `Create New Storage Plugin` and add the items below: + +```json +"type": "file", + "connection": "dropbox:///", + "config": { + "dropboxAccessToken": "" + }, + "workspaces": { + "root": { + "location": "/", + "writable": false, + "defaultInputFormat": null, + "allowAccessOutsideWorkspace": false + } + } +} +``` +Paste your access token in the appropriate field and at that point you should be able to query Dropbox. Drill treats Dropbox as any other file system, so all the instructions +here (https://drill.apache.org/docs/file-system-storage-plugin/) and here (https://drill.apache.org/docs/workspaces/) +about configuring a workspace, and adding format plugins are exactly the same as any other on Drill. + +### Securing Dropbox Credentials +As with any other storage plugin, you have a few options as to how to store the credentials. See [Drill Credentials Provider](./PluginCredentialsProvider.md) for more +information about how you can store your credentials securely in Drill. + +## Running the Unit Tests +Unfortunately, in order to run the unit tests, it is necessary to have an external API token. Therefore, the unit tests have to be run manually. To run the unit tests: + +1. Get your Dropbox API key as explained above and paste it above into the `ACCESS_TOKEN` variable. +2. In your dropbox account, create a folder called 'csv' and upload the file `hdf-test.csvh` into that folder +3. In your dropbox account, upload the file `http-pcap.json` to the root directory of your dropbox account +4. In the `testListFiles` test, you will have to update the modified dates +5. Run tests. + +### Test Files +Test files can be found in the `java-exec/src/test/resources/dropboxTestFiles` +folder. Simply copy these files in the structure there into your dropbox account. + +## Limitations +1. It is not possible to save files to Dropbox from Drill, thus CTAS queries will fail. +2. Dropbox does not expose directory metadata, so it is not possible to obtain the directory size, modification date or access dates. +3. Dropbox does not maintain the last access date as distinct from the modification date of files. diff --git a/exec/java-exec/pom.xml b/exec/java-exec/pom.xml index 167b675239c..5a09bd32650 100644 --- a/exec/java-exec/pom.xml +++ b/exec/java-exec/pom.xml @@ -94,6 +94,11 @@ asm-util ${asm.version} + + com.dropbox.core + dropbox-core-sdk + 4.0.1 + org.apache.drill.contrib.data tpch-sample-data diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ConnectorHandle.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ConnectorHandle.java index be5045ac424..63db41538d1 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/ConnectorHandle.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/ConnectorHandle.java @@ -20,6 +20,8 @@ import org.apache.drill.common.logical.StoragePluginConfig; import org.apache.drill.exec.store.PluginHandle.PluginType; import org.apache.drill.shaded.guava.com.google.common.base.Preconditions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Defines a storage connector: a storage plugin config along with the @@ -28,6 +30,8 @@ */ public class ConnectorHandle { + private static final Logger logger = LoggerFactory.getLogger(ConnectorHandle.class); + private final ConnectorLocator locator; private final Class configClass; diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/DropboxFileSystem.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/DropboxFileSystem.java new file mode 100644 index 00000000000..9e3fdb92447 --- /dev/null +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/DropboxFileSystem.java @@ -0,0 +1,280 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.store.dfs; + +import com.dropbox.core.DbxException; +import com.dropbox.core.DbxRequestConfig; +import com.dropbox.core.v2.DbxClientV2; +import com.dropbox.core.v2.files.FileMetadata; +import com.dropbox.core.v2.files.FolderMetadata; +import com.dropbox.core.v2.files.ListFolderResult; +import com.dropbox.core.v2.files.Metadata; +import org.apache.hadoop.fs.FSDataInputStream; +import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.PositionedReadable; +import org.apache.hadoop.fs.Seekable; +import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.util.Progressable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DropboxFileSystem extends FileSystem { + private static final Logger logger = LoggerFactory.getLogger(DropboxFileSystem.class); + + private static final String ERROR_MSG = "Dropbox is read only."; + private Path workingDirectory; + private DbxClientV2 client; + private FileStatus[] fileStatuses; + private final Map fileStatusCache = new HashMap<>(); + + @Override + public URI getUri() { + try { + return new URI("dropbox:///"); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + @Override + public FSDataInputStream open(Path path, int bufferSize) throws IOException { + FSDataInputStream fsDataInputStream; + String filename = getFileName(path); + client = getClient(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + try { + client.files().download(filename).download(out); + fsDataInputStream = new FSDataInputStream(new SeekableByteArrayInputStream(out.toByteArray())); + } catch (DbxException e) { + throw new IOException(e.getMessage()); + } + return fsDataInputStream; + } + + @Override + public FSDataOutputStream create(Path f, + FsPermission permission, + boolean overwrite, + int bufferSize, + short replication, + long blockSize, + Progressable progress) throws IOException { + throw new IOException(ERROR_MSG); + } + + @Override + public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException { + throw new IOException(ERROR_MSG); + } + + @Override + public boolean rename(Path src, Path dst) throws IOException { + return false; + } + + @Override + public boolean delete(Path f, boolean recursive) throws IOException { + throw new IOException(ERROR_MSG); + } + + @Override + public FileStatus[] listStatus(Path path) throws IOException { + client = getClient(); + List fileStatusList = new ArrayList<>(); + + // Get files and folder metadata from Dropbox root directory + try { + ListFolderResult result = client.files().listFolder(""); + while (true) { + for (Metadata metadata : result.getEntries()) { + fileStatusList.add(getFileInformation(metadata)); + } + if (!result.getHasMore()) { + break; + } + result = client.files().listFolderContinue(result.getCursor()); + } + } catch (DbxException e) { + throw new IOException(e.getMessage()); + } + + // Convert to Array + fileStatuses = new FileStatus[fileStatusList.size()]; + for (int i = 0; i < fileStatusList.size(); i++) { + fileStatuses[i] = fileStatusList.get(i); + } + + return fileStatuses; + } + + @Override + public void setWorkingDirectory(Path new_dir) { + logger.debug("Setting working directory to: " + new_dir.getName()); + workingDirectory = new_dir; + } + + @Override + public Path getWorkingDirectory() { + return workingDirectory; + } + + @Override + public boolean mkdirs(Path f, FsPermission permission) throws IOException { + throw new IOException(ERROR_MSG); + } + + @Override + public FileStatus getFileStatus(Path path) throws IOException { + String filePath = Path.getPathWithoutSchemeAndAuthority(path).toString(); + /* + * Dropbox does not allow metadata calls on the root directory + */ + if (filePath.equalsIgnoreCase("/")) { + return new FileStatus(0, true, 1, 0, 0, new Path("/")); + } + client = getClient(); + try { + Metadata metadata = client.files().getMetadata(filePath); + return getFileInformation(metadata); + } catch (Exception e) { + throw new IOException("Error accessing file " + filePath + "\n" + e.getMessage()); + } + } + + private FileStatus getFileInformation(Metadata metadata) { + if (fileStatusCache.containsKey(metadata.getPathLower())){ + return fileStatusCache.get(metadata.getPathLower()); + } + + FileStatus result; + if (isDirectory(metadata)) { + // Note: At the time of implementation, DropBox does not provide an efficient way of + // getting the size and/or modification times for folders. + result = new FileStatus(0, true, 1, 0, 0, new Path(metadata.getPathLower())); + } else { + FileMetadata fileMetadata = (FileMetadata) metadata; + result = new FileStatus(fileMetadata.getSize(), false, 1, 0, fileMetadata.getClientModified().getTime(), new Path(metadata.getPathLower())); + } + + fileStatusCache.put(metadata.getPathLower(), result); + return result; + } + + private DbxClientV2 getClient() { + if (this.client != null) { + return client; + } + + // read preferred client identifier from config or use "Apache/Drill" + String clientIdentifier = this.getConf().get("clientIdentifier", "Apache/Drill"); + logger.info("Creating dropbox client with client identifier: {}", clientIdentifier); + DbxRequestConfig config = DbxRequestConfig.newBuilder(clientIdentifier).build(); + + // read access token from config or credentials provider + logger.info("Reading dropbox access token from configuration or credentials provider"); + String accessToken = this.getConf().get("dropboxAccessToken", ""); + + this.client = new DbxClientV2(config, accessToken); + return this.client; + } + + private boolean isDirectory(Metadata metadata) { + return metadata instanceof FolderMetadata; + } + + private boolean isFile(Metadata metadata) { + return metadata instanceof FileMetadata; + } + + private String getFileName(Path path){ + return path.toUri().getPath(); + } + + static class SeekableByteArrayInputStream extends ByteArrayInputStream implements Seekable, PositionedReadable { + + public SeekableByteArrayInputStream(byte[] buf) + { + super(buf); + } + @Override + public long getPos() throws IOException{ + return pos; + } + + @Override + public void seek(long pos) throws IOException { + if (mark != 0) { + throw new IllegalStateException(); + } + + reset(); + long skipped = skip(pos); + + if (skipped != pos) { + throw new IOException(); + } + } + + @Override + public boolean seekToNewSource(long targetPos) throws IOException { + return false; + } + + @Override + public int read(long position, byte[] buffer, int offset, int length) throws IOException { + + if (position >= buf.length) { + throw new IllegalArgumentException(); + } + if (position + length > buf.length) { + throw new IllegalArgumentException(); + } + if (length > buffer.length) { + throw new IllegalArgumentException(); + } + + System.arraycopy(buf, (int) position, buffer, offset, length); + return length; + } + + @Override + public void readFully(long position, byte[] buffer) throws IOException { + read(position, buffer, 0, buffer.length); + + } + + @Override + public void readFully(long position, byte[] buffer, int offset, int length) throws IOException { + read(position, buffer, offset, length); + } + } +} diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java index 6cc733b189e..a1ee76e6b34 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemPlugin.java @@ -89,6 +89,7 @@ public FileSystemPlugin(FileSystemConfig config, DrillbitContext context, String fsConf.set(FileSystem.FS_DEFAULT_NAME_KEY, config.getConnection()); fsConf.set("fs.classpath.impl", ClassPathFileSystem.class.getName()); + fsConf.set("fs.dropbox.impl", DropboxFileSystem.class.getName()); fsConf.set("fs.drill-local.impl", LocalSyncableFileSystem.class.getName()); CredentialsProvider credentialsProvider = config.getCredentialsProvider(); if (credentialsProvider != null) { diff --git a/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json b/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json index f171fc21fb5..eb6d5ceb437 100644 --- a/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json +++ b/exec/java-exec/src/main/resources/bootstrap-storage-plugins.json @@ -202,6 +202,48 @@ } }, "enabled" : true + }, + "dropbox" : { + "type" : "file", + "connection" : "dropbox:///", + "config": { + "dropboxAccessToken": "" + }, + "workspaces" : { + "root" : { + "location" : "/", + "writable" : false + } + }, + "formats" : { + "csv" : { + "type" : "text", + "extensions" : [ "csv" ], + "fieldDelimiter" : "," + }, + "tsv" : { + "type" : "text", + "extensions" : [ "tsv" ], + "fieldDelimiter" : "\t" + }, + "json" : { + "type" : "json", + "extensions" : [ "json" ] + }, + "parquet" : { + "type" : "parquet" + }, + "avro" : { + "type" : "avro" + }, + "csvh" : { + "type" : "text", + "extensions" : [ "csvh" ], + "fieldDelimiter" : ",", + "extractHeader" : true + } + }, + "enabled" : false } } } diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/DropboxFileSystemTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/DropboxFileSystemTest.java new file mode 100644 index 00000000000..9385e38bc5e --- /dev/null +++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/DropboxFileSystemTest.java @@ -0,0 +1,194 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.store; + +import org.apache.drill.common.logical.FormatPluginConfig; +import org.apache.drill.common.logical.StoragePluginConfig; +import org.apache.drill.common.types.TypeProtos.DataMode; +import org.apache.drill.common.types.TypeProtos.MinorType; +import org.apache.drill.exec.physical.rowSet.RowSet; +import org.apache.drill.exec.record.metadata.SchemaBuilder; +import org.apache.drill.exec.record.metadata.TupleMetadata; +import org.apache.drill.exec.store.dfs.FileSystemConfig; +import org.apache.drill.exec.store.dfs.WorkspaceConfig; +import org.apache.drill.exec.store.easy.json.JSONFormatPlugin.JSONFormatConfig; +import org.apache.drill.exec.store.easy.text.TextFormatPlugin.TextFormatConfig; +import org.apache.drill.test.ClusterFixture; +import org.apache.drill.test.ClusterTest; +import org.apache.drill.test.rowSet.RowSetComparison; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +@Ignore("Please create a Dropbox API key and run these tests manually") +public class DropboxFileSystemTest extends ClusterTest { + + private static final String ACCESS_TOKEN = ""; + + /* + All test files can be found in java-exec/src/test/resources/dropboxTestFiles + + Instructions for running Dropbox Unit Tests + 1. Get your Dropbox API key as explained in the Drill docs and paste it above into the ACCESS_TOKEN variable. + 2. In your dropbox account, create a folder called 'csv' and upload the file hdf-test.csvh into that folder + 3. In your dropbox account, upload the file http-pcap.json to the root directory of your dropbox account + 4. In the testListFiles test, you will have to update the modified dates + 5. Run tests. + */ + + @BeforeClass + public static void setup() throws Exception { + assertTrue(! ACCESS_TOKEN.equalsIgnoreCase("")); + ClusterTest.startCluster(ClusterFixture.builder(dirTestWatcher)); + + Map dropboxConfigVars = new HashMap<>(); + dropboxConfigVars.put("dropboxAccessToken", ACCESS_TOKEN); + + // Create workspaces + WorkspaceConfig rootWorkspace = new WorkspaceConfig("/", false, null, false); + WorkspaceConfig csvWorkspace = new WorkspaceConfig("/csv", false, null, false); + Map workspaces = new HashMap<>(); + workspaces.put("root", rootWorkspace); + workspaces.put("csv", csvWorkspace); + + // Add formats + Map formats = new HashMap<>(); + List jsonExtensions = new ArrayList<>(); + jsonExtensions.add("json"); + FormatPluginConfig jsonFormatConfig = new JSONFormatConfig(jsonExtensions); + + // CSV Format + List csvExtensions = new ArrayList<>(); + csvExtensions.add("csv"); + csvExtensions.add("csvh"); + FormatPluginConfig csvFormatConfig = new TextFormatConfig(csvExtensions, "\n", ",", "\"", null, null, false, true); + + + StoragePluginConfig dropboxConfig = new FileSystemConfig("dropbox:///", dropboxConfigVars, workspaces, formats, null); + dropboxConfig.setEnabled(true); + + cluster.defineStoragePlugin("dropbox_test", dropboxConfig); + cluster.defineFormat("dropbox_test", "json", jsonFormatConfig); + cluster.defineFormat("dropbox_test", "csv", csvFormatConfig); + } + + @Test + @Ignore("Please create a Dropbox API key and run this test manually") + public void testListFiles() throws Exception { + String sql = "SHOW FILES IN dropbox_test.root"; + RowSet results = client.queryBuilder().sql(sql).rowSet(); + assertEquals(3, results.rowCount()); + + TupleMetadata expectedSchema = new SchemaBuilder() + .addNullable("name", MinorType.VARCHAR) + .add("isDirectory", MinorType.BIT) + .add("isFile", MinorType.BIT) + .add("length", MinorType.BIGINT) + .add("owner", MinorType.VARCHAR, DataMode.OPTIONAL) + .add("group", MinorType.VARCHAR, DataMode.OPTIONAL) + .add("permissions", MinorType.VARCHAR, DataMode.OPTIONAL) + .add("accessTime", MinorType.TIMESTAMP, DataMode.OPTIONAL) + .add("modificationTime", MinorType.TIMESTAMP, DataMode.OPTIONAL) + .buildSchema(); + + RowSet expected = client.rowSetBuilder(expectedSchema) + .addRow("csv", true, false, 0, "", "", "rwxrwxrwx", -18000000L, -18000000L) + .addRow("http-pcap.json", false, true, 22898, "", "", "rw-rw-rw-", -18000000L, 1614644137000L) + .addRow("icon.png", false, true, 111808, "", "", "rw-rw-rw-", -18000000L, 1615112058000L) + .build(); + + new RowSetComparison(expected).verifyAndClearAll(results); + + } + + @Test + @Ignore("Please create a Dropbox API key and run this test manually") + public void testJSONQuery() throws Exception { + String sql = "SELECT `time` AS packet_time, Ethernet, " + + "`timestamp` AS packet_timestamp, " + + "IP, TCP, UDP, DNS " + + "FROM dropbox_test.`/http-pcap.json` LIMIT 5"; + + RowSet results = client.queryBuilder().sql(sql).rowSet(); + assertEquals(5, results.rowCount()); + assertEquals(7,results.batchSchema().getFieldCount()); + } + + @Test + @Ignore("Please create a Dropbox API key and run this test manually") + public void testCSVQuery() throws Exception { + String sql = "select * from dropbox_test.`csv/hdf-test.csv` LIMIT 5"; + RowSet results = client.queryBuilder().sql(sql).rowSet(); + + TupleMetadata expectedSchema = new SchemaBuilder() + .add("id", MinorType.VARCHAR) + .add("first_name", MinorType.VARCHAR) + .add("last_name", MinorType.VARCHAR) + .add("email", MinorType.VARCHAR) + .add("gender", MinorType.VARCHAR) + .add("birthday", MinorType.VARCHAR) + .add("order_count", MinorType.VARCHAR) + .build(); + + RowSet expected = client.rowSetBuilder(expectedSchema) + .addRow("1", "Wandie", "Osburn", "wosburn0@phoca.cz", "Female", "1971-03-27", "45") + .addRow("2", "Paddie", "Cosans", "pcosans1@gov.uk", "Male", "1960-09-21", "97") + .addRow("3", "Melisande", "Targett", "mtargett2@networksolutions.com", "Female", "1952-02-28", "61") + .addRow( "4", "Kristofor", "Levi", "klevi3@sciencedaily.com", "Male", "1985-07-14", "72") + .addRow("5", "Heinrik", "Emanuelli", "hemanuelli4@mapquest.com", "Male", "2009-05-28", "29") + .build(); + + new RowSetComparison(expected).verifyAndClearAll(results); + } + + @Test + @Ignore("Please create a Dropbox API key and run this test manually") + public void testCSVQueryWithWorkspace() throws Exception { + String sql = "select * from dropbox_test.csv.`hdf-test.csv` LIMIT 5"; + RowSet results = client.queryBuilder().sql(sql).rowSet(); + + TupleMetadata expectedSchema = new SchemaBuilder() + .add("id", MinorType.VARCHAR) + .add("first_name", MinorType.VARCHAR) + .add("last_name", MinorType.VARCHAR) + .add("email", MinorType.VARCHAR) + .add("gender", MinorType.VARCHAR) + .add("birthday", MinorType.VARCHAR) + .add("order_count", MinorType.VARCHAR) + .build(); + + RowSet expected = client.rowSetBuilder(expectedSchema) + .addRow("1", "Wandie", "Osburn", "wosburn0@phoca.cz", "Female", "1971-03-27", "45") + .addRow("2", "Paddie", "Cosans", "pcosans1@gov.uk", "Male", "1960-09-21", "97") + .addRow("3", "Melisande", "Targett", "mtargett2@networksolutions.com", "Female", "1952-02-28", "61") + .addRow( "4", "Kristofor", "Levi", "klevi3@sciencedaily.com", "Male", "1985-07-14", "72") + .addRow("5", "Heinrik", "Emanuelli", "hemanuelli4@mapquest.com", "Male", "2009-05-28", "29") + .build(); + + new RowSetComparison(expected).verifyAndClearAll(results); + } +} diff --git a/exec/java-exec/src/test/resources/dropboxTestFiles/csv/hdf-test.csvh b/exec/java-exec/src/test/resources/dropboxTestFiles/csv/hdf-test.csvh new file mode 100644 index 00000000000..c38055cbcdd --- /dev/null +++ b/exec/java-exec/src/test/resources/dropboxTestFiles/csv/hdf-test.csvh @@ -0,0 +1,101 @@ +id,first_name,last_name,email,gender,birthday,order_count +1,Wandie,Osburn,wosburn0@phoca.cz,Female,1971-03-27,45 +2,Paddie,Cosans,pcosans1@gov.uk,Male,1960-09-21,97 +3,Melisande,Targett,mtargett2@networksolutions.com,Female,1952-02-28,61 +4,Kristofor,Levi,klevi3@sciencedaily.com,Male,1985-07-14,72 +5,Heinrik,Emanuelli,hemanuelli4@mapquest.com,Male,2009-05-28,29 +6,Tally,Leddie,tleddie5@go.com,Female,2014-04-22,12 +7,Stanford,Lindenberg,slindenberg6@wsj.com,Male,2018-06-07,36 +8,Morna,Halton,mhalton7@typepad.com,Female,1963-05-25,3 +9,Antonio,Pughsley,apughsley8@google.com,Male,1978-04-18,63 +10,Zonda,Lalley,zlalley9@ameblo.jp,Female,2002-08-12,69 +11,Kenon,Girk,kgirka@intel.com,Male,1952-10-28,9 +12,Greta,Baynard,gbaynardb@cloudflare.com,Female,1959-07-02,35 +13,Adolphus,Ritelli,aritellic@apache.org,Male,1972-01-16,23 +14,Peterus,Larderot,plarderotd@npr.org,Male,1990-12-03,65 +15,Benji,Eccleshare,becclesharee@mashable.com,Male,1982-12-11,5 +16,Dean,Asty,dastyf@aol.com,Male,1993-03-05,98 +17,Rodie,Bowton,rbowtong@gnu.org,Female,1969-05-14,75 +18,Joanna,Rhodef,jrhodefh@engadget.com,Female,1960-09-05,94 +19,Lucio,Hann,lhanni@patch.com,Male,2011-11-04,91 +20,Stavro,Callan,scallanj@bloglovin.com,Male,1995-09-22,34 +21,Berk,Hollibone,bhollibonek@narod.ru,Male,1988-02-09,13 +22,Doretta,Connerry,dconnerryl@nyu.edu,Female,2014-03-29,63 +23,Elyse,Blackah,eblackahm@baidu.com,Female,1995-11-01,88 +24,Elwira,Anselm,eanselmn@walmart.com,Female,1952-09-08,80 +25,Jay,Swatten,jswatteno@hubpages.com,Male,1983-10-25,73 +26,Gnni,Summerbell,gsummerbellp@cornell.edu,Female,1959-01-21,77 +27,Beatriz,Abazi,babaziq@cyberchimps.com,Female,2016-07-09,43 +28,Jermaine,Parlet,jparletr@cnn.com,Male,1958-02-22,14 +29,Bradney,Prugel,bprugels@vimeo.com,Male,1972-03-01,98 +30,Drake,Lambregts,dlambregtst@weather.com,Male,2015-04-03,2 +31,Payton,Jarrelt,pjarreltu@about.com,Male,1962-10-09,36 +32,Karrah,Diaper,kdiaperv@instagram.com,Female,1958-03-18,49 +33,Tadio,Pina,tpinaw@posterous.com,Male,1990-07-30,14 +34,Carr,Dunkerton,cdunkertonx@upenn.edu,Male,2001-05-06,33 +35,Brady,Ryburn,bryburny@a8.net,Male,2017-05-07,56 +36,Flint,Palmar,fpalmarz@home.pl,Male,1979-05-23,71 +37,Madella,Guillard,mguillard10@multiply.com,Female,2015-07-31,99 +38,Elysia,Watts,ewatts11@geocities.com,Female,1950-05-19,98 +39,Candida,Sottell,csottell12@nymag.com,Female,1972-03-23,12 +40,Jeremiah,Andrichuk,jandrichuk13@nasa.gov,Male,2012-04-05,34 +41,Eldon,Worral,eworral14@utexas.edu,Male,1963-06-17,88 +42,Brocky,Minihan,bminihan15@t-online.de,Male,1952-05-27,10 +43,Sim,Lombardo,slombardo16@instagram.com,Male,2010-03-19,19 +44,Bradford,Dallin,bdallin17@yale.edu,Male,1985-08-05,80 +45,Trudy,Nunnerley,tnunnerley18@pagesperso-orange.fr,Female,1951-11-24,83 +46,Chancey,Lankham,clankham19@gizmodo.com,Male,1967-01-23,54 +47,Bianca,Dwelley,bdwelley1a@xrea.com,Female,1995-03-24,32 +48,Andromache,Brabyn,abrabyn1b@amazon.co.jp,Female,1952-07-01,77 +49,Gisele,Baffin,gbaffin1c@elegantthemes.com,Female,2002-02-15,51 +50,Sig,Jantet,sjantet1d@hao123.com,Male,2016-12-15,64 +51,Shalne,Speers,sspeers1e@artisteer.com,Female,1986-02-08,51 +52,Cordy,Kilbey,ckilbey1f@wikimedia.org,Female,1993-12-11,47 +53,Theresa,Hovard,thovard1g@ebay.com,Female,1961-01-09,48 +54,Shaylyn,Rowson,srowson1h@163.com,Female,2010-06-20,81 +55,Marrilee,Carsey,mcarsey1i@etsy.com,Female,1975-08-20,26 +56,Elvis,Pettwood,epettwood1j@guardian.co.uk,Male,1977-11-22,61 +57,Hermione,Chamberlayne,hchamberlayne1k@unesco.org,Female,1967-06-02,56 +58,Eleanore,Dullaghan,edullaghan1l@telegraph.co.uk,Female,1981-01-14,78 +59,Traver,Walaron,twalaron1m@ucla.edu,Male,1976-07-07,17 +60,Linet,Danzelman,ldanzelman1n@mail.ru,Female,2016-09-09,66 +61,Micaela,Ciani,mciani1o@goo.ne.jp,Female,1975-01-20,92 +62,Giraud,Jansens,gjansens1p@eventbrite.com,Male,2017-09-30,88 +63,Melicent,Brack,mbrack1q@addtoany.com,Female,2007-12-01,12 +64,Valli,Peacock,vpeacock1r@a8.net,Female,1962-08-28,38 +65,Chelsie,Vanner,cvanner1s@rambler.ru,Female,2008-11-05,47 +66,Maia,Bravery,mbravery1t@earthlink.net,Female,1954-05-03,63 +67,Raimondo,Battleson,rbattleson1u@cdc.gov,Male,1953-12-05,2 +68,Bord,Kalinke,bkalinke1v@cdbaby.com,Male,1972-03-25,36 +69,Aeriela,Saby,asaby1w@dropbox.com,Female,1990-02-28,13 +70,Daffi,Godridge,dgodridge1x@archive.org,Female,1999-12-04,5 +71,Belva,Myers,bmyers1y@harvard.edu,Female,1989-12-24,53 +72,Tamra,De Coursey,tdecoursey1z@ifeng.com,Female,1985-06-21,50 +73,Carrissa,Officer,cofficer20@fotki.com,Female,1957-12-04,51 +74,Ardra,Joplin,ajoplin21@mysql.com,Female,2014-06-25,90 +75,Frank,Duffil,fduffil22@who.int,Female,1979-06-27,43 +76,Shandeigh,Quernel,squernel23@techcrunch.com,Female,2006-12-25,34 +77,Augustina,Elizabeth,aelizabeth24@alibaba.com,Female,1985-04-29,14 +78,Meryl,Bachellier,mbachellier25@aboutads.info,Female,1995-04-03,64 +79,Ronni,Mould,rmould26@cbsnews.com,Female,1991-07-19,84 +80,Helli,Featherstonehaugh,hfeatherstonehaugh27@oracle.com,Female,1986-04-24,24 +81,Blaire,Kwietak,bkwietak28@scientificamerican.com,Female,1967-07-02,74 +82,Dominic,Barthel,dbarthel29@biglobe.ne.jp,Male,1974-01-02,70 +83,Cristin,Astill,castill2a@youtube.com,Female,1962-10-20,28 +84,Rosemaria,Anders,randers2b@nsw.gov.au,Female,1977-03-24,25 +85,Nita,Bartomeu,nbartomeu2c@home.pl,Female,1986-06-03,94 +86,Alano,Atger,aatger2d@gravatar.com,Male,1954-09-04,32 +87,Arabella,Stading,astading2e@icq.com,Female,1990-08-28,13 +88,Thomas,Robecon,trobecon2f@qq.com,Male,1994-09-28,69 +89,Alicea,Nettleship,anettleship2g@netlog.com,Female,1997-01-17,34 +90,Corrinne,Corless,ccorless2h@bravesites.com,Female,2004-05-29,86 +91,Anneliese,Feldharker,afeldharker2i@yandex.ru,Female,2008-03-21,28 +92,Tomkin,Barkworth,tbarkworth2j@prweb.com,Male,1990-01-26,41 +93,Amble,Isson,aisson2k@t.co,Male,2002-06-24,4 +94,Julietta,Masdon,jmasdon2l@abc.net.au,Female,1967-08-31,26 +95,Stephanus,Duplain,sduplain2m@linkedin.com,Male,1950-11-19,76 +96,Vivi,Loveless,vloveless2n@wired.com,Female,1963-03-31,72 +97,Clyde,Goldsberry,cgoldsberry2o@tripod.com,Male,2000-01-20,87 +98,Aldis,Aronstein,aaronstein2p@mac.com,Male,2011-06-04,37 +99,Flynn,Rings,frings2q@arizona.edu,Male,2011-05-19,55 +100,Rozanna,Wallace,rwallace2r@uol.com.br,Female,1963-05-03,72 diff --git a/exec/java-exec/src/test/resources/dropboxTestFiles/http-pcap.json b/exec/java-exec/src/test/resources/dropboxTestFiles/http-pcap.json new file mode 100644 index 00000000000..af9d44d7c77 --- /dev/null +++ b/exec/java-exec/src/test/resources/dropboxTestFiles/http-pcap.json @@ -0,0 +1 @@ +[{"time": 1084443427.311224, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:07.311224", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3905, "len": 48, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37355}, "TCP": {"dport": 80, "seq": 951057939, "sport": 3372, "options": {"NOP": null, "SAckOK": "", "MSS": 1460}, "dataofs": 7, "urgptr": 0, "flags": 2, "reserved": 0, "chksum": 49932, "ack": 0, "window": 8760}}, {"time": 1084443428.222534, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:08.222534", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 0, "len": 48, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 61996}, "TCP": {"dport": 3372, "seq": 290218379, "sport": 80, "options": {"NOP": null, "SAckOK": "", "MSS": 1380}, "dataofs": 7, "urgptr": 0, "flags": 18, "reserved": 0, "chksum": 23516, "ack": 951057940, "window": 5840}}, {"time": 1084443428.222534, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:08.222534", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3908, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37360}, "TCP": {"dport": 80, "seq": 951057940, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 31076, "ack": 290218380, "window": 9660}}, {"time": 1084443428.222534, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:08.222534", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3909, "len": 519, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 36880}, "TCP": {"dport": 80, "seq": 951057940, "sport": 3372, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 43352, "ack": 290218380, "window": 9660}}, {"time": 1084443428.78334, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:08.783340", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49310, "len": 40, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 12694}, "TCP": {"dport": 3372, "seq": 290218380, "sport": 80, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 33825, "ack": 951058419, "window": 6432}}, {"time": 1084443428.993643, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:08.993643", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49311, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11313}, "TCP": {"dport": 3372, "seq": 290218380, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 11018, "ack": 951058419, "window": 6432}}, {"time": 1084443429.12383, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:09.123830", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3910, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37358}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 29217, "ack": 290219760, "window": 9660}}, {"time": 1084443429.12383, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:09.123830", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49312, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11312}, "TCP": {"dport": 3372, "seq": 290219760, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 50001, "ack": 951058419, "window": 6432}}, {"time": 1084443429.324118, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:09.324118", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3911, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37357}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 27837, "ack": 290221140, "window": 9660}}, {"time": 1084443429.754737, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:09.754737", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49313, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11311}, "TCP": {"dport": 3372, "seq": 290221140, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 3659, "ack": 951058419, "window": 6432}}, {"time": 1084443429.864896, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:09.864896", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49314, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11310}, "TCP": {"dport": 3372, "seq": 290222520, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 57653, "ack": 951058419, "window": 6432}}, {"time": 1084443429.864896, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:09.864896", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3912, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37356}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 25077, "ack": 290223900, "window": 9660}}, {"Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "UDP": {"dport": 53, "len": 55, "sport": 3009, "chksum": 4271}, "timestamp": "2004-05-13T10:17:09.864896", "IP": {"frag": 0, "dst": "145.253.2.203", "ihl": 5, "src": "145.254.160.237", "id": 3913, "len": 75, "proto": 17, "ttl": 128, "version": 4, "flags": 0, "options": [], "tos": 0, "chksum": 25509}, "time": 1084443429.864896, "DNS": {"ancount": 0, "nscount": 0, "qr": 0, "z": 0, "opcode": 0, "ar": null, "ad": 0, "id": 35, "rd": 1, "rcode": 0, "ra": 0, "ns": null, "cd": 0, "qd": {"qtype": 1, "qname": "pagead2.googlesyndication.com.", "qclass": 1}, "qdcount": 1, "tc": 0, "aa": 0, "an": null, "arcount": 0}}, {"time": 1084443429.945011, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:09.945011", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49315, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11309}, "TCP": {"dport": 3372, "seq": 290223900, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 41848, "ack": 951058419, "window": 6432}}, {"time": 1084443430.12527, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.125270", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3914, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37354}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 23697, "ack": 290225280, "window": 9660}}, {"time": 1084443430.205385, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.205385", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49316, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11308}, "TCP": {"dport": 3372, "seq": 290225280, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 39171, "ack": 951058419, "window": 6432}}, {"Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "UDP": {"dport": 3009, "len": 154, "sport": 53, "chksum": 12290}, "timestamp": "2004-05-13T10:17:10.225414", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "145.253.2.203", "id": 5525, "len": 174, "proto": 17, "ttl": 249, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 41973}, "time": 1084443430.225414, "DNS": {"ancount": 4, "nscount": 0, "qr": 1, "z": 0, "opcode": 0, "ar": null, "ad": 0, "id": 35, "rd": 1, "rcode": 0, "ra": 1, "ns": null, "cd": 0, "qd": {"qtype": 1, "qname": "pagead2.googlesyndication.com.", "qclass": 1}, "qdcount": 1, "tc": 0, "aa": 0, "an": {"rrname": "pagead2.googlesyndication.com.", "rdata": "pagead2.google.com.", "ttl": 48321, "rclass": 1, "type": 5}, "arcount": 0}}, {"time": 1084443430.295515, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.295515", "IP": {"frag": 0, "dst": "216.239.59.99", "ihl": 5, "src": "145.254.160.237", "id": 3917, "len": 761, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 41331}, "TCP": {"dport": 80, "seq": 918691368, "sport": 3371, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 2916, "ack": 778785668, "window": 8760}}, {"time": 1084443430.325558, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.325558", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3918, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37350}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 22317, "ack": 290226660, "window": 9660}}, {"time": 1084443430.686076, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.686076", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49317, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11307}, "TCP": {"dport": 3372, "seq": 290226660, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 8061, "ack": 951058419, "window": 6432}}, {"time": 1084443430.806249, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.806249", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49318, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11306}, "TCP": {"dport": 3372, "seq": 290228040, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 48399, "ack": 951058419, "window": 6432}}, {"time": 1084443430.806249, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.806249", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3919, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37349}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 19557, "ack": 290229420, "window": 9660}}, {"time": 1084443430.946451, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.946451", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49319, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11305}, "TCP": {"dport": 3372, "seq": 290229420, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 49029, "ack": 951058419, "window": 6432}}, {"time": 1084443430.956465, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:10.956465", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "216.239.59.99", "id": 34104, "len": 40, "proto": 6, "ttl": 55, "version": 4, "flags": 0, "options": [], "tos": 16, "chksum": 46921}, "TCP": {"dport": 3371, "seq": 778785668, "sport": 80, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 1676, "ack": 918692089, "window": 31460}}, {"time": 1084443431.12671, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.126710", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3920, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37348}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 18177, "ack": 290230800, "window": 9660}}, {"time": 1084443431.226854, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.226854", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "216.239.59.99", "id": 34254, "len": 1470, "proto": 6, "ttl": 55, "version": 4, "flags": 0, "options": [], "tos": 16, "chksum": 45341}, "TCP": {"dport": 3371, "seq": 778785668, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 44249, "ack": 918692089, "window": 31460}}, {"time": 1084443431.266912, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.266912", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "216.239.59.99", "id": 34255, "len": 200, "proto": 6, "ttl": 55, "version": 4, "flags": 0, "options": [], "tos": 16, "chksum": 46610}, "TCP": {"dport": 3371, "seq": 778787098, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 56873, "ack": 918692089, "window": 31460}}, {"time": 1084443431.266912, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.266912", "IP": {"frag": 0, "dst": "216.239.59.99", "ihl": 5, "src": "145.254.160.237", "id": 3923, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 42046}, "TCP": {"dport": 80, "seq": 918692089, "sport": 3371, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 22786, "ack": 778787258, "window": 8760}}, {"time": 1084443431.417128, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.417128", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49320, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11304}, "TCP": {"dport": 3372, "seq": 290230800, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 33785, "ack": 951058419, "window": 6432}}, {"time": 1084443431.527286, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.527286", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3926, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37342}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 16797, "ack": 290232180, "window": 9660}}, {"time": 1084443431.5373, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.537300", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49321, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11303}, "TCP": {"dport": 3372, "seq": 290232180, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 24453, "ack": 951058419, "window": 6432}}, {"time": 1084443431.667488, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.667488", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49322, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11302}, "TCP": {"dport": 3372, "seq": 290233560, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 1562, "ack": 951058419, "window": 6432}}, {"time": 1084443431.667488, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.667488", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3927, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37341}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 14037, "ack": 290234940, "window": 9660}}, {"time": 1084443431.807689, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.807689", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49323, "len": 1420, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 11301}, "TCP": {"dport": 3372, "seq": 290234940, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 14700, "ack": 951058419, "window": 6432}}, {"time": 1084443431.807689, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:11.807689", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3928, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37340}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 12657, "ack": 290236320, "window": 9660}}, {"time": 1084443432.088092, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:12.088092", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "216.239.59.99", "id": 36076, "len": 1470, "proto": 6, "ttl": 55, "version": 4, "flags": 0, "options": [], "tos": 16, "chksum": 43519}, "TCP": {"dport": 3371, "seq": 778785668, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 44249, "ack": 918692089, "window": 31460}}, {"time": 1084443432.088092, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:12.088092", "IP": {"frag": 0, "dst": "216.239.59.99", "ihl": 5, "src": "145.254.160.237", "id": 3929, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 42040}, "TCP": {"dport": 80, "seq": 918692089, "sport": 3371, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 22786, "ack": 778787258, "window": 8760}}, {"time": 1084443432.158193, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:12.158193", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49324, "len": 464, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 12256}, "TCP": {"dport": 3372, "seq": 290236320, "sport": 80, "options": {}, "dataofs": 5, "urgptr": 0, "flags": 24, "reserved": 0, "chksum": 15767, "ack": 951058419, "window": 6432}}, {"time": 1084443432.328438, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:12.328438", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3932, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37336}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 12657, "ack": 290236744, "window": 9236}}, {"time": 1084443445.216971, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:25.216971", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 49325, "len": 40, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 12679}, "TCP": {"dport": 3372, "seq": 290236744, "sport": 80, "dataofs": 5, "urgptr": 0, "flags": 17, "reserved": 0, "chksum": 15460, "ack": 951058419, "window": 6432}}, {"time": 1084443445.216971, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:25.216971", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3935, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37333}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 12656, "ack": 290236745, "window": 9236}}, {"time": 1084443457.374452, "Ethernet": {"src": "00:00:01:00:00:00", "dst": "fe:ff:20:00:01:00", "type": 2048}, "timestamp": "2004-05-13T10:17:37.374452", "IP": {"frag": 0, "dst": "65.208.228.223", "ihl": 5, "src": "145.254.160.237", "id": 3938, "len": 40, "proto": 6, "ttl": 128, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 37330}, "TCP": {"dport": 80, "seq": 951058419, "sport": 3372, "dataofs": 5, "urgptr": 0, "flags": 17, "reserved": 0, "chksum": 12655, "ack": 290236745, "window": 9236}}, {"time": 1084443457.704928, "Ethernet": {"src": "fe:ff:20:00:01:00", "dst": "00:00:01:00:00:00", "type": 2048}, "timestamp": "2004-05-13T10:17:37.704928", "IP": {"frag": 0, "dst": "145.254.160.237", "ihl": 5, "src": "65.208.228.223", "id": 0, "len": 40, "proto": 6, "ttl": 47, "version": 4, "flags": 2, "options": [], "tos": 0, "chksum": 62004}, "TCP": {"dport": 3372, "seq": 290236745, "sport": 80, "dataofs": 5, "urgptr": 0, "flags": 16, "reserved": 0, "chksum": 15459, "ack": 951058420, "window": 6432}}] \ No newline at end of file diff --git a/exec/jdbc-all/pom.xml b/exec/jdbc-all/pom.xml index 17a518281e1..a3d5221e7b5 100644 --- a/exec/jdbc-all/pom.xml +++ b/exec/jdbc-all/pom.xml @@ -184,6 +184,10 @@ org.owasp.encoder encoder + + com.dropbox.core + dropbox-core-sdk + org.apache.commons commons-compress @@ -329,6 +333,8 @@ dom4j:* org.hibernate:* antlr:* + com.dropbox.* + com.github.stefanbirkner org.ow2.asm:* com.univocity:* net.sf.jpam:*