apache / camel-k

Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers
https://camel.apache.org/camel-k
Apache License 2.0
865 stars 345 forks source link

java.lang.NoSuchMethodError: com.javainuse.route.SimpleRouteBuilder.getContext()Lorg/apache/camel/model/ModelCamelContext; #1073

Closed athishsreeram closed 4 years ago

athishsreeram commented 4 years ago

I am trying to run a camel route getting below error

https://github.com/athishsreeram/apache-camel-consume.git

Repo published into https://oss.sonatype.org/content/repositories/snapshots/com/github/athishsreeram/apache-camel-consume/0.0.1-SNAPSHOT/

Added repo to maven-settings.xml

</repository>
   <repository> <id>oss.sonatype.org-snapshot</id> <url>http://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> 
</snapshots> 

</repository>

I am trying to run

kamel run -d mvn:com.github.athishsreeram:apache-camel-consume:0.0.1-SNAPSHOT SimpleRouteBuilder.java --dev

➜  route git:(master) ✗ kamel run -d mvn:com.github.athishsreeram:apache-camel-consume:0.0.1-SNAPSHOT SimpleRouteBuilder.java --dev
integration "simple-route-builder" created
integration "simple-route-builder" in phase Initialization
integration "simple-route-builder" in phase Building Kit
integration "simple-route-builder" in phase Deploying
integration "simple-route-builder" in phase Running
[1] Monitoring pod simple-route-builder-6fd7777dcf-mg4b2[1] Starting the Java application using /opt/run-java/run-java.sh ...
[1] exec java -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:+ExitOnOutOfMemoryError -cp ./resources:/etc/camel/conf:/etc/camel/resources:/etc/camel/sources/i-source-000:dependencies/com.fasterxml.jackson.core.jackson-annotations-2.10.0.jar:dependencies/com.fasterxml.jackson.core.jackson-core-2.10.0.jar:dependencies/com.fasterxml.jackson.core.jackson-databind-2.10.0.jar:dependencies/com.fasterxml.jackson.dataformat.jackson-dataformat-xml-2.10.0.jar:dependencies/com.fasterxml.jackson.dataformat.jackson-dataformat-yaml-2.10.0.jar:dependencies/com.fasterxml.jackson.datatype.jackson-datatype-joda-2.10.0.jar:dependencies/com.fasterxml.jackson.jaxrs.jackson-jaxrs-base-2.10.0.jar:dependencies/com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider-2.10.0.jar:dependencies/com.fasterxml.jackson.module.jackson-module-jaxb-annotations-2.10.0.jar:dependencies/com.fasterxml.woodstox.woodstox-core-5.0.3.jar:dependencies/com.github.athishsreeram.apache-camel-consume-0.0.1-SNAPSHOT.jar:dependencies/com.github.ben-manes.caffeine.caffeine-2.8.0.jar:dependencies/com.google.code.findbugs.jsr305-3.0.2.jar:dependencies/com.google.errorprone.error_prone_annotations-2.2.0.jar:dependencies/com.google.guava.failureaccess-1.0.1.jar:dependencies/com.google.guava.guava-27.1-jre.jar:dependencies/com.google.guava.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:dependencies/com.google.j2objc.j2objc-annotations-1.1.jar:dependencies/com.sun.activation.javax.activation-1.2.0.jar:dependencies/com.sun.istack.istack-commons-runtime-3.0.8.jar:dependencies/com.sun.xml.bind.jaxb-core-2.3.0.jar:dependencies/com.sun.xml.bind.jaxb-impl-2.3.0.jar:dependencies/com.sun.xml.fastinfoset.FastInfoset-1.2.16.jar:dependencies/commons-codec.commons-codec-1.11.jar:dependencies/commons-io.commons-io-2.6.jar:dependencies/commons-logging.commons-logging-1.2.jar:dependencies/commons-pool.commons-pool-1.6.jar:dependencies/io.netty.netty-all-4.1.31.Final.jar:dependencies/io.swagger.swagger-annotations-1.5.23.jar:dependencies/io.swagger.swagger-core-1.5.23.jar:dependencies/io.swagger.swagger-jaxrs-1.5.23.jar:dependencies/io.swagger.swagger-models-1.5.23.jar:dependencies/io.swagger.swagger-parser-1.0.46.jar:dependencies/jakarta.activation.jakarta.activation-api-1.2.1.jar:dependencies/jakarta.ws.rs.jakarta.ws.rs-api-2.1.5.jar:dependencies/jakarta.xml.bind.jakarta.xml.bind-api-2.3.2.jar:dependencies/javax.annotation.javax.annotation-api-1.3.2.jar:dependencies/javax.servlet.javax.servlet-api-3.1.0.jar:dependencies/javax.validation.validation-api-1.1.0.Final.jar:dependencies/javax.ws.rs.jsr311-api-1.1.1.jar:dependencies/javax.xml.bind.jaxb-api-2.3.0.jar:dependencies/joda-time.joda-time-2.9.9.jar:dependencies/org.apache.camel.camel-api-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-attachments-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-base-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-bean-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-browse-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-caffeine-lrucache-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-cloud-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-controlbus-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-core-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-core-engine-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-core-xml-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-cxf-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-cxf-transport-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-dataformat-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-dataset-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-direct-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-directvm-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-endpointdsl-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-file-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-http-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-http-common-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-jackson-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-jaxp-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-language-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-log-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-main-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-management-api-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-mock-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-netty4-2.23.1.jar:dependencies/org.apache.camel.camel-netty4-http-2.23.1.jar:dependencies/org.apache.camel.camel-ref-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-rest-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-saga-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-scheduler-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-seda-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-spring-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-stub-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-support-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-swagger-java-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-timer-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-util-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-util-json-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-validator-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-vm-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-xpath-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-xslt-3.0.0-RC3.jar:dependencies/org.apache.camel.k.camel-k-loader-java-1.0.7.jar:dependencies/org.apache.camel.k.camel-k-runtime-core-1.0.7.jar:dependencies/org.apache.camel.k.camel-k-runtime-main-1.0.7.jar:dependencies/org.apache.camel.spi-annotations-3.0.0-RC3.jar:dependencies/org.apache.commons.commons-lang3-3.9.jar:dependencies/org.apache.cxf.cxf-core-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-bindings-soap-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-bindings-xml-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-databinding-jaxb-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-features-logging-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-frontend-jaxrs-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-frontend-jaxws-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-frontend-simple-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-rs-client-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-security-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-transports-http-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-ws-addr-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-ws-policy-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-wsdl-3.3.3.jar:dependencies/org.apache.httpcomponents.httpclient-4.5.10.jar:dependencies/org.apache.httpcomponents.httpcore-4.4.12.jar:dependencies/org.apache.logging.log4j.log4j-api-2.11.2.jar:dependencies/org.apache.logging.log4j.log4j-core-2.11.2.jar:dependencies/org.apache.logging.log4j.log4j-slf4j-impl-2.11.2.jar:dependencies/org.apache.neethi.neethi-3.1.1.jar:dependencies/org.apache.ws.xmlschema.xmlschema-core-2.2.4.jar:dependencies/org.checkerframework.checker-qual-2.5.2.jar:dependencies/org.codehaus.mojo.animal-sniffer-annotations-1.17.jar:dependencies/org.codehaus.woodstox.stax2-api-4.2.jar:dependencies/org.glassfish.jaxb.jaxb-runtime-2.3.2.jar:dependencies/org.glassfish.jaxb.txw2-2.3.2.jar:dependencies/org.javassist.javassist-3.21.0-GA.jar:dependencies/org.jooq.joor-java-8-0.9.12.jar:dependencies/org.jvnet.staxex.stax-ex-1.8.1.jar:dependencies/org.ow2.asm.asm-7.1.jar:dependencies/org.reflections.reflections-0.9.11.jar:dependencies/org.slf4j.slf4j-api-1.7.28.jar:dependencies/org.slf4j.slf4j-ext-1.7.28.jar:dependencies/org.springframework.spring-aop-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-beans-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-context-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-core-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-expression-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-jcl-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-tx-5.1.10.RELEASE.jar:dependencies/org.yaml.snakeyaml-1.24.jar:dependencies/wsdl4j.wsdl4j-1.6.3.jar:dependencies/xml-resolver.xml-resolver-1.2.jar org.apache.camel.k.main.Application
[1] OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[1] [                          main] ApplicationRuntime             INFO  Add listener: org.apache.camel.k.listener.ContextConfigurer@6e4784bc
[1] [                          main] ApplicationRuntime             INFO  Add listener: org.apache.camel.k.listener.RoutesConfigurer@5c30a9b0
[1] [                          main] ApplicationRuntime             INFO  Add listener: org.apache.camel.k.listener.RoutesDumper@7a69b07
[1] [                          main] RuntimeSupport                 INFO  Looking up loader for language: java
[1] [                          main] RuntimeSupport                 INFO  Found loader org.apache.camel.k.loader.java.JavaSourceRoutesLoader@795cd85e for language java from service definition
[1] [                          main] RoutesConfigurer               INFO  Loading routes from: file:/etc/camel/sources/i-source-000/SimpleRouteBuilder.java?language=java
[1] [                          main] ApplicationRuntime             INFO  Listener org.apache.camel.k.listener.RoutesConfigurer@5c30a9b0 executed in phase ConfigureRoutes
[1] [                          main] BaseMainSupport                INFO  Using properties from: file:/etc/camel/conf/application.properties
[1] Exception in thread "main" java.lang.NoSuchMethodError: com.javainuse.route.SimpleRouteBuilder.getContext()Lorg/apache/camel/model/ModelCamelContext;
[1]     at com.javainuse.route.SimpleRouteBuilder.configure(SimpleRouteBuilder.java:34)
[1]     at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:471)
[1]     at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:438)
[1]     at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:418)
[1]     at org.apache.camel.impl.engine.AbstractCamelContext.lambda$addRoutes$0(AbstractCamelContext.java:1114)
[1]     at org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2455)
[1]     at org.apache.camel.impl.engine.AbstractCamelContext.addRoutes(AbstractCamelContext.java:1114)
[1]     at org.apache.camel.main.RoutesConfigurer.configureRoutes(RoutesConfigurer.java:84)
[1]     at org.apache.camel.main.BaseMainSupport.postProcessCamelContext(BaseMainSupport.java:549)
[1]     at org.apache.camel.main.BaseMainSupport.initCamelContext(BaseMainSupport.java:402)
[1]     at org.apache.camel.k.main.ApplicationRuntime$MainAdapter.doInit(ApplicationRuntime.java:168)
[1]     at org.apache.camel.support.service.ServiceSupport.init(ServiceSupport.java:62)
[1]     at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:90)
[1]     at org.apache.camel.main.MainSupport.run(MainSupport.java:77)
[1]     at org.apache.camel.k.main.ApplicationRuntime.run(ApplicationRuntime.java:70)
[1]     at org.apache.camel.k.main.Application.main(Application.java:42)
[1] [ad #0 - CamelHangupInterceptor] MainSupport$HangupInterceptor  INFO  Received hang up - stopping the main instance.
[1] [ad #0 - CamelHangupInterceptor] DefaultCamelContext            INFO  Apache Camel 3.0.0-RC3 (CamelContext: camel-k) is shutting down
[1] [ad #0 - CamelHangupInterceptor] DefaultCamelContext            INFO  Apache Camel 3.0.0-RC3 (CamelContext: camel-k) uptime
[1] [ad #0 - CamelHangupInterceptor] DefaultCamelContext            INFO  Apache Camel 3.0.0-RC3 (CamelContext: camel-k) is shutdown in 0.060 seconds
lburgazzoli commented 4 years ago

For what I can see, your project is based on camel 2.x whereas camel-k is based on camel 3.x, do you mind updating your project to camel 3.0.0-RC3 ?

athishsreeram commented 4 years ago

It worked but

But now i am getting compilation error how can i pass DTO to my routes.

https://github.com/athishsreeram/apache-camel-consume.git

Repo published into https://oss.sonatype.org/content/repositories/snapshots/com/github/athishsreeram/apache-camel-consume/0.0.1-SNAPSHOT/

Added repo to maven-settings.xml

</repository>
   <repository>
     <id>oss.sonatype.org-snapshot</id> 
     <url>http://oss.sonatype.org/content/repositories/snapshots</url> 
     <releases> 
       <enabled>false</enabled> 
     </releases>
     <snapshots>
       <enabled>true</enabled> 
     </snapshots> 
  </repository>

I am trying to run again

kamel run -d mvn:com.github.athishsreeram:apache-camel-consume:0.0.1-SNAPSHOT SimpleRouteBuilder.java --dev

Compilation error: /com/camelexample/main/route/SimpleRouteBuilder.java:45

com/camelexample/main/route/SimpleRouteBuilder.java:126: error: cannot find symbol
[1]                             EmployeeDTO emp = mapper.readValue(jsonGotFromCall, EmployeeDTO.class);
➜  route git:(master) ✗ kamel run -d mvn:com.github.athishsreeram:apache-camel-consume:0.0.1-SNAPSHOT SimpleRouteBuilder.java --dev
integration "simple-route-builder" created
integration "simple-route-builder" in phase Initialization
integration "simple-route-builder" in phase Building Kit
integration "simple-route-builder" in phase Deploying
integration "simple-route-builder" in phase Running
[1] Monitoring pod simple-route-builder-b485f5fcd-xxtpc[1] Starting the Java application using /opt/run-java/run-java.sh ...
[1] exec java -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:+ExitOnOutOfMemoryError -cp ./resources:/etc/camel/conf:/etc/camel/resources:/etc/camel/sources/i-source-000:dependencies/com.fasterxml.jackson.core.jackson-annotations-2.10.0.jar:dependencies/com.fasterxml.jackson.core.jackson-core-2.10.0.jar:dependencies/com.fasterxml.jackson.core.jackson-databind-2.10.0.jar:dependencies/com.fasterxml.jackson.dataformat.jackson-dataformat-xml-2.10.0.jar:dependencies/com.fasterxml.jackson.dataformat.jackson-dataformat-yaml-2.10.0.jar:dependencies/com.fasterxml.jackson.datatype.jackson-datatype-joda-2.10.0.jar:dependencies/com.fasterxml.jackson.jaxrs.jackson-jaxrs-base-2.10.0.jar:dependencies/com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider-2.10.0.jar:dependencies/com.fasterxml.jackson.module.jackson-module-jaxb-annotations-2.10.0.jar:dependencies/com.fasterxml.woodstox.woodstox-core-5.0.3.jar:dependencies/com.github.athishsreeram.apache-camel-consume-0.0.1-SNAPSHOT.jar:dependencies/com.github.ben-manes.caffeine.caffeine-2.8.0.jar:dependencies/com.google.code.findbugs.jsr305-3.0.2.jar:dependencies/com.google.errorprone.error_prone_annotations-2.2.0.jar:dependencies/com.google.guava.failureaccess-1.0.1.jar:dependencies/com.google.guava.guava-27.1-jre.jar:dependencies/com.google.guava.listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:dependencies/com.google.j2objc.j2objc-annotations-1.1.jar:dependencies/com.sun.activation.javax.activation-1.2.0.jar:dependencies/com.sun.istack.istack-commons-runtime-3.0.8.jar:dependencies/com.sun.xml.bind.jaxb-core-2.3.0.jar:dependencies/com.sun.xml.bind.jaxb-impl-2.3.0.jar:dependencies/com.sun.xml.fastinfoset.FastInfoset-1.2.16.jar:dependencies/commons-codec.commons-codec-1.11.jar:dependencies/commons-io.commons-io-2.6.jar:dependencies/commons-logging.commons-logging-1.2.jar:dependencies/commons-pool.commons-pool-1.6.jar:dependencies/io.netty.netty-all-4.1.31.Final.jar:dependencies/io.swagger.swagger-annotations-1.5.23.jar:dependencies/io.swagger.swagger-core-1.5.23.jar:dependencies/io.swagger.swagger-jaxrs-1.5.23.jar:dependencies/io.swagger.swagger-models-1.5.23.jar:dependencies/io.swagger.swagger-parser-1.0.46.jar:dependencies/jakarta.activation.jakarta.activation-api-1.2.1.jar:dependencies/jakarta.ws.rs.jakarta.ws.rs-api-2.1.5.jar:dependencies/jakarta.xml.bind.jakarta.xml.bind-api-2.3.2.jar:dependencies/javax.annotation.javax.annotation-api-1.3.2.jar:dependencies/javax.servlet.javax.servlet-api-3.1.0.jar:dependencies/javax.validation.validation-api-1.1.0.Final.jar:dependencies/javax.ws.rs.jsr311-api-1.1.1.jar:dependencies/javax.xml.bind.jaxb-api-2.3.0.jar:dependencies/joda-time.joda-time-2.9.9.jar:dependencies/org.apache.camel.camel-api-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-attachments-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-base-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-bean-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-browse-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-caffeine-lrucache-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-cloud-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-controlbus-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-core-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-core-engine-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-core-xml-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-cxf-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-cxf-transport-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-dataformat-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-dataset-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-direct-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-directvm-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-endpointdsl-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-file-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-http-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-http-common-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-jackson-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-jaxp-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-language-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-log-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-main-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-management-api-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-mock-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-netty4-2.23.1.jar:dependencies/org.apache.camel.camel-netty4-http-2.23.1.jar:dependencies/org.apache.camel.camel-ref-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-rest-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-saga-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-scheduler-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-seda-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-spring-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-stub-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-support-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-swagger-java-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-timer-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-util-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-util-json-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-validator-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-vm-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-xpath-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-xslt-3.0.0-RC3.jar:dependencies/org.apache.camel.k.camel-k-loader-java-1.0.7.jar:dependencies/org.apache.camel.k.camel-k-runtime-core-1.0.7.jar:dependencies/org.apache.camel.k.camel-k-runtime-main-1.0.7.jar:dependencies/org.apache.camel.spi-annotations-3.0.0-RC3.jar:dependencies/org.apache.commons.commons-lang3-3.9.jar:dependencies/org.apache.cxf.cxf-core-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-bindings-soap-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-bindings-xml-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-databinding-jaxb-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-features-logging-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-frontend-jaxrs-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-frontend-jaxws-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-frontend-simple-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-rs-client-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-security-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-transports-http-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-ws-addr-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-ws-policy-3.3.3.jar:dependencies/org.apache.cxf.cxf-rt-wsdl-3.3.3.jar:dependencies/org.apache.httpcomponents.httpclient-4.5.10.jar:dependencies/org.apache.httpcomponents.httpcore-4.4.12.jar:dependencies/org.apache.logging.log4j.log4j-api-2.11.2.jar:dependencies/org.apache.logging.log4j.log4j-core-2.11.2.jar:dependencies/org.apache.logging.log4j.log4j-slf4j-impl-2.11.2.jar:dependencies/org.apache.neethi.neethi-3.1.1.jar:dependencies/org.apache.ws.xmlschema.xmlschema-core-2.2.4.jar:dependencies/org.checkerframework.checker-qual-2.5.2.jar:dependencies/org.codehaus.mojo.animal-sniffer-annotations-1.17.jar:dependencies/org.codehaus.woodstox.stax2-api-4.2.jar:dependencies/org.glassfish.jaxb.jaxb-runtime-2.3.2.jar:dependencies/org.glassfish.jaxb.txw2-2.3.2.jar:dependencies/org.javassist.javassist-3.21.0-GA.jar:dependencies/org.jooq.joor-java-8-0.9.12.jar:dependencies/org.jvnet.staxex.stax-ex-1.8.1.jar:dependencies/org.ow2.asm.asm-7.1.jar:dependencies/org.reflections.reflections-0.9.11.jar:dependencies/org.slf4j.slf4j-api-1.7.28.jar:dependencies/org.slf4j.slf4j-ext-1.7.28.jar:dependencies/org.springframework.spring-aop-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-beans-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-context-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-core-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-expression-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-jcl-5.1.10.RELEASE.jar:dependencies/org.springframework.spring-tx-5.1.10.RELEASE.jar:dependencies/org.yaml.snakeyaml-1.24.jar:dependencies/wsdl4j.wsdl4j-1.6.3.jar:dependencies/xml-resolver.xml-resolver-1.2.jar org.apache.camel.k.main.Application
[1] OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[1] [                          main] ApplicationRuntime             INFO  Add listener: org.apache.camel.k.listener.ContextConfigurer@6e4784bc
[1] [                          main] ApplicationRuntime             INFO  Add listener: org.apache.camel.k.listener.RoutesConfigurer@5c30a9b0
[1] [                          main] ApplicationRuntime             INFO  Add listener: org.apache.camel.k.listener.RoutesDumper@7a69b07
[1] [                          main] RuntimeSupport                 INFO  Looking up loader for language: java
[1] [                          main] RuntimeSupport                 INFO  Found loader org.apache.camel.k.loader.java.JavaSourceRoutesLoader@795cd85e for language java from service definition
[1] Exception in thread "main" org.apache.camel.RuntimeCamelException: org.joor.ReflectException: Compilation error: /com/camelexample/main/route/SimpleRouteBuilder.java:45: error: cannot find symbol
[1]                 .get("/emp/{id}").outType(EmployeeDTO.class).to("direct:getEmployee");
[1]                                           ^
[1]   symbol:   class EmployeeDTO
[1]   location: class SimpleRouteBuilder
[1] /com/camelexample/main/route/SimpleRouteBuilder.java:126: error: cannot find symbol
[1]                             EmployeeDTO emp = mapper.readValue(jsonGotFromCall, EmployeeDTO.class);
[1]                             ^
[1]   symbol:   class EmployeeDTO
[1]   location: class SimpleRouteBuilder
[1] /com/camelexample/main/route/SimpleRouteBuilder.java:126: error: cannot find symbol
[1]                             EmployeeDTO emp = mapper.readValue(jsonGotFromCall, EmployeeDTO.class);
[1]                                                                                 ^
[1]   symbol:   class EmployeeDTO
[1]   location: class SimpleRouteBuilder
[1] Note: /com/camelexample/main/route/SimpleRouteBuilder.java uses or overrides a deprecated API.
[1] Note: Recompile with -Xlint:deprecation for details.
[1] 3 errors
[1]
[1]     at org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:52)
[1]     at org.apache.camel.k.listener.RoutesConfigurer.load(RoutesConfigurer.java:69)
[1]     at org.apache.camel.k.listener.RoutesConfigurer.accept(RoutesConfigurer.java:51)
[1]     at org.apache.camel.k.listener.AbstractPhaseListener.accept(AbstractPhaseListener.java:32)
[1]     at org.apache.camel.k.main.ApplicationRuntime$MainListenerAdapter.lambda$invokeListeners$0(ApplicationRuntime.java:152)
[1]     at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
[1]     at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:352)
[1]     at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
[1]     at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
[1]     at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
[1]     at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
[1]     at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
[1]     at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
[1]     at org.apache.camel.k.main.ApplicationRuntime$MainListenerAdapter.invokeListeners(ApplicationRuntime.java:151)
[1]     at org.apache.camel.k.main.ApplicationRuntime$MainListenerAdapter.beforeStart(ApplicationRuntime.java:125)
[1]     at org.apache.camel.main.MainSupport.beforeStart(MainSupport.java:114)
[1]     at org.apache.camel.main.MainSupport.run(MainSupport.java:76)
[1]     at org.apache.camel.k.main.ApplicationRuntime.run(ApplicationRuntime.java:70)
[1]     at org.apache.camel.k.main.Application.main(Application.java:42)
[1] Caused by: org.joor.ReflectException: Compilation error: /com/camelexample/main/route/SimpleRouteBuilder.java:45: error: cannot find symbol
[1]                 .get("/emp/{id}").outType(EmployeeDTO.class).to("direct:getEmployee");
[1]                                           ^
[1]   symbol:   class EmployeeDTO
[1]   location: class SimpleRouteBuilder
[1] /com/camelexample/main/route/SimpleRouteBuilder.java:126: error: cannot find symbol
[1]                             EmployeeDTO emp = mapper.readValue(jsonGotFromCall, EmployeeDTO.class);
[1]                             ^
[1]   symbol:   class EmployeeDTO
[1]   location: class SimpleRouteBuilder
[1] /com/camelexample/main/route/SimpleRouteBuilder.java:126: error: cannot find symbol
[1]                             EmployeeDTO emp = mapper.readValue(jsonGotFromCall, EmployeeDTO.class);
[1]                                                                                 ^
[1]   symbol:   class EmployeeDTO
[1]   location: class SimpleRouteBuilder
[1] Note: /com/camelexample/main/route/SimpleRouteBuilder.java uses or overrides a deprecated API.
[1] Note: Recompile with -Xlint:deprecation for details.
[1] 3 errors
[1]
[1]     at org.joor.Compile.compile(Compile.java:100)
[1]     at org.joor.Reflect.compile(Reflect.java:102)
[1]     at org.joor.Reflect.compile(Reflect.java:77)
[1]     at org.apache.camel.k.loader.java.JavaSourceRoutesLoader.load(JavaSourceRoutesLoader.java:45)
[1]     at org.apache.camel.k.listener.RoutesConfigurer.load(RoutesConfigurer.java:67)
[1]     ... 17 more
[1] [ad #0 - CamelHangupInterceptor] MainSupport$HangupInterceptor  INFO  Received hang up - stopping the main instance.
lburgazzoli commented 4 years ago

I did try to investigate the issue but the apache-camel-consume artifact has some issues:

Would be nice to have a simpler and clean project structure to help investigate the issue.

athishsreeram commented 4 years ago

It is a springboot + camel k project

It has couple of Routes

Expose REST by Consuming SOAP Expose REST by Consuming REST

. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _ | \ \ \ \ \/ _)| |)| | | | | || (| | ) ) ) ) ' |__| .|| ||| |\, | / / / / =========|_|==============|__/=//// :: Spring Boot :: (v2.1.10.RELEASE)

