This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 5995619d629852b1279e4d795cc521fdd2afc441 Author: Marat Gubaidullin <[email protected]> AuthorDate: Thu Apr 2 09:35:13 2020 -0400 CAMEL-14808. Fixes for PR review --- apache-camel/src/main/descriptors/common-bin.xml | 1 + components/camel-djl/pom.xml | 34 ++++-------------- .../component/djl/DJLComponentConfigurer.java | 29 ++++++++++++++-- .../camel/component/djl/DJLEndpointConfigurer.java | 40 +++++++++++++++++++--- .../org/apache/camel/component/djl/djl.json | 3 +- .../apache/camel/component/djl/DJLEndpoint.java | 6 +--- .../apache/camel/component/djl/DJLProducer.java | 2 -- .../model/CustomImageClassificationPredictor.java | 10 +++--- .../djl/model/CustomObjectDetectionPredictor.java | 10 +++--- .../djl/model/ZooImageClassificationPredictor.java | 8 ++--- .../djl/model/ZooObjectDetectionPredictor.java | 8 ++--- .../camel-djl/src/test/resources/log4j2.properties | 9 +++-- components/pom.xml | 2 +- parent/pom.xml | 2 ++ 14 files changed, 101 insertions(+), 63 deletions(-) diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml index 7290403..2d225b3 100644 --- a/apache-camel/src/main/descriptors/common-bin.xml +++ b/apache-camel/src/main/descriptors/common-bin.xml @@ -148,6 +148,7 @@ <include>org.apache.camel:camel-direct</include> <include>org.apache.camel:camel-directvm</include> <include>org.apache.camel:camel-disruptor</include> + <include>org.apache.camel:camel-djl</include> <include>org.apache.camel:camel-dns</include> <include>org.apache.camel:camel-docker</include> <include>org.apache.camel:camel-dozer</include> diff --git a/components/camel-djl/pom.xml b/components/camel-djl/pom.xml index 45dd471..5f7c567 100644 --- a/components/camel-djl/pom.xml +++ b/components/camel-djl/pom.xml @@ -18,24 +18,9 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <djl.version>0.4.0</djl.version> </properties> - <dependencyManagement> - <dependencies> - <!-- Camel BOM --> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-bom</artifactId> - <version>3.1.0</version> - <scope>import</scope> - <type>pom</type> - </dependency> - </dependencies> - </dependencyManagement> - <dependencies> - <!-- camel --> <dependency> <groupId>org.apache.camel</groupId> @@ -46,29 +31,29 @@ <dependency> <groupId>ai.djl</groupId> <artifactId>api</artifactId> - <version>${djl.version}</version> + <version>${djl-version}</version> </dependency> <dependency> <groupId>ai.djl</groupId> <artifactId>model-zoo</artifactId> - <version>${djl.version}</version> + <version>${djl-version}</version> </dependency> <!-- MxNet Engine --> <dependency> <groupId>ai.djl.mxnet</groupId> <artifactId>mxnet-model-zoo</artifactId> - <version>${djl.version}</version> + <version>${djl-version}</version> </dependency> <dependency> <groupId>ai.djl.mxnet</groupId> <artifactId>mxnet-engine</artifactId> - <version>${djl.version}</version> + <version>${djl-version}</version> </dependency> <dependency> <groupId>ai.djl.mxnet</groupId> <artifactId>mxnet-native-auto</artifactId> - <version>1.6.0</version> + <version>${djl-mxnet-native-version}</version> <scope>runtime</scope> </dependency> @@ -76,19 +61,16 @@ <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> - <version>2.13.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> - <version>2.13.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> - <version>2.13.0</version> <scope>test</scope> </dependency> @@ -101,7 +83,7 @@ <dependency> <groupId>ai.djl</groupId> <artifactId>basicdataset</artifactId> - <version>${djl.version}</version> + <version>${djl-version}</version> <scope>test</scope> </dependency> </dependencies> @@ -114,7 +96,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> - <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> @@ -124,7 +105,6 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> - <version>3.1.0</version> <configuration> <encoding>UTF-8</encoding> </configuration> @@ -134,7 +114,7 @@ <plugin> <groupId>org.apache.camel</groupId> <artifactId>camel-package-maven-plugin</artifactId> - <version>3.1.0</version> + <version>${project.version}</version> <executions> <execution> <id>generate</id> diff --git a/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLComponentConfigurer.java b/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLComponentConfigurer.java index 57673b3..a627f48 100644 --- a/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLComponentConfigurer.java +++ b/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLComponentConfigurer.java @@ -1,27 +1,50 @@ /* Generated by camel build tools - do NOT edit this file! */ package org.apache.camel.component.djl; +import java.util.Map; + import org.apache.camel.CamelContext; import org.apache.camel.spi.GeneratedPropertyConfigurer; +import org.apache.camel.spi.PropertyConfigurerGetter; +import org.apache.camel.util.CaseInsensitiveMap; import org.apache.camel.support.component.PropertyConfigurerSupport; /** * Generated by camel build tools - do NOT edit this file! */ @SuppressWarnings("unchecked") -public class DJLComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer { +public class DJLComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter { @Override public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) { DJLComponent target = (DJLComponent) obj; switch (ignoreCase ? name.toLowerCase() : name) { - case "lazystartproducer": - case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; case "basicpropertybinding": case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true; + case "lazystartproducer": + case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; default: return false; } } + @Override + public Map<String, Object> getAllOptions(Object target) { + Map<String, Object> answer = new CaseInsensitiveMap(); + answer.put("basicPropertyBinding", boolean.class); + answer.put("lazyStartProducer", boolean.class); + return answer; + } + + @Override + public Object getOptionValue(Object obj, String name, boolean ignoreCase) { + DJLComponent target = (DJLComponent) obj; + switch (ignoreCase ? name.toLowerCase() : name) { + case "basicpropertybinding": + case "basicPropertyBinding": return target.isBasicPropertyBinding(); + case "lazystartproducer": + case "lazyStartProducer": return target.isLazyStartProducer(); + default: return null; + } + } } diff --git a/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java b/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java index c084797..da243be 100644 --- a/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java +++ b/components/camel-djl/src/generated/java/org/apache/camel/component/djl/DJLEndpointConfigurer.java @@ -1,15 +1,19 @@ /* Generated by camel build tools - do NOT edit this file! */ package org.apache.camel.component.djl; +import java.util.Map; + import org.apache.camel.CamelContext; import org.apache.camel.spi.GeneratedPropertyConfigurer; +import org.apache.camel.spi.PropertyConfigurerGetter; +import org.apache.camel.util.CaseInsensitiveMap; import org.apache.camel.support.component.PropertyConfigurerSupport; /** * Generated by camel build tools - do NOT edit this file! */ @SuppressWarnings("unchecked") -public class DJLEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer { +public class DJLEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter { @Override public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) { @@ -17,16 +21,44 @@ public class DJLEndpointConfigurer extends PropertyConfigurerSupport implements switch (ignoreCase ? name.toLowerCase() : name) { case "artifactid": case "artifactId": target.setArtifactId(property(camelContext, java.lang.String.class, value)); return true; + case "basicpropertybinding": + case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true; case "lazystartproducer": case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true; case "model": target.setModel(property(camelContext, java.lang.String.class, value)); return true; - case "translator": target.setTranslator(property(camelContext, java.lang.String.class, value)); return true; - case "basicpropertybinding": - case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true; case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true; + case "translator": target.setTranslator(property(camelContext, java.lang.String.class, value)); return true; default: return false; } } + @Override + public Map<String, Object> getAllOptions(Object target) { + Map<String, Object> answer = new CaseInsensitiveMap(); + answer.put("artifactId", java.lang.String.class); + answer.put("basicPropertyBinding", boolean.class); + answer.put("lazyStartProducer", boolean.class); + answer.put("model", java.lang.String.class); + answer.put("synchronous", boolean.class); + answer.put("translator", java.lang.String.class); + return answer; + } + + @Override + public Object getOptionValue(Object obj, String name, boolean ignoreCase) { + DJLEndpoint target = (DJLEndpoint) obj; + switch (ignoreCase ? name.toLowerCase() : name) { + case "artifactid": + case "artifactId": return target.getArtifactId(); + case "basicpropertybinding": + case "basicPropertyBinding": return target.isBasicPropertyBinding(); + case "lazystartproducer": + case "lazyStartProducer": return target.isLazyStartProducer(); + case "model": return target.getModel(); + case "synchronous": return target.isSynchronous(); + case "translator": return target.getTranslator(); + default: return null; + } + } } diff --git a/components/camel-djl/src/generated/resources/org/apache/camel/component/djl/djl.json b/components/camel-djl/src/generated/resources/org/apache/camel/component/djl/djl.json index 545ba21..126b28e 100644 --- a/components/camel-djl/src/generated/resources/org/apache/camel/component/djl/djl.json +++ b/components/camel-djl/src/generated/resources/org/apache/camel/component/djl/djl.json @@ -1,12 +1,13 @@ { "component": { "kind": "component", + "name": "djl", "scheme": "djl", "extendsScheme": "", "syntax": "djl:application", "title": "DJL", "description": "Represents a DJL endpoint.", - "label": "djl", + "label": "deeplearning", "deprecated": false, "async": false, "consumerOnly": false, diff --git a/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java b/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java index 10cb642..4a10957 100644 --- a/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java +++ b/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLEndpoint.java @@ -29,7 +29,7 @@ import org.apache.camel.support.DefaultEndpoint; /** * Represents a DJL endpoint. */ -@UriEndpoint(firstVersion = "3.2.0", scheme = "djl", title = "DJL", syntax = "djl:application", label = "djl", producerOnly = true) +@UriEndpoint(firstVersion = "3.2.0", scheme = "djl", title = "DJL", syntax = "djl:application", label = "deeplearning", producerOnly = true) public class DJLEndpoint extends DefaultEndpoint { @UriPath @Metadata(required = true, description = "Application name") @@ -60,10 +60,6 @@ public class DJLEndpoint extends DefaultEndpoint { throw new UnsupportedOperationException("Consumer not supported"); } - public boolean isSingleton() { - return true; - } - public String getApplication() { return application; } diff --git a/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java b/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java index 84877ce..b23b11c 100644 --- a/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java +++ b/components/camel-djl/src/main/java/org/apache/camel/component/djl/DJLProducer.java @@ -29,12 +29,10 @@ import org.slf4j.LoggerFactory; */ public class DJLProducer extends DefaultProducer { private static final Logger LOG = LoggerFactory.getLogger(DJLProducer.class); - private DJLEndpoint endpoint; private AbstractPredictor abstractPredictor; public DJLProducer(DJLEndpoint endpoint) throws Exception { super(endpoint); - this.endpoint = endpoint; if (endpoint.getArtifactId() != null) { this.abstractPredictor = ModelPredictorProducer.getZooPredictor(endpoint.getApplication(), endpoint.getArtifactId()); } else { diff --git a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomImageClassificationPredictor.java b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomImageClassificationPredictor.java index 2e7717b..813457b 100644 --- a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomImageClassificationPredictor.java +++ b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomImageClassificationPredictor.java @@ -40,8 +40,8 @@ import org.slf4j.LoggerFactory; public class CustomImageClassificationPredictor extends AbstractPredictor { private static final Logger LOG = LoggerFactory.getLogger(CustomImageClassificationPredictor.class); - private String modelName; - private String translatorName; + private final String modelName; + private final String translatorName; public CustomImageClassificationPredictor(String modelName, String translatorName) { this.modelName = modelName; @@ -71,7 +71,7 @@ public class CustomImageClassificationPredictor extends AbstractPredictor { return classify(model, translator, ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } @@ -80,7 +80,7 @@ public class CustomImageClassificationPredictor extends AbstractPredictor { return classify(model, translator, ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } @@ -90,7 +90,7 @@ public class CustomImageClassificationPredictor extends AbstractPredictor { List<Classifications.Classification> list = classifications.items(); return list.stream().collect(Collectors.toMap(Classifications.Classification::getClassName, x -> (float) x.getProbability())); } catch (TranslateException e) { - throw new Exception("Failed to process output", e); + throw new TranslateException("Failed to process output", e); } } } diff --git a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomObjectDetectionPredictor.java b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomObjectDetectionPredictor.java index 050e898..f98b7ca 100644 --- a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomObjectDetectionPredictor.java +++ b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/CustomObjectDetectionPredictor.java @@ -38,8 +38,8 @@ public class CustomObjectDetectionPredictor extends AbstractPredictor { private static final Logger LOG = LoggerFactory.getLogger(CustomObjectDetectionPredictor.class); - private String modelName; - private String translatorName; + private final String modelName; + private final String translatorName; public CustomObjectDetectionPredictor(String modelName, String translatorName) { this.modelName = modelName; @@ -69,7 +69,7 @@ public class CustomObjectDetectionPredictor extends AbstractPredictor { DetectedObjects detectedObjects = predictor.predict(input); return detectedObjects; } catch (TranslateException e) { - throw new Exception("Failed to process output", e); + throw new TranslateException("Failed to process output", e); } } @@ -78,7 +78,7 @@ public class CustomObjectDetectionPredictor extends AbstractPredictor { return classify(model, translator, ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } @@ -87,7 +87,7 @@ public class CustomObjectDetectionPredictor extends AbstractPredictor { return classify(model, translator, ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } } diff --git a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooImageClassificationPredictor.java b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooImageClassificationPredictor.java index bc9a004..4b78585 100644 --- a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooImageClassificationPredictor.java +++ b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooImageClassificationPredictor.java @@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory; public class ZooImageClassificationPredictor extends AbstractPredictor { private static final Logger LOG = LoggerFactory.getLogger(ZooImageClassificationPredictor.class); - private ZooModel<BufferedImage, Classifications> model; + private final ZooModel<BufferedImage, Classifications> model; public ZooImageClassificationPredictor(String artifactId) throws Exception { Criteria<BufferedImage, Classifications> criteria = @@ -76,7 +76,7 @@ public class ZooImageClassificationPredictor extends AbstractPredictor { return classify(ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } @@ -85,7 +85,7 @@ public class ZooImageClassificationPredictor extends AbstractPredictor { return classify(ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } @@ -95,7 +95,7 @@ public class ZooImageClassificationPredictor extends AbstractPredictor { List<Classifications.Classification> list = classifications.items(); return list.stream().collect(Collectors.toMap(Classifications.Classification::getClassName, x -> (float) x.getProbability())); } catch (TranslateException e) { - throw new Exception("Failed to process output", e); + throw new TranslateException("Failed to process output", e); } } } diff --git a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooObjectDetectionPredictor.java b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooObjectDetectionPredictor.java index ca44d06..d90c527 100644 --- a/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooObjectDetectionPredictor.java +++ b/components/camel-djl/src/main/java/org/apache/camel/component/djl/model/ZooObjectDetectionPredictor.java @@ -41,7 +41,7 @@ public class ZooObjectDetectionPredictor extends AbstractPredictor { private static final Logger LOG = LoggerFactory.getLogger(ZooObjectDetectionPredictor.class); - private ZooModel<BufferedImage, DetectedObjects> model; + private final ZooModel<BufferedImage, DetectedObjects> model; public ZooObjectDetectionPredictor(String artifactId) throws Exception { Criteria<BufferedImage, DetectedObjects> criteria = @@ -74,7 +74,7 @@ public class ZooObjectDetectionPredictor extends AbstractPredictor { DetectedObjects detectedObjects = predictor.predict(input); return detectedObjects; } catch (TranslateException e) { - throw new Exception("Failed to process output", e); + throw new TranslateException("Failed to process output", e); } } @@ -83,7 +83,7 @@ public class ZooObjectDetectionPredictor extends AbstractPredictor { return classify(ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } @@ -92,7 +92,7 @@ public class ZooObjectDetectionPredictor extends AbstractPredictor { return classify(ImageIO.read(input)); } catch (IOException e) { LOG.error("Couldn't transform input into a BufferedImage"); - throw new Exception("Couldn't transform input into a BufferedImage", e); + throw new RuntimeException("Couldn't transform input into a BufferedImage", e); } } } diff --git a/components/camel-djl/src/test/resources/log4j2.properties b/components/camel-djl/src/test/resources/log4j2.properties index d9f0508..cf4f66d 100644 --- a/components/camel-djl/src/test/resources/log4j2.properties +++ b/components/camel-djl/src/test/resources/log4j2.properties @@ -15,9 +15,14 @@ ## limitations under the License. ## --------------------------------------------------------------------------- +appender.file.type = File +appender.file.name = file +appender.file.fileName = target/camel-djl-test.log +appender.file.layout.type = PatternLayout +appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n appender.out.type = Console appender.out.name = out appender.out.layout.type = PatternLayout -appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n +appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n rootLogger.level = INFO -rootLogger.appenderRef.out.ref = out +rootLogger.appenderRef.file.ref = file diff --git a/components/pom.xml b/components/pom.xml index d5b626a..04618ce 100644 --- a/components/pom.xml +++ b/components/pom.xml @@ -172,6 +172,7 @@ <module>camel-debezium-sqlserver</module> <module>camel-digitalocean</module> <module>camel-disruptor</module> + <module>camel-djl</module> <module>camel-dns</module> <module>camel-docker</module> <module>camel-dozer</module> @@ -374,7 +375,6 @@ <module>camel-zipkin</module> <module>camel-zookeeper-master</module> <module>camel-zookeeper</module> - <module>camel-djl</module> </modules> <properties> diff --git a/parent/pom.xml b/parent/pom.xml index dbcfbc1..718b1e8 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -143,6 +143,8 @@ <directory-watcher-version>0.9.9</directory-watcher-version> <disruptor-version>3.4.2</disruptor-version> <dnsjava-version>3.0.1</dnsjava-version> + <djl-version>0.4.0</djl-version> + <djl-mxnet-native-version>1.6.0</djl-mxnet-native-version> <docker-java-version>3.1.5</docker-java-version> <dozer-version>6.5.0</dozer-version> <drools-version>7.35.0.Final</drools-version>
