Alexander Stoyakin 2e99bc2dee [WIP] Handling binary data in DL4J servlet (#135)
* Binary deser

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Binary mode for servlet

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Added test

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* -sRandom image generation copied from datavec

* -sRandom image generation copied from datavec

* Remove serialization constraints

* Fix:

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Removed unused code

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Resources usage

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Async inference

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Cleanup

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* -sTest corrected

* Cleanup

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Mutually eclusive serializers/deserializers

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Binary output supported

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Binary out test

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* - types hardcoded
- increased payload size limit

Signed-off-by: raver119 <raver119@gmail.com>

* change types constant

Signed-off-by: raver119 <raver119@gmail.com>
2019-08-23 17:00:55 +03:00

546 lines
22 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Copyright (c) 2015-2018 Skymind, Inc.
~
~ This program and the accompanying materials are made available under the
~ terms of the Apache License, Version 2.0 which is available at
~ https://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.
~
~ SPDX-License-Identifier: Apache-2.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-parent</artifactId>
<packaging>pom</packaging>
<name>DeepLearning4j</name>
<url>http://deeplearning4j.org/</url>
<description>DeepLearning for java</description>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>agibsonccc</id>
<name>Adam Gibson</name>
<email>adam@skymind.io</email>
</developer>
<developer>
<id>chrisvnicholson</id>
<name>Chris Nicholson</name>
<email>chris@skymind.io</email>
</developer>
<developer>
<id>jpatanooga</id>
<name>Josh Patterson</name>
</developer>
<developer>
<id>AlexDBlack</id>
<name>Alex Black</name>
</developer>
<developer>
<id>nyghtowl</id>
<name>Melanie Warrick</name>
</developer>
<developer>
<id>raver119</id>
<name>Vyacheslav Kokorin</name>
</developer>
<developer>
<id>saudet</id>
<name>Samuel Audet</name>
</developer>
<developer>
<id>eraly</id>
<name>Susan Eraly</name>
</developer>
<developer>
<id>kepricon</id>
<name>Daehyun Kim</name>
</developer>
<!--current & previous core contributers and company developers-->
<developer>
<id>smarthi</id>
<name>Suneel Marthi</name>
</developer>
<developer>
<id>taisukeoe</id>
<name>Taisuke Oe</name>
</developer>
<developer>
<id>treo</id>
<name>Paul Dubs</name>
</developer>
<developer>
<id>EronWright</id>
<name>Eron Wright</name>
</developer>
<developer>
<id>jyt109</id>
<name>Jeffrey Tang</name>
</developer>
<developer>
<id>sonaliii</id>
<name>Sonali Dayal</name>
</developer>
<developer>
<id>emmjaykay</id>
<name>emmjaykay</name>
</developer>
<developer>
<id>crockpotveggies</id>
<name>Justin Long</name>
</developer>
</developers>
<scm>
<connection>scm:git://github.com:deeplearning4j/deeplearning4j.git</connection>
<developerConnection>scm:git:git@github.com:deeplearning4j/deeplearning4j.git
</developerConnection>
<url>git@github.com:deeplearning4j/deeplearning4j.git</url>
<tag>HEAD</tag>
</scm>
<modules>
<module>deeplearning4j-core</module>
<module>deeplearning4j-scaleout</module>
<module>deeplearning4j-ui-parent</module>
<module>deeplearning4j-graph</module>
<module>deeplearning4j-nlp-parent</module>
<module>deeplearning4j-nn</module>
<module>deeplearning4j-dataimport-solrj</module>
<module>deeplearning4j-modelimport</module>
<module>deeplearning4j-modelexport-solr</module>
<module>deeplearning4j-zoo</module>
<module>deeplearning4j-nearestneighbors-parent</module>
<module>deeplearning4j-data</module>
<module>deeplearning4j-manifold</module>
<module>deeplearning4j-util</module>
<module>dl4j-perf</module>
<module>dl4j-integration-tests</module>
<module>deeplearning4j-common</module>
<module>deeplearning4j-remote</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>${commonsmath.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http</artifactId>
<version>2.9</version>
</extension>
<extension>
<groupId>org.kuali.maven.wagons</groupId>
<artifactId>maven-s3-wagon</artifactId>
<version>1.2.1</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<phase>test</phase>
<id>enforce-choice-of-nd4j-test-backend</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<skip>${skipBackendChoice}</skip>
<rules>
<requireActiveProfile>
<profiles>test-nd4j-native,test-nd4j-cuda-10.1</profiles>
<all>false</all>
</requireActiveProfile>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.lewisd</groupId>
<artifactId>lint-maven-plugin</artifactId>
<version>${maven-lint-plugin.version}</version>
<configuration>
<failOnViolation>true</failOnViolation>
<onlyRunRules>
<rule>DuplicateDep</rule>
<rule>RedundantPluginVersion</rule>
<!-- Rules incompatible with Java 9
<rule>VersionProp</rule>
<rule>DotVersionProperty</rule> -->
</onlyRunRules>
<xmlOutputFile>${project.build.directory}/maven-lint-result.xml</xmlOutputFile>
</configuration>
<executions>
<execution>
<id>pom-lint</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>${maven-formatter-plugin.version}</version>
<configuration>
<configFile>${session.executionRootDirectory}/contrib/formatter.xml</configFile>
<directories>
<directory>deeplearning4j-core</directory>
<directory>deeplearning4j-scaleout</directory>
<directory>deeplearning4j-ui-parent</directory>
<directory>deeplearning4j-graph</directory>
<directory>deeplearning4j-cuda</directory>
<directory>deeplearning4j-nlp-parent</directory>
<directory>deeplearning4j-nn</directory>
<directory>deeplearning4j-dataimport-solrj</directory>
<directory>deeplearning4j-modelimport</directory>
<directory>deeplearning4j-modelexport-solr</directory>
<directory>deeplearning4j-zoo</directory>
<directory>deeplearning4j-nearestneighbors-parent</directory>
</directories>
</configuration>
</plugin>
<!-- Configuration for git-commit-id plugin - used with ND4J version check functionality -->
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${maven-git-commit-id-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
<phase>generate-resources</phase>
</execution>
</executions>
<configuration>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>
${project.basedir}/target/generated-sources/src/main/resources/ai/skymind/${project.groupId}-${project.artifactId}-git.properties
</generateGitPropertiesFilename>
<gitDescribe>
<skip>true</skip>
</gitDescribe>
</configuration>
</plugin>
<!-- Add generated git.properties files resource directory, for output of git-commit-id plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${maven-build-helper-plugin.version}</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>
${project.basedir}/target/generated-sources/src/main/resources
</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<inherited>true</inherited>
<configuration>
<!--
By default: Surefire will set the classpath based on the manifest. Because tests are not included
in the JAR, any tests that rely on class path scanning for resources in the tests directory will not
function correctly without this configuratino.
For example, tests for custom layers (where the custom layer is defined in the test directory)
will fail due to the custom layer not being found on the classpath.
http://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html
-->
<useSystemClassLoader>true</useSystemClassLoader>
<useManifestOnlyJar>false</useManifestOnlyJar>
<argLine>-Ddtype=float -Xmx8g</argLine>
<includes>
<!-- Default setting only runs tests that start/end with "Test" -->
<include>*.java</include>
<include>**/*.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
<configuration>
<mavenExecutorId>forked-path</mavenExecutorId>
<!-- To deploy to an open staging repository: -Darguments=-DstagingRepositoryId=orgdeeplearning4j-xxxx -->
<arguments>-Psonatype-oss-release -DskipTests ${arguments}</arguments>
<localCheckout>true</localCheckout>
<pushChanges>false</pushChanges>
</configuration>
</plugin>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<configuration>
<passphrase>${gpg.passphrase}</passphrase>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>${maven-lifecycle-mapping-plugin.version}</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.lewisd</groupId>
<artifactId>lint-maven-plugin</artifactId>
<versionRange>[0.0.11,)</versionRange>
<goals>
<goal>check</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>cuda</id>
<activation>
<property>
<name>libnd4j.chip</name>
<value>cuda</value>
</property>
</activation>
<modules>
<module>deeplearning4j-cuda</module>
</modules>
</profile>
<profile>
<id>libnd4j-cuda</id>
<activation>
<property>
<name>libnd4j.cuda</name>
</property>
</activation>
<modules>
<module>deeplearning4j-cuda</module>
</modules>
</profile>
<!-- For running unit tests with nd4j-native: "mvn clean test -P test-nd4j-native"
Note that this excludes DL4J-cuda -->
<profile>
<id>test-nd4j-native</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>dl4j-test-resources</artifactId>
<version>${dl4j-test-resources.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native</artifactId>
<version>${nd4j.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
<!-- For running unit tests with nd4j-cuda-8.0: "mvn clean test -P test-nd4j-cuda-8.0" -->
<profile>
<id>test-nd4j-cuda-10.1</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>dl4j-test-resources</artifactId>
<version>${dl4j-test-resources.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-cuda-10.1</artifactId>
<version>${nd4j.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- Default to ALL modules here, unlike nd4j-native -->
</profile>
</profiles>
<reporting>
<plugins>
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
<!-- Test coverage -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
</plugins>
</reporting>
</project>