2019-11-23 12:57:21.302 INFO 3908 --- [ main] com.camelexample.main.MainApp : Starting MainApp on MCLT70586659 with PID 3908 (/Users/anharay/IdeaProjects/apache-camel-consume/target/classes started by anharay in /Users/anharay/IdeaProjects/apache-camel-consume) 2019-11-23 12:57:21.305 INFO 3908 --- [ main] com.camelexample.main.MainApp : No active profile set, falling back to default profiles: default 2019-11-23 12:57:22.544 INFO 3908 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.apache.camel.spring.boot.CamelAutoConfiguration' of type [org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$2e48a61f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2019-11-23 12:57:22.804 INFO 3908 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2019-11-23 12:57:22.836 INFO 3908 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2019-11-23 12:57:22.837 INFO 3908 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.27] 2019-11-23 12:57:23.029 INFO 3908 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2019-11-23 12:57:23.029 INFO 3908 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1679 ms 2019-11-23 12:57:23.337 WARN 3908 --- [ main] o.a.c.i.e.DefaultCamelBeanPostProcessor : No CamelContext defined yet so cannot inject into bean: properties 2019-11-23 12:57:23.787 INFO 3908 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-11-23 12:57:24.268 INFO 3908 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator' 2019-11-23 12:57:24.475 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootRoutesCollector : Loading additional Camel XML routes from: classpath:camel/.xml 2019-11-23 12:57:24.476 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootRoutesCollector : Loading additional Camel XML rests from: classpath:camel-rest/.xml 2019-11-23 12:57:24.479 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Apache Camel 3.0.0-RC3 (CamelContext: Camelk Demo) is starting 2019-11-23 12:57:24.480 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Tracing is enabled on CamelContext: Camelk Demo 2019-11-23 12:57:24.480 INFO 3908 --- [ main] o.a.c.management.JmxManagementStrategy : JMX is enabled 2019-11-23 12:57:24.980 INFO 3908 --- [ main] o.a.camel.component.http.HttpComponent : Created ClientConnectionManager org.apache.http.impl.conn.PoolingHttpClientConnectionManager@5eed6dfb 2019-11-23 12:57:25.519 INFO 3908 --- [ main] o.a.c.w.s.f.ReflectionServiceFactoryBean : Creating Service {http://tempuri.org/}Calculator from WSDL: src/main/resources/service.wsdl?WSDL 2019-11-23 12:57:25.943 WARN 3908 --- [ main] o.a.c.f.AbstractWSDLBasedEndpointFactory : Could not find endpoint/port for {http://tempuri.org/}CalculatorSoapPort in wsdl. Using {http://tempuri.org/}CalculatorSoap12. 2019-11-23 12:57:26.084 INFO 3908 --- [ main] o.a.c.i.e.DefaultStreamCachingStrategy : StreamCaching in use with spool directory: /var/folders/64/18r5b2bs6899r41sgmf482qc0000gn/T/camel/camel-tmp-c164575a-53cb-49f2-8bec-c3ee606b1deb and rules: [Spool > 128K body size] 2019-11-23 12:57:26.086 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.086 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.087 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.087 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.087 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.087 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.088 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.088 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.088 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.088 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.088 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.089 INFO 3908 --- [ main] o.a.c.c.jackson.JacksonDataFormat : Found single ObjectMapper in Registry to use: com.fasterxml.jackson.databind.ObjectMapper@2c2a903f 2019-11-23 12:57:26.091 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route2 started and consuming from: direct://hello 2019-11-23 12:57:26.093 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route3 started and consuming from: direct://bye 2019-11-23 12:57:26.093 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route4 started and consuming from: direct://add 2019-11-23 12:57:26.094 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route5 started and consuming from: direct://getEmployee 2019-11-23 12:57:26.095 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route1 started and consuming from: servlet:/api-doc?httpMethodRestrict=GET&matchOnUriPrefix=true 2019-11-23 12:57:26.096 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route6 started and consuming from: servlet:/say/hello?httpMethodRestrict=GET 2019-11-23 12:57:26.096 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route7 started and consuming from: servlet:/say/bye?httpMethodRestrict=GET 2019-11-23 12:57:26.096 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route8 started and consuming from: servlet:/say/testmockupdate?httpMethodRestrict=POST 2019-11-23 12:57:26.097 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route9 started and consuming from: servlet:/say/add?httpMethodRestrict=POST 2019-11-23 12:57:26.097 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route10 started and consuming from: servlet:/say/weather/%7Bzip%7D?httpMethodRestrict=GET 2019-11-23 12:57:26.098 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Route: route11 started and consuming from: servlet:/say/emp/%7Bid%7D?httpMethodRestrict=GET 2019-11-23 12:57:26.100 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Total 11 routes, of which 11 are started 2019-11-23 12:57:26.101 INFO 3908 --- [ main] o.a.c.s.boot.SpringBootCamelContext : Apache Camel 3.0.0-RC3 (CamelContext: Camelk Demo) started in 1.622 seconds 2019-11-23 12:57:26.144 INFO 3908 --- [ main] o.a.c.c.s.CamelHttpTransportServlet : Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=] 2019-11-23 12:57:26.146 INFO 3908 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2019-11-23 12:57:26.148 INFO 3908 --- [ main] com.camelexample.main.MainApp : Started MainApp in 5.496 seconds (JVM running for 6.006)`

lburgazzoli commented 4 years ago

Yes but all the transitive dependencies are taken into account by camel-k, thus spring boot and whatnot. You may think to add a module per runtime with a shared model

athishsreeram commented 4 years ago

Thanks i got you it worked i cleaned up something

https://github.com/athishsreeram/apache-camel-consume.git

kamel run -d mvn:org.apache.camel:camel-jackson:3.0.0-RC2 -d mvn:javax.ws.rs:jsr311-api:1.1.1 -d mvn:org.apache.camel:camel-netty-http:3.0.0-RC2 -d mvn:org.apache.camel:camel-swagger-java:3.0.0-RC2 SimpleRouteBuilder2.java --dev

I am able to launch success fully.

2019-11-23 22:33:32.977 INFO [main] DefaultCamelContext - Route: route2 started and consuming from: direct://employees 2019-11-23 22:33:32.980 INFO [main] DefaultCamelContext - Route: route3 started and consuming from: direct://employee1 2019-11-23 22:33:33.026 INFO [main] SingleTCPNettyServerBootstrapFactory - ServerBootstrap binding to 0.0.0.0:8080 2019-11-23 22:33:33.131 INFO [main] NettyHttpConsumer - Netty consumer bound to: 0.0.0.0:8080 2019-11-23 22:33:33.134 INFO [main] DefaultCamelContext - Route: route1 started and consuming from: http://0.0.0.0:8080/camel/api-doc?httpMethodRestrict=GET 2019-11-23 22:33:33.136 INFO [main] NettyHttpConsumer - Netty consumer bound to: 0.0.0.0:8080 2019-11-23 22:33:33.136 INFO [main] DefaultCamelContext - Route: route4 started and consuming from: http://0.0.0.0:8080/camel/say/employees?httpMethodRestrict=GET 2019-11-23 22:33:33.138 INFO [main] NettyHttpConsumer - Netty consumer bound to: 0.0.0.0:8080 2019-11-23 22:33:33.138 INFO [main] DefaultCamelContext - Route: route5 started and consuming from: http://0.0.0.0:8080/camel/say/employees/1?httpMethodRestrict=GET 2019-11-23 22:33:33.144 INFO [main] DefaultCamelContext - Total 5 routes, of which 5 are started 2019-11-23 22:33:33.151 INFO [main] DefaultCamelContext - Apache Camel 3.0.0-RC3 (CamelContext: camel-k) started in 0.587 seconds 2019-11-23 22:33:33.154 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@1ddf84b8 executed in phase Started

athishsreeram commented 4 years ago

Not sure how to access the route it launched in camelk i tired both the url below not sure how to access the REST DSL in Camel k in which route it got published

http://127.0.0.1:8080/camel/api-doc?httpMethodRestrict=GET http://0.0.0.0:8080/camel/api-doc?httpMethodRestrict=GET

lburgazzoli commented 4 years ago

@athishsreeram can we close this one ?

github-actions[bot] commented 4 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.