You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Debraj Manna <su...@gmail.com> on 2016/05/07 15:27:17 UTC

Jackson Module Afterburner not working in Karaf 3.0.5

Hi,

I have a simple Hello World type Karaf Bundle. The activator code looks
like below:-

public class HelloWorldActivator implements BundleActivator {
        @Override
        public void start(BundleContext bundleContext) throws Exception {
            System.out.println("STARTING DEMO: hello, world\n");
            System.out.println(getJsonDataAsString());
        }

        @Override
        public void stop(BundleContext bundleContext) throws Exception {
            System.out.println("STOPPING DEMO");
        }

        private String getJsonDataAsString() {
            JsonDataBlob jsonDataBlob = new JsonDataBlob();
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.registerModule(new AfterburnerModule());
            try {
                return objectMapper.writeValueAsString(jsonDataBlob);
            } catch(Exception e) {
                e.printStackTrace();
            }
            return "";
        }
}

pom.xml looks like below:-

<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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.hello</groupId>
    <artifactId>world</artifactId>
    <version>0.0.1</version>
    <packaging>bundle</packaging>
    <name>Hello World</name>
    <dependencies>
        <!-- OSGi -->
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>4.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <version>4.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160212</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.6.2</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.6.2</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.6.2</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-afterburner</artifactId>
            <version>2.7.1</version>
        </dependency>



    </dependencies>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <excludes>
                        <exclude>**/com/hello/main/*</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.4.0</version>
                <inherited>true</inherited>
                <extensions>true</extensions>
                <configuration>
                    <instructions>

<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                        <Bundle-Version>${project.version}</Bundle-Version>

<Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
                        <Import-Package>*;resolution:=optional</Import-Package>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

The java object which I am trying to convert to json is a simple object as
shown below:-

package com.hello.world;
public class JsonDataBlob {
    private String add1 = "JP Naagar";
    private String add2 = "";
    private int shippartagent = 1;

    public String getAdd1() {
        return add1;
    }

    public void setAdd1(String add1) {
        this.add1 = add1;
    }

    public String getAdd2() {
        return add2;
    }

    public void setAdd2(String add2) {
        this.add2 = add2;
    }

    public int getShippartagent() {
        return shippartagent;
    }

    public void setShippartagent(int shippartagent) {
        this.shippartagent = shippartagent;
    }
}



Whenever I am trying to install the bundle I am getting the below
exception:-

2016-05-07 15:36:48,986 | WARN  | x-6.1-2.0/deploy | fileinstall
               | 7 - org.apache.felix.fileinstall - 3.5.0 | Error
while starting bundle:
file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
org.osgi.framework.BundleException: Activator start error in bundle world [239].
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
Caused by: java.lang.NoClassDefFoundError:
com/fasterxml/jackson/module/afterburner/AfterburnerModule
        at java.lang.Class.getDeclaredConstructors0(Native Method)[:1.8.0_77]
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
        at java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77]
        at java.lang.Class.newInstance(Class.java:412)[:1.8.0_77]
        at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
        ... 7 more
Caused by: java.lang.ClassNotFoundException:
com.fasterxml.jackson.module.afterburner.AfterburnerModule not found
by world [239]
        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
        ... 13 more


All the required Jackson bundles are installed in Karaf:-

karaf@root>bundle:list | grep Jackson
123 | Active    |  50 | 2.6.2                              |
Jackson-core
125 | Active    |  50 | 2.6.2                              |
Jackson-annotations
238 | Installed |  80 | 2.7.1                              |
Jackson-module-Afterburner
karaf@root>bundle:list | grep jackson
124 | Active    |  50 | 2.6.2                              | jackson-databind

Everything works fine if I just comment out the below line:-

objectMapper.registerModule(new AfterburnerModule());

I have placed the required code in github
<https://github.com/debraj-manna/afterburner-issue>

Has anyone able to execute the Jackson's Afterburner module in Karaf 3.0.5?

Thanks,

Debraj

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Timothy Ward <ti...@paremus.com>.
An optional package import is “optional” meaning that it doesn’t need to be wired by the OSGi framework for the bundle to resolve. If the package isn’t wired then there will be no classes available from that package at runtime. 

As I said previously. Optional packages require a lot of thought and defensive coding. Very few packages are really optional. 

Regards,

Tim

> On 14 Jun 2016, at 13:50, Debraj Manna <su...@gmail.com> wrote:
> 
> Thanks Timothy. Removing resolution:optional solved the issue. But any guess why resolution:optional was creating the issue.?
> 
> Hi Debra,
> 
> I note that there are a lot of optional package imports in the manifest snippet that you’ve provided. Optional package imports require a lot of careful management and are hard to get right. In this case it looks as though the package import is declared as optional even though it actually isn’t at runtime.
> 
> My guess is that none of the imports are actually optional, and the wrapping is currently not creating a very useful OSGi bundle.
> 
> Regards,
> 
> Tim
> 
> 
>> On 14 Jun 2016, at 10:51, Debraj Manna <subharaj.manna@gmail.com <ma...@gmail.com>> wrote:
>> 
>> I am not able to make this work yet. Can some one suggest some thing what could be going wrong?
>> 
>> On Wed, May 11, 2016 at 9:51 PM, Debraj Manna <subharaj.manna@gmail.com <ma...@gmail.com>> wrote:
>> Hi Jean,
>> 
>> I am facing a similiar problem when I tried to use Afterburner from my toy application to an actual code base. In the same code base in one place it is working perfectly fine and in one place it is failing with the error  java.lang.ClassNotFoundException: com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator.( I have placed the full stack-trace towards the end of my email). The same code base works perfectly fine when I run this as normal jar outside Karaf. I have no issue in the MANIFEST.mf in the bundle. All the imports are added:-
>> Import-Package: com.fasterxml.jackson.core;resolut
>>  ion:=optional;version="[2.7,3)",com.fasterxml.jackson.databind;resoluti
>>  on:=optional;version="[2.7,3)",com.fasterxml.jackson.databind.annotatio
>>  n;resolution:=optional;version="[2.7,3)",com.fasterxml.jackson.module.a
>>  fterburner;resolution:=optional;version="[2.7,3)",org.json;reso
>>  lution:=optional,org.osgi.service.blueprint;version="[1.0.0,2.0.0)";res
>>  olution:=optional,com.fasterxml.jack
>>  son.databind.ser;version="[2.7,3)",com.fasterxml.jackson.databind.deser
>>  ;version="[2.7,3)",com.fasterxml.jackson.databind.ser.std;version="[2.7
>>  ,3)",com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",com.fas
>>  terxml.jackson.module.afterburner.ser;version="[2.7,3)",com.fasterxml.j
>>  ackson.module.afterburner.deser;version="[2.7,3)"
>> 
>> ...
>> Even doing bundle:headers in Karaf I am seeing all the bundles correctly imported
>> 
>> karaf@root>bundle:headers 286
>> 
>> basecomponent (286)
>> -------------------
>> Created-By = Apache Maven Bundle Plugin
>> Manifest-Version = 1.0
>> Bnd-LastModified = 1462969467812
>> Build-Jdk = 1.8.0_77
>> Built-By = debraj
>> Tool = Bnd-3.0.0.201509101326
>> 
>> Bundle-Blueprint = OSGI-INF/blueprint/authenticationBeans.xml,OSGI-INF/blueprint/awsBeans.xml,OSGI-INF/blueprint/blueprint.xml,OSGI-INF/blueprint/camelContext.xml,OSGI-INF/blueprint/catalogBeans.xml,OSGI-INF/blueprint/erpBeans.xml,OSGI-INF/blueprint/healthCheckBeans.xml,OSGI-INF/blueprint/orderBeans.xml,OSGI-INF/blueprint/productBeans.xml,OSGI-INF/blueprint/vendorBeans.xml
>> Bundle-ManifestVersion = 2
>> Bundle-SymbolicName = basecomponent
>> Bundle-Version = 0.0.1
>> Bundle-Name = basecomponent
>> 
>> Require-Capability = 
>>     osgi.ee <http://osgi.ee/>;filter:=(&(osgi.ee <http://osgi.ee/>=JavaSE)(version=1.8))
>> 
>> 
>> Import-Package = 
>>     com.fasterxml.jackson.annotation;resolution:=optional;version="[2.7,3)",
>>     com.fasterxml.jackson.core;resolution:=optional;version="[2.7,3)",
>>     com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>>     com.fasterxml.jackson.databind.annotation;resolution:=optional;version="[2.7,3)",
>>     com.fasterxml.jackson.module.afterburner;resolution:=optional;version="[2.7,3)",
>>     com.fasterxml.jackson.databind.ser;version="[2.7,3)",
>>     com.fasterxml.jackson.databind.deser;version="[2.7,3)",
>>     com.fasterxml.jackson.databind.ser.std;version="[2.7,3)",
>>     com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",
>>     com.fasterxml.jackson.module.afterburner.ser;version="[2.7,3)",
>>     com.fasterxml.jackson.module.afterburner.deser;version="[2.7,3)"
>> 
>> ...
>> The full stack trace:-
>> 
>> OrderException-GetOrdersHTTPFailure
>> com.fasterxml.jackson.databind.JsonMappingException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>>  at [Source: {"data":{"total":2,"order":[], "status":{"success":true}},"_metaData":{"urlParams":{}},"status":{"success":true,"errors":null,"httpStatusCode":200}}; line: 1, column: 1]
>>     at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:290)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:269)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:444)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:948)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:446)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3908)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3803)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2797)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.marshallJSON(JSONCamelHttpResponseHandler.java:73)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.handleResponse(JSONCamelHttpResponseHandler.java:38)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.prepareResponse(BaseCamelHTTPComponent.java:133)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.call(BaseCamelHTTPComponent.java:88)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeRequest(HttpWFNode.java:130)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:118)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:49)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.execute(HttpWFNode.java:43)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.adapter.order.executor.GetOrdersWorkflowExecutor.execute(GetOrdersWorkflowExecutor.java:44)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.adapter.order.OrderHelper.getMarketplaceOrders(OrderHelper.java:53)[286:basecomponent:0.0.1]
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_77]
>>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_77]
>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_77]
>>     at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_77]
>>     at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:38)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.DelayProcessorSupport.process(DelayProcessorSupport.java:160)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:412)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:270)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:238)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:128)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:132)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:149)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:301)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:331)[136:org.apache.camel.camel-core:2.16.1]
>>     at com.jabong.orchestratorservice.basecomponent.processor.AbstractProcessor.makeRequest(AbstractProcessor.java:47)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequest(JSONRPCProcessor.java:167)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequestAndSendResponse(JSONRPCProcessor.java:132)[286:basecomponent:0.0.1]
>>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.process(JSONRPCProcessor.java:72)[286:basecomponent:0.0.1]
>>     at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>>     at org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:170)[250:org.apache.camel.camel-jetty-common:2.16.1]
>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[45:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
>>     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.Server.handle(Server.java:370)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>>     at java.lang.Thread.run(Thread.java:745)[:1.8.0_77]
>> Caused by: java.lang.IllegalArgumentException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.generateMutatorClass(PropertyMutatorCollector.java:204)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.buildMutator(PropertyMutatorCollector.java:102)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>>     at com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier.updateBuilder(DeserializerModifier.java:62)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:239)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:406)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:352)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>>     ... 86 more
>> Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>>     at java.lang.ClassLoader.findClass(ClassLoader.java:530)[:1.8.0_77]
>>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)[:1.8.0_77]
>>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>>     at java.lang.ClassLoader.defineClass1(Native Method)[:1.8.0_77]
>>     at java.lang.ClassLoader.defineClass(ClassLoader.java:763)[:1.8.0_77]
>>     at java.lang.ClassLoader.defineClass(ClassLoader.java:642)[:1.8.0_77]
>>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>>     ... 94 more
>> The code where it is working looks like something like below (and is called first in the flow)
>> public static WFRequest fromJSON(String json, String targetClassName)
>>         throws ClassNotFoundException, IOException {
>>     WFRequest reqParam = null;
>>     ObjectMapper mapper = new ObjectMapper();
>>     mapper.registerModule(new AfterburnerModule());
>>     reqParam = (WFRequest) mapper.readValue(json, Class.forName(targetClassName));
>>     return reqParam;
>>     }
>> The code where it is failing looks like below:-
>> 
>> @SuppressWarnings("unchecked")
>>     private static <T extends BaseCamelHTTPComponentResponse> T fromJSON(final JSONObject jsonObj,
>>         String serviceResponseClass) throws ClassNotFoundException, IOException {
>>     LOG.info <http://log.info/>("Response: {}, Marshalling it to an object of {}", jsonObj.toString(), serviceResponseClass);
>>     ObjectMapper objectMapper = new ObjectMapper();
>>     AfterburnerModule afterBurner = new AfterburnerModule();
>>     afterBurner.setUseOptimizedBeanDeserializer(false);
>>     objectMapper.registerModule(afterBurner);
>>     return (T) objectMapper.readValue(jsonObj.toString(), Class.forName(serviceResponseClass));
>>     }
>> 
>> Can you help me what could be going wrong?
>> 
>> On Sun, May 8, 2016 at 2:22 PM, Jean-Baptiste Onofré <jb@nanthrax.net <ma...@nanthrax.net>> wrote:
>> When you use *, maven-bundle-plugin/bnd is checking the actual import in your byte code. Here, you "really" import com.fasterxml.jackson.module.afterburner, but the ser package is not in your byte code, but transitively to the afterburner package. That's why it's not imported by the wildcard (because not directly used in your code).
>> 
>> Regards
>> JB
>> 
>> On 05/08/2016 09:40 AM, Debraj Manna wrote:
>> Thanks Jean. Updating the import as below in pom.xml solved the issue:-
>> 
>> <Import-Package>com.fasterxml.jackson.module.afterburner.ser;resolution:=optional,*</Import-Package>
>> 
>> 
>> Can you please let me know even though I specified * in the
>> Import-Package why com.fasterxml.jackson.module.afterburner.serwas not
>> getting imported even though the top level
>> packagecom.fasterxml.jackson.module.afterburnerwas getting imported?
>> 
>> 
>> 
>> 
>> On Sun, May 8, 2016 at 12:55 PM, Jean-Baptiste Onofré <jb@nanthrax.net <ma...@nanthrax.net>
>> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
>> 
>>     It's not a Karaf issue ;)
>> 
>>     As you can see in bundle:headers, the package
>>     com.fasterxml.jackson.module.afterburner.ser is not imported, so not
>>     in the classloader: that's the issue.
>> 
>>     Just add com.fasterxml.jackson.module.afterburner.ser in the
>>     Import-Package.
>> 
>>     Regards
>>     JB
>> 
>>     On 05/08/2016 09:21 AM, Debraj Manna wrote:
>> 
>>         I updated to the latest Jackson:-
>> 
>>         |karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
>>         jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
>>         karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
>>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237 |
>>         Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
>>         Jackson-annotations 240 | Active | 80 | 2.7.1 |
>>         Jackson-module-Afterburner|
>> 
>>         The Hello World Bundle is active:-
>> 
>>         *karaf@root*>bundle:list | grep Hello
>> 
>>         243 | Active |  80 | 0.0.1                              | HelloWorld
>> 
>> 
>>         So bundle:headers is also showing correct wiring:-
>> 
>>         *karaf@root*>bundle:headers 243
>> 
>> 
>> 
>>         Hello World (243)
>> 
>>         -----------------
>> 
>>         Created-By = Apache Maven Bundle Plugin
>> 
>>         Manifest-Version = 1.0
>> 
>>         Bnd-LastModified = 1462691114227
>> 
>>         Build-Jdk = 1.8.0_77
>> 
>>         Built-By = debraj
>> 
>>         Tool = Bnd-2.1.0.20130426-122213
>> 
>> 
>>         Bundle-ManifestVersion = 2
>> 
>>         Bundle-SymbolicName = world
>> 
>>         Bundle-Version = 0.0.1
>> 
>>         Bundle-Name = Hello World
>> 
>>         Bundle-Activator = com.hello.world.HelloWorldActivator
>> 
>> 
>>         Export-Package =
>> 
>>         com.hello;version=0.0.1,
>> 
>>         com.hello.world;uses:=org.osgi.framework;version=0.0.1
>> 
>>         Import-Package =
>> 
>>         com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>> 
>>         com.fasterxml.jackson.module.afterburner;
>> 
>>         resolution:=optional;
>> 
>>         version="[2.7,3)",
>> 
>>         org.osgi.framework;resolution:=optional;version="[1.6,2)"
>> 
>> 
>>         But now getting the below error. It seems Karaf is not able to load
>>         classes at run time.
>> 
>>         |com.fasterxml.jackson.databind.JsonMappingException: Failed to load
>>         class
>>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>         com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
>>         at
>>         com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
>>         at
>>         com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
>>         at
>>         com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
>>         at
>>         com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
>>         at
>>         com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
>>         at
>>         com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
>>         at
>>         com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
>>         at
>>         com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
>>         at
>>         org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>>         at
>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2146) at
>>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at
>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942) at
>>         org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
>>         at
>>         org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
>>         at
>>         org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
>>         at
>>         org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
>>         at
>>         org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
>>         at
>>         org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
>>         at
>>         org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
>>         at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>>         Source) at
>>         Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source) at
>>         org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>>         at
>>         org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)
>>         at
>>         org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
>>         at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182) at
>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119) at
>>         org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
>>         at
>>         org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
>>         at
>>         org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
>>         at java.security.AccessController.doPrivileged(Native Method) at
>>         org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57) at
>>         org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
>>         Caused by: java.lang.IllegalArgumentException: Failed to load class
>>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>         com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>>         at
>>         com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
>>         at
>>         com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
>>         at
>>         com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
>>         at
>>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
>>         at
>>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
>>         at
>>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
>>         at
>>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
>>         at
>>         com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
>>         at
>>         com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
>>         ... 33 more Caused by: java.lang.ClassNotFoundException:
>>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>         java.lang.ClassLoader.findClass(ClassLoader.java:530) at
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
>>         java.lang.ClassLoader.defineClass1(Native Method) at
>>         java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
>>         java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
>>         com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>>         ... 42 more|
>> 
>> 
>>         On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofré
>>         <jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>> wrote:
>> 
>>              Can you check with bundle:headers if it's correctly wired ?
>> 
>>              Regards
>>              JB
>> 
>>              On 05/07/2016 07:14 PM, Debraj Manna wrote:
>> 
>>                  Below is the generated MANIFEST:-
>> 
>>                  Manifest-Version: 1.0
>>                  Bnd-LastModified: 1462615570323
>>                  Build-Jdk: 1.8.0_77
>>                  Built-By: debraj
>>                  Bundle-Activator: com.hello.world.HelloWorldActivator
>>                  Bundle-ManifestVersion: 2
>>                  Bundle-Name: Hello World
>>                  Bundle-SymbolicName: world
>>                  Bundle-Version: 0.0.1
>>                  Created-By: Apache Maven Bundle Plugin
>>                  Export-Package:
>>                  com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>>                     i.framework";version="0.0.1"
>>                  Import-Package:
>>                  com.fasterxml.jackson.databind;resolution:=optional;vers
>> 
>> 
>>         ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>> 
>> 
>>         onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>>                     "[1.6,2)"
>>                  Tool: Bnd-2.1.0.20130426-122213
>> 
>> 
>>                  I have installed afterburner  then only I installed my
>>         Hello
>>                  World bundle.
>> 
>> 
>> 
>> 
>>                  On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré
>>                  <jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>
>>                  <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>>> wrote:
>> 
>>                       Hi,
>> 
>>                       1. Can you check that the generated MANIFEST
>>         contains the
>>                       afterburner import ?
>>                       2. If you install afterburner bundle after your
>>         bundle, you
>>                  have to
>>                       refresh your bundle as it's an optional import
>> 
>>                       Regards
>>                       JB
>> 
>> 
>>                       On 05/07/2016 05:27 PM, Debraj Manna wrote:
>> 
>>                           Hi,
>> 
>>                           I have a simple Hello World type Karaf Bundle. The
>>                  activator
>>                           code looks
>>                           like below:-
>> 
>>                           |public class HelloWorldActivator implements
>>                  BundleActivator {
>>                           @Override
>>                           public void start(BundleContext bundleContext)
>>         throws
>>                  Exception {
>>                           System.out.println("STARTING DEMO: hello,
>>         world\n");
>>                           System.out.println(getJsonDataAsString()); }
>>         @Override
>>                  public void
>>                           stop(BundleContext bundleContext) throws
>>         Exception {
>>                           System.out.println("STOPPING DEMO"); } private
>>         String
>>                           getJsonDataAsString() { JsonDataBlob
>>         jsonDataBlob = new
>>                           JsonDataBlob();
>>                           ObjectMapper objectMapper = new ObjectMapper();
>>                           objectMapper.registerModule(new
>>         AfterburnerModule());
>>                  try { return
>>                           objectMapper.writeValueAsString(jsonDataBlob); }
>>                  catch(Exception
>>                           e) {
>>                           e.printStackTrace(); } return ""; } } |
>> 
>>                           |pom.xml| looks like below:-
>> 
>>                           |<project
>>         xmlns="http://maven.apache.org/POM/4.0.0 <http://maven.apache.org/POM/4.0.0>"
>> 
>>           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>"
>> 
>>           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 <http://maven.apache.org/POM/4.0.0>
>>         http://maven.apache.org/xsd/maven-4.0.0.xsd <http://maven.apache.org/xsd/maven-4.0.0.xsd>">
>>                           <modelVersion>4.0.0</modelVersion>
>>                  <groupId>com.hello</groupId>
>>                           <artifactId>world</artifactId>
>>         <version>0.0.1</version>
>>                           <packaging>bundle</packaging> <name>Hello
>>         World</name>
>>                           <dependencies>
>>                           <!-- OSGi --> <dependency>
>>         <groupId>org.osgi</groupId>
>>                           <artifactId>org.osgi.core</artifactId>
>>                  <version>4.3.1</version>
>>                           </dependency> <dependency>
>>         <groupId>org.osgi</groupId>
>>                           <artifactId>org.osgi.compendium</artifactId>
>>                           <version>4.3.1</version>
>>                           </dependency> <dependency>
>>         <groupId>org.json</groupId>
>>                           <artifactId>json</artifactId>
>>         <version>20160212</version>
>>                           </dependency>
>>                           <dependency>
>>         <groupId>com.fasterxml.jackson.core</groupId>
>>                           <artifactId>jackson-core</artifactId>
>>                  <version>2.6.2</version>
>>                           </dependency> <dependency>
>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>                           <artifactId>jackson-annotations</artifactId>
>>                           <version>2.6.2</version>
>>                           </dependency> <dependency>
>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>                           <artifactId>jackson-databind</artifactId>
>>                  <version>2.6.2</version>
>>                           </dependency> <dependency>
>>                           <groupId>com.fasterxml.jackson.module</groupId>
>> 
>>           <artifactId>jackson-module-afterburner</artifactId>
>>                           <version>2.7.1</version> </dependency>
>>         </dependencies>
>>                  <build>
>>                           <sourceDirectory>src</sourceDirectory>
>>         <plugins> <plugin>
>>                           <artifactId>maven-compiler-plugin</artifactId>
>>                           <version>3.3</version>
>>                           <configuration> <source>1.8</source>
>>                  <target>1.8</target> <excludes>
>>                           <exclude>**/com/hello/main/*</exclude> </excludes>
>>                  </configuration>
>>                           </plugin> <plugin>
>>         <groupId>org.apache.felix</groupId>
>>                           <artifactId>maven-bundle-plugin</artifactId>
>>                           <version>2.4.0</version>
>>                           <inherited>true</inherited>
>>         <extensions>true</extensions>
>>                           <configuration> <instructions>
>> 
>> 
>>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>> 
>>           <Bundle-Version>${project.version}</Bundle-Version>
>> 
>> 
>>         <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>> 
>>           <Import-Package>*;resolution:=optional</Import-Package>
>>                           </instructions>
>>                           </configuration> </plugin> </plugins> </build>
>>         </project> |
>> 
>>                           The java object which I am trying to convert
>>         to json is
>>                  a simple
>>                           object
>>                           as shown below:-
>> 
>>                           |package com.hello.world; public class
>>         JsonDataBlob {
>>                  private
>>                           String add1
>>                           = "JP Naagar"; private String add2 = "";
>>         private int
>>                           shippartagent = 1;
>>                           public String getAdd1() { return add1; }
>>         public void
>>                  setAdd1(String
>>                           add1) { this.add1 = add1; } public String
>>         getAdd2() {
>>                  return add2; }
>>                           public void setAdd2(String add2) { this.add2 =
>>         add2; }
>>                  public int
>>                           getShippartagent() { return shippartagent; }
>>         public void
>>                           setShippartagent(int shippartagent) {
>>         this.shippartagent =
>>                           shippartagent; } } |
>> 
>>                           Whenever I am trying to install the bundle I
>>         am getting
>>                  the below
>>                           exception:-
>> 
>>                           |2016-05-07 15:36:48,986 | WARN |
>>         x-6.1-2.0/deploy |
>>                  fileinstall
>>                           | 7 -
>>                           org.apache.felix.fileinstall - 3.5.0 | Error while
>>                  starting bundle:
>> 
>> 
>>         file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>>                           org.osgi.framework.BundleException: Activator
>>         start
>>                  error in bundle
>>                           world [239]. at
>> 
>> 
>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>> 
>> 
>>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>> 
>> 
>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>> 
>> 
>>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>> 
>> 
>>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>> 
>> 
>>         org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>> 
>> 
>>         org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>> 
>> 
>>         org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>>                           Caused by: java.lang.NoClassDefFoundError:
>> 
>> 
>>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>>                           java.lang.Class.getDeclaredConstructors0(Native
>>                           Method)[:1.8.0_77] at
>> 
>> 
>>         java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>>                           at
>> 
>>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>> 
>>           java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>> 
>> 
>>         org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>>                           at
>> 
>> 
>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ...
>>                           7 more Caused by:
>>         java.lang.ClassNotFoundException:
>> 
>> 
>>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>>                           found by
>>                           world [239] at
>> 
>> 
>>         org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>> 
>> 
>>         org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>> 
>> 
>>         org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>>                           at
>> 
>> 
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ...
>>                           13 more |
>> 
>>                           All the required Jackson bundles are installed
>>         in Karaf:-
>> 
>>                           |karaf@root>bundle:list | grep Jackson 123 |
>>         Active |
>>                  50 | 2.6.2 |
>>                           Jackson-core 125 | Active | 50 | 2.6.2 |
>>                  Jackson-annotations 238 |
>>                           Installed | 80 | 2.7.1 |
>>         Jackson-module-Afterburner
>>                           karaf@root>bundle:list | grep jackson 124 |
>>         Active | 50
>>                  | 2.6.2 |
>>                           jackson-databind |
>> 
>>                           Everything works fine if I just comment out
>>         the below
>>                  line:-
>> 
>>                           |objectMapper.registerModule(new
>>         AfterburnerModule()); |
>> 
>>                           I have placed the required code in github
>> 
>>           <https://github.com/debraj-manna/afterburner-issue <https://github.com/debraj-manna/afterburner-issue>>
>> 
>>                           Has anyone able to execute the Jackson's
>>         Afterburner
>>                  module in
>>                           Karaf 3.0.5?
>> 
>>                           Thanks,
>> 
>>                           Debraj
>> 
>> 
>>                       --
>>                       Jean-Baptiste Onofré
>>         jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>
>>         <mailto:jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>>
>>                  <mailto:jbonofre@apache.org <ma...@apache.org>
>>         <mailto:jbonofre@apache.org <ma...@apache.org>> <mailto:jbonofre@apache.org <ma...@apache.org>
>>         <mailto:jbonofre@apache.org <ma...@apache.org>>>>
>>         http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>                       Talend - http://www.talend.com <http://www.talend.com/>
>> 
>> 
>> 
>>              --
>>              Jean-Baptiste Onofré
>>         jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>
>>         <mailto:jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>>
>>         http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>              Talend - http://www.talend.com <http://www.talend.com/>
>> 
>> 
>> 
>>     --
>>     Jean-Baptiste Onofré
>>     jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>
>>     http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>     Talend - http://www.talend.com <http://www.talend.com/>
>> 
>> 
>> 
>> -- 
>> Jean-Baptiste Onofré
>> jbonofre@apache.org <ma...@apache.org>
>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>> Talend - http://www.talend.com <http://www.talend.com/>
>> 
>> 
> 


Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Debraj Manna <su...@gmail.com>.
Thanks Timothy. Removing resolution:optional solved the issue. But any
guess why resolution:optional was creating the issue.?
Hi Debra,

I note that there are a lot of optional package imports in the manifest
snippet that you’ve provided. Optional package imports require a lot of
careful management and are hard to get right. In this case it looks as
though the package import is declared as optional even though it actually
isn’t at runtime.

My guess is that none of the imports are actually optional, and the
wrapping is currently not creating a very useful OSGi bundle.

Regards,

Tim


On 14 Jun 2016, at 10:51, Debraj Manna <su...@gmail.com> wrote:

I am not able to make this work yet. Can some one suggest some thing what
could be going wrong?

On Wed, May 11, 2016 at 9:51 PM, Debraj Manna <su...@gmail.com>
wrote:

> Hi Jean,
>
> I am facing a similiar problem when I tried to use Afterburner from my toy
> application to an actual code base. In the same code base in one place it
> is working perfectly fine and in one place it is failing with the error  java.lang.ClassNotFoundException:
> com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator.( I
> have placed the full stack-trace towards the end of my email). The same
> code base works perfectly fine when I run this as normal jar outside Karaf. I
> have no issue in the MANIFEST.mf in the bundle. All the imports are
> added:-
>
> Import-Package: com.fasterxml.jackson.core;resolut
>  ion:=optional;version="[2.7,3)",com.fasterxml.jackson.databind;resoluti
>  on:=optional;version="[2.7,3)",com.fasterxml.jackson.databind.annotatio
>  n;resolution:=optional;version="[2.7,3)",com.fasterxml.jackson.module.a
>  fterburner;resolution:=optional;version="[2.7,3)",org.json;reso
>  lution:=optional,org.osgi.service.blueprint;version="[1.0.0,2.0.0)";res
>  olution:=optional,com.fasterxml.jack
>  son.databind.ser;version="[2.7,3)",com.fasterxml.jackson.databind.deser
>  ;version="[2.7,3)",com.fasterxml.jackson.databind.ser.std;version="[2.7
>  ,3)",com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",com.fas
>  terxml.jackson.module.afterburner.ser;version="[2.7,3)",com.fasterxml.j
>  ackson.module.afterburner.deser;version="[2.7,3)"
>
> ...
>
> Even doing bundle:headers in Karaf I am seeing all the bundles correctly
> imported
>
> karaf@root>bundle:headers 286
>
> basecomponent (286)
> -------------------
> Created-By = Apache Maven Bundle Plugin
> Manifest-Version = 1.0
> Bnd-LastModified = 1462969467812
> Build-Jdk = 1.8.0_77
> Built-By = debraj
> Tool = Bnd-3.0.0.201509101326
>
> Bundle-Blueprint = OSGI-INF/blueprint/authenticationBeans.xml,OSGI-INF/blueprint/awsBeans.xml,OSGI-INF/blueprint/blueprint.xml,OSGI-INF/blueprint/camelContext.xml,OSGI-INF/blueprint/catalogBeans.xml,OSGI-INF/blueprint/erpBeans.xml,OSGI-INF/blueprint/healthCheckBeans.xml,OSGI-INF/blueprint/orderBeans.xml,OSGI-INF/blueprint/productBeans.xml,OSGI-INF/blueprint/vendorBeans.xml
> Bundle-ManifestVersion = 2
> Bundle-SymbolicName = basecomponent
> Bundle-Version = 0.0.1
> Bundle-Name = basecomponent
>
> Require-Capability =
>     osgi.ee;filter:=(&(osgi.ee=JavaSE)(version=1.8))
>
>
> Import-Package =
>     com.fasterxml.jackson.annotation;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.core;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind.annotation;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind.ser;version="[2.7,3)",
>     com.fasterxml.jackson.databind.deser;version="[2.7,3)",
>     com.fasterxml.jackson.databind.ser.std;version="[2.7,3)",
>     com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner.ser;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner.deser;version="[2.7,3)"
>
> ...
>
> The full stack trace:-
>
> OrderException-GetOrdersHTTPFailure
> com.fasterxml.jackson.databind.JsonMappingException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>  at [Source: {"data":{"total":2,"order":[], "status":{"success":true}},"_metaData":{"urlParams":{}},"status":{"success":true,"errors":null,"httpStatusCode":200}}; line: 1, column: 1]
>     at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:290)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:269)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:444)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:948)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:446)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3908)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3803)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2797)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.marshallJSON(JSONCamelHttpResponseHandler.java:73)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.handleResponse(JSONCamelHttpResponseHandler.java:38)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.prepareResponse(BaseCamelHTTPComponent.java:133)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.call(BaseCamelHTTPComponent.java:88)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeRequest(HttpWFNode.java:130)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:118)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:49)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.execute(HttpWFNode.java:43)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.adapter.order.executor.GetOrdersWorkflowExecutor.execute(GetOrdersWorkflowExecutor.java:44)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.adapter.order.OrderHelper.getMarketplaceOrders(OrderHelper.java:53)[286:basecomponent:0.0.1]
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_77]
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_77]
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_77]
>     at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_77]
>     at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:38)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.DelayProcessorSupport.process(DelayProcessorSupport.java:160)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:412)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:270)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:238)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:128)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:132)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:149)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:301)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:331)[136:org.apache.camel.camel-core:2.16.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.AbstractProcessor.makeRequest(AbstractProcessor.java:47)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequest(JSONRPCProcessor.java:167)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequestAndSendResponse(JSONRPCProcessor.java:132)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.process(JSONRPCProcessor.java:72)[286:basecomponent:0.0.1]
>     at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:170)[250:org.apache.camel.camel-jetty-common:2.16.1]
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[45:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
>     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.Server.handle(Server.java:370)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at java.lang.Thread.run(Thread.java:745)[:1.8.0_77]
> Caused by: java.lang.IllegalArgumentException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.generateMutatorClass(PropertyMutatorCollector.java:204)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.buildMutator(PropertyMutatorCollector.java:102)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier.updateBuilder(DeserializerModifier.java:62)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:239)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:406)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:352)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     ... 86 more
> Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>     at java.lang.ClassLoader.findClass(ClassLoader.java:530)[:1.8.0_77]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)[:1.8.0_77]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass1(Native Method)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass(ClassLoader.java:763)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass(ClassLoader.java:642)[:1.8.0_77]
>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>     ... 94 more
>
> The code where it is working looks like something like below (and is
> called first in the flow)
>
> public static WFRequest fromJSON(String json, String targetClassName)
>         throws ClassNotFoundException, IOException {
>     WFRequest reqParam = null;
>     ObjectMapper mapper = new ObjectMapper();
>     mapper.registerModule(new AfterburnerModule());
>     reqParam = (WFRequest) mapper.readValue(json, Class.forName(targetClassName));
>     return reqParam;
>     }
>
> The code where it is failing looks like below:-
>
> @SuppressWarnings("unchecked")
>     private static <T extends BaseCamelHTTPComponentResponse> T fromJSON(final JSONObject jsonObj,
>         String serviceResponseClass) throws ClassNotFoundException, IOException {
>     LOG.info <http://log.info>("Response: {}, Marshalling it to an object of {}", jsonObj.toString(), serviceResponseClass);
>     ObjectMapper objectMapper = new ObjectMapper();
>     AfterburnerModule afterBurner = new AfterburnerModule();
>     afterBurner.setUseOptimizedBeanDeserializer(false);
>     objectMapper.registerModule(afterBurner);
>     return (T) objectMapper.readValue(jsonObj.toString(), Class.forName(serviceResponseClass));
>     }
>
>
> Can you help me what could be going wrong?
>
> On Sun, May 8, 2016 at 2:22 PM, Jean-Baptiste Onofré <jb...@nanthrax.net>
> wrote:
>
>> When you use *, maven-bundle-plugin/bnd is checking the actual import in
>> your byte code. Here, you "really" import
>> com.fasterxml.jackson.module.afterburner, but the ser package is not in
>> your byte code, but transitively to the afterburner package. That's why
>> it's not imported by the wildcard (because not directly used in your code).
>>
>> Regards
>> JB
>>
>> On 05/08/2016 09:40 AM, Debraj Manna wrote:
>>
>>> Thanks Jean. Updating the import as below in pom.xml solved the issue:-
>>>
>>>
>>> <Import-Package>com.fasterxml.jackson.module.afterburner.ser;resolution:=optional,*</Import-Package>
>>>
>>>
>>> Can you please let me know even though I specified * in the
>>> Import-Package why com.fasterxml.jackson.module.afterburner.serwas not
>>> getting imported even though the top level
>>> packagecom.fasterxml.jackson.module.afterburnerwas getting imported?
>>>
>>>
>>>
>>>
>>> On Sun, May 8, 2016 at 12:55 PM, Jean-Baptiste Onofré <jb@nanthrax.net
>>> <ma...@nanthrax.net>> wrote:
>>>
>>>     It's not a Karaf issue ;)
>>>
>>>     As you can see in bundle:headers, the package
>>>     com.fasterxml.jackson.module.afterburner.ser is not imported, so not
>>>     in the classloader: that's the issue.
>>>
>>>     Just add com.fasterxml.jackson.module.afterburner.ser in the
>>>     Import-Package.
>>>
>>>     Regards
>>>     JB
>>>
>>>     On 05/08/2016 09:21 AM, Debraj Manna wrote:
>>>
>>>         I updated to the latest Jackson:-
>>>
>>>         |karaf@root>bundle:list | grep jackson 124 | Active | 50 |
>>> 2.6.2 |
>>>         jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
>>>         karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2
>>> |
>>>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237
>>> |
>>>         Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
>>>         Jackson-annotations 240 | Active | 80 | 2.7.1 |
>>>         Jackson-module-Afterburner|
>>>
>>>         The Hello World Bundle is active:-
>>>
>>>         *karaf@root*>bundle:list | grep Hello
>>>
>>>         243 | Active |  80 | 0.0.1                              |
>>> HelloWorld
>>>
>>>
>>>         So bundle:headers is also showing correct wiring:-
>>>
>>>         *karaf@root*>bundle:headers 243
>>>
>>>
>>>
>>>         Hello World (243)
>>>
>>>         -----------------
>>>
>>>         Created-By = Apache Maven Bundle Plugin
>>>
>>>         Manifest-Version = 1.0
>>>
>>>         Bnd-LastModified = 1462691114227
>>>
>>>         Build-Jdk = 1.8.0_77
>>>
>>>         Built-By = debraj
>>>
>>>         Tool = Bnd-2.1.0.20130426-122213
>>>
>>>
>>>         Bundle-ManifestVersion = 2
>>>
>>>         Bundle-SymbolicName = world
>>>
>>>         Bundle-Version = 0.0.1
>>>
>>>         Bundle-Name = Hello World
>>>
>>>         Bundle-Activator = com.hello.world.HelloWorldActivator
>>>
>>>
>>>         Export-Package =
>>>
>>>         com.hello;version=0.0.1,
>>>
>>>         com.hello.world;uses:=org.osgi.framework;version=0.0.1
>>>
>>>         Import-Package =
>>>
>>>
>>> com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>>>
>>>         com.fasterxml.jackson.module.afterburner;
>>>
>>>         resolution:=optional;
>>>
>>>         version="[2.7,3)",
>>>
>>>         org.osgi.framework;resolution:=optional;version="[1.6,2)"
>>>
>>>
>>>         But now getting the below error. It seems Karaf is not able to
>>> load
>>>         classes at run time.
>>>
>>>         |com.fasterxml.jackson.databind.JsonMappingException: Failed to
>>> load
>>>         class
>>>
>>> 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>>
>>> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
>>>         at
>>>
>>> com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
>>>         at
>>>
>>> com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
>>>         at
>>>
>>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>>>         at
>>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
>>> at
>>>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
>>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
>>> at
>>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
>>> at
>>>
>>> org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
>>>         at
>>>
>>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
>>>         at
>>>
>>> org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
>>>         at
>>>
>>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
>>>         at
>>>
>>> org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
>>>         at
>>>
>>> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
>>>         at
>>>
>>> org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
>>>         at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>>>         Source) at
>>>         Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>>> Source) at
>>>
>>> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>>>         at
>>>
>>> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)
>>>         at
>>>
>>> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
>>>         at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
>>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182)
>>> at
>>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119)
>>> at
>>>
>>> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
>>>         at
>>>
>>> org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
>>>         at
>>>
>>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
>>>         at java.security.AccessController.doPrivileged(Native Method) at
>>>
>>> org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57) at
>>>
>>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
>>>         Caused by: java.lang.IllegalArgumentException: Failed to load
>>> class
>>>
>>> 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>>
>>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>>>         at
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
>>>         at
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
>>>         at
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
>>>         ... 33 more Caused by: java.lang.ClassNotFoundException:
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>>         java.lang.ClassLoader.findClass(ClassLoader.java:530) at
>>>         java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
>>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
>>>         java.lang.ClassLoader.defineClass1(Native Method) at
>>>         java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
>>>         java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
>>>
>>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>>>         ... 42 more|
>>>
>>>
>>>         On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofré
>>>         <jb@nanthrax.net <ma...@nanthrax.net>
>>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
>>>
>>>              Can you check with bundle:headers if it's correctly wired ?
>>>
>>>              Regards
>>>              JB
>>>
>>>              On 05/07/2016 07:14 PM, Debraj Manna wrote:
>>>
>>>                  Below is the generated MANIFEST:-
>>>
>>>                  Manifest-Version: 1.0
>>>                  Bnd-LastModified: 1462615570323
>>>                  Build-Jdk: 1.8.0_77
>>>                  Built-By: debraj
>>>                  Bundle-Activator: com.hello.world.HelloWorldActivator
>>>                  Bundle-ManifestVersion: 2
>>>                  Bundle-Name: Hello World
>>>                  Bundle-SymbolicName: world
>>>                  Bundle-Version: 0.0.1
>>>                  Created-By: Apache Maven Bundle Plugin
>>>                  Export-Package:
>>>                  com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>>>                     i.framework";version="0.0.1"
>>>                  Import-Package:
>>>                  com.fasterxml.jackson.databind;resolution:=optional;vers
>>>
>>>
>>>
>>> ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>>>
>>>
>>>
>>> onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>>>                     "[1.6,2)"
>>>                  Tool: Bnd-2.1.0.20130426-122213
>>>
>>>
>>>                  I have installed afterburner  then only I installed my
>>>         Hello
>>>                  World bundle.
>>>
>>>
>>>
>>>
>>>                  On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré
>>>                  <jb@nanthrax.net <ma...@nanthrax.net>
>>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>>>                  <mailto:jb@nanthrax.net <ma...@nanthrax.net>
>>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>> wrote:
>>>
>>>                       Hi,
>>>
>>>                       1. Can you check that the generated MANIFEST
>>>         contains the
>>>                       afterburner import ?
>>>                       2. If you install afterburner bundle after your
>>>         bundle, you
>>>                  have to
>>>                       refresh your bundle as it's an optional import
>>>
>>>                       Regards
>>>                       JB
>>>
>>>
>>>                       On 05/07/2016 05:27 PM, Debraj Manna wrote:
>>>
>>>                           Hi,
>>>
>>>                           I have a simple Hello World type Karaf Bundle.
>>> The
>>>                  activator
>>>                           code looks
>>>                           like below:-
>>>
>>>                           |public class HelloWorldActivator implements
>>>                  BundleActivator {
>>>                           @Override
>>>                           public void start(BundleContext bundleContext)
>>>         throws
>>>                  Exception {
>>>                           System.out.println("STARTING DEMO: hello,
>>>         world\n");
>>>                           System.out.println(getJsonDataAsString()); }
>>>         @Override
>>>                  public void
>>>                           stop(BundleContext bundleContext) throws
>>>         Exception {
>>>                           System.out.println("STOPPING DEMO"); } private
>>>         String
>>>                           getJsonDataAsString() { JsonDataBlob
>>>         jsonDataBlob = new
>>>                           JsonDataBlob();
>>>                           ObjectMapper objectMapper = new ObjectMapper();
>>>                           objectMapper.registerModule(new
>>>         AfterburnerModule());
>>>                  try { return
>>>                           objectMapper.writeValueAsString(jsonDataBlob);
>>> }
>>>                  catch(Exception
>>>                           e) {
>>>                           e.printStackTrace(); } return ""; } } |
>>>
>>>                           |pom.xml| looks like below:-
>>>
>>>                           |<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">
>>>                           <modelVersion>4.0.0</modelVersion>
>>>                  <groupId>com.hello</groupId>
>>>                           <artifactId>world</artifactId>
>>>         <version>0.0.1</version>
>>>                           <packaging>bundle</packaging> <name>Hello
>>>         World</name>
>>>                           <dependencies>
>>>                           <!-- OSGi --> <dependency>
>>>         <groupId>org.osgi</groupId>
>>>                           <artifactId>org.osgi.core</artifactId>
>>>                  <version>4.3.1</version>
>>>                           </dependency> <dependency>
>>>         <groupId>org.osgi</groupId>
>>>                           <artifactId>org.osgi.compendium</artifactId>
>>>                           <version>4.3.1</version>
>>>                           </dependency> <dependency>
>>>         <groupId>org.json</groupId>
>>>                           <artifactId>json</artifactId>
>>>         <version>20160212</version>
>>>                           </dependency>
>>>                           <dependency>
>>>         <groupId>com.fasterxml.jackson.core</groupId>
>>>                           <artifactId>jackson-core</artifactId>
>>>                  <version>2.6.2</version>
>>>                           </dependency> <dependency>
>>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>>                           <artifactId>jackson-annotations</artifactId>
>>>                           <version>2.6.2</version>
>>>                           </dependency> <dependency>
>>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>>                           <artifactId>jackson-databind</artifactId>
>>>                  <version>2.6.2</version>
>>>                           </dependency> <dependency>
>>>                           <groupId>com.fasterxml.jackson.module</groupId>
>>>
>>>           <artifactId>jackson-module-afterburner</artifactId>
>>>                           <version>2.7.1</version> </dependency>
>>>         </dependencies>
>>>                  <build>
>>>                           <sourceDirectory>src</sourceDirectory>
>>>         <plugins> <plugin>
>>>                           <artifactId>maven-compiler-plugin</artifactId>
>>>                           <version>3.3</version>
>>>                           <configuration> <source>1.8</source>
>>>                  <target>1.8</target> <excludes>
>>>                           <exclude>**/com/hello/main/*</exclude>
>>> </excludes>
>>>                  </configuration>
>>>                           </plugin> <plugin>
>>>         <groupId>org.apache.felix</groupId>
>>>                           <artifactId>maven-bundle-plugin</artifactId>
>>>                           <version>2.4.0</version>
>>>                           <inherited>true</inherited>
>>>         <extensions>true</extensions>
>>>                           <configuration> <instructions>
>>>
>>>
>>>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>>>
>>>           <Bundle-Version>${project.version}</Bundle-Version>
>>>
>>>
>>>
>>> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>>>
>>>           <Import-Package>*;resolution:=optional</Import-Package>
>>>                           </instructions>
>>>                           </configuration> </plugin> </plugins> </build>
>>>         </project> |
>>>
>>>                           The java object which I am trying to convert
>>>         to json is
>>>                  a simple
>>>                           object
>>>                           as shown below:-
>>>
>>>                           |package com.hello.world; public class
>>>         JsonDataBlob {
>>>                  private
>>>                           String add1
>>>                           = "JP Naagar"; private String add2 = "";
>>>         private int
>>>                           shippartagent = 1;
>>>                           public String getAdd1() { return add1; }
>>>         public void
>>>                  setAdd1(String
>>>                           add1) { this.add1 = add1; } public String
>>>         getAdd2() {
>>>                  return add2; }
>>>                           public void setAdd2(String add2) { this.add2 =
>>>         add2; }
>>>                  public int
>>>                           getShippartagent() { return shippartagent; }
>>>         public void
>>>                           setShippartagent(int shippartagent) {
>>>         this.shippartagent =
>>>                           shippartagent; } } |
>>>
>>>                           Whenever I am trying to install the bundle I
>>>         am getting
>>>                  the below
>>>                           exception:-
>>>
>>>                           |2016-05-07 15:36:48,986 | WARN |
>>>         x-6.1-2.0/deploy |
>>>                  fileinstall
>>>                           | 7 -
>>>                           org.apache.felix.fileinstall - 3.5.0 | Error
>>> while
>>>                  starting bundle:
>>>
>>>
>>>
>>> file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>>>                           org.osgi.framework.BundleException: Activator
>>>         start
>>>                  error in bundle
>>>                           world [239]. at
>>>
>>>
>>>
>>> org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           Caused by: java.lang.NoClassDefFoundError:
>>>
>>>
>>>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>>>                           java.lang.Class.getDeclaredConstructors0(Native
>>>                           Method)[:1.8.0_77] at
>>>
>>>
>>>
>>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>>>                           at
>>>
>>>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>>>
>>>           java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>>>
>>>
>>>
>>> org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>>>                           at
>>>
>>>
>>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
>>> ...
>>>                           7 more Caused by:
>>>         java.lang.ClassNotFoundException:
>>>
>>>
>>>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>>>                           found by
>>>                           world [239] at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>>>                           at
>>>
>>>
>>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>>> ...
>>>                           13 more |
>>>
>>>                           All the required Jackson bundles are installed
>>>         in Karaf:-
>>>
>>>                           |karaf@root>bundle:list | grep Jackson 123 |
>>>         Active |
>>>                  50 | 2.6.2 |
>>>                           Jackson-core 125 | Active | 50 | 2.6.2 |
>>>                  Jackson-annotations 238 |
>>>                           Installed | 80 | 2.7.1 |
>>>         Jackson-module-Afterburner
>>>                           karaf@root>bundle:list | grep jackson 124 |
>>>         Active | 50
>>>                  | 2.6.2 |
>>>                           jackson-databind |
>>>
>>>                           Everything works fine if I just comment out
>>>         the below
>>>                  line:-
>>>
>>>                           |objectMapper.registerModule(new
>>>         AfterburnerModule()); |
>>>
>>>                           I have placed the required code in github
>>>
>>>           <https://github.com/debraj-manna/afterburner-issue>
>>>
>>>                           Has anyone able to execute the Jackson's
>>>         Afterburner
>>>                  module in
>>>                           Karaf 3.0.5?
>>>
>>>                           Thanks,
>>>
>>>                           Debraj
>>>
>>>
>>>                       --
>>>                       Jean-Baptiste Onofré
>>>         jbonofre@apache.org <ma...@apache.org>
>>>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>>>                  <mailto:jbonofre@apache.org
>>>         <ma...@apache.org> <mailto:jbonofre@apache.org
>>>         <ma...@apache.org>>>
>>>         http://blog.nanthrax.net
>>>                       Talend - http://www.talend.com
>>>
>>>
>>>
>>>              --
>>>              Jean-Baptiste Onofré
>>>         jbonofre@apache.org <ma...@apache.org>
>>>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>>>         http://blog.nanthrax.net
>>>              Talend - http://www.talend.com
>>>
>>>
>>>
>>>     --
>>>     Jean-Baptiste Onofré
>>>     jbonofre@apache.org <ma...@apache.org>
>>>     http://blog.nanthrax.net
>>>     Talend - http://www.talend.com
>>>
>>>
>>>
>> --
>> Jean-Baptiste Onofré
>> jbonofre@apache.org
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>
>

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Timothy Ward <ti...@paremus.com>.
Hi Debra,

I note that there are a lot of optional package imports in the manifest snippet that you’ve provided. Optional package imports require a lot of careful management and are hard to get right. In this case it looks as though the package import is declared as optional even though it actually isn’t at runtime.

My guess is that none of the imports are actually optional, and the wrapping is currently not creating a very useful OSGi bundle.

Regards,

Tim


> On 14 Jun 2016, at 10:51, Debraj Manna <su...@gmail.com> wrote:
> 
> I am not able to make this work yet. Can some one suggest some thing what could be going wrong?
> 
> On Wed, May 11, 2016 at 9:51 PM, Debraj Manna <subharaj.manna@gmail.com <ma...@gmail.com>> wrote:
> Hi Jean,
> 
> I am facing a similiar problem when I tried to use Afterburner from my toy application to an actual code base. In the same code base in one place it is working perfectly fine and in one place it is failing with the error  java.lang.ClassNotFoundException: com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator.( I have placed the full stack-trace towards the end of my email). The same code base works perfectly fine when I run this as normal jar outside Karaf. I have no issue in the MANIFEST.mf in the bundle. All the imports are added:-
> Import-Package: com.fasterxml.jackson.core;resolut
>  ion:=optional;version="[2.7,3)",com.fasterxml.jackson.databind;resoluti
>  on:=optional;version="[2.7,3)",com.fasterxml.jackson.databind.annotatio
>  n;resolution:=optional;version="[2.7,3)",com.fasterxml.jackson.module.a
>  fterburner;resolution:=optional;version="[2.7,3)",org.json;reso
>  lution:=optional,org.osgi.service.blueprint;version="[1.0.0,2.0.0)";res
>  olution:=optional,com.fasterxml.jack
>  son.databind.ser;version="[2.7,3)",com.fasterxml.jackson.databind.deser
>  ;version="[2.7,3)",com.fasterxml.jackson.databind.ser.std;version="[2.7
>  ,3)",com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",com.fas
>  terxml.jackson.module.afterburner.ser;version="[2.7,3)",com.fasterxml.j
>  ackson.module.afterburner.deser;version="[2.7,3)"
> 
> ...
> Even doing bundle:headers in Karaf I am seeing all the bundles correctly imported
> 
> karaf@root>bundle:headers 286
> 
> basecomponent (286)
> -------------------
> Created-By = Apache Maven Bundle Plugin
> Manifest-Version = 1.0
> Bnd-LastModified = 1462969467812
> Build-Jdk = 1.8.0_77
> Built-By = debraj
> Tool = Bnd-3.0.0.201509101326
> 
> Bundle-Blueprint = OSGI-INF/blueprint/authenticationBeans.xml,OSGI-INF/blueprint/awsBeans.xml,OSGI-INF/blueprint/blueprint.xml,OSGI-INF/blueprint/camelContext.xml,OSGI-INF/blueprint/catalogBeans.xml,OSGI-INF/blueprint/erpBeans.xml,OSGI-INF/blueprint/healthCheckBeans.xml,OSGI-INF/blueprint/orderBeans.xml,OSGI-INF/blueprint/productBeans.xml,OSGI-INF/blueprint/vendorBeans.xml
> Bundle-ManifestVersion = 2
> Bundle-SymbolicName = basecomponent
> Bundle-Version = 0.0.1
> Bundle-Name = basecomponent
> 
> Require-Capability = 
>     osgi.ee <http://osgi.ee/>;filter:=(&(osgi.ee <http://osgi.ee/>=JavaSE)(version=1.8))
> 
> 
> Import-Package = 
>     com.fasterxml.jackson.annotation;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.core;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind.annotation;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind.ser;version="[2.7,3)",
>     com.fasterxml.jackson.databind.deser;version="[2.7,3)",
>     com.fasterxml.jackson.databind.ser.std;version="[2.7,3)",
>     com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner.ser;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner.deser;version="[2.7,3)"
> 
> ...
> The full stack trace:-
> 
> OrderException-GetOrdersHTTPFailure
> com.fasterxml.jackson.databind.JsonMappingException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>  at [Source: {"data":{"total":2,"order":[], "status":{"success":true}},"_metaData":{"urlParams":{}},"status":{"success":true,"errors":null,"httpStatusCode":200}}; line: 1, column: 1]
>     at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:290)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:269)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:444)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:948)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:446)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3908)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3803)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2797)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.marshallJSON(JSONCamelHttpResponseHandler.java:73)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.handleResponse(JSONCamelHttpResponseHandler.java:38)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.prepareResponse(BaseCamelHTTPComponent.java:133)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.call(BaseCamelHTTPComponent.java:88)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeRequest(HttpWFNode.java:130)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:118)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:49)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.execute(HttpWFNode.java:43)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.adapter.order.executor.GetOrdersWorkflowExecutor.execute(GetOrdersWorkflowExecutor.java:44)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.adapter.order.OrderHelper.getMarketplaceOrders(OrderHelper.java:53)[286:basecomponent:0.0.1]
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_77]
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_77]
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_77]
>     at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_77]
>     at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:38)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.DelayProcessorSupport.process(DelayProcessorSupport.java:160)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:412)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:270)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:238)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:128)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:132)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:149)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:301)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:331)[136:org.apache.camel.camel-core:2.16.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.AbstractProcessor.makeRequest(AbstractProcessor.java:47)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequest(JSONRPCProcessor.java:167)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequestAndSendResponse(JSONRPCProcessor.java:132)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.process(JSONRPCProcessor.java:72)[286:basecomponent:0.0.1]
>     at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:170)[250:org.apache.camel.camel-jetty-common:2.16.1]
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[45:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
>     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.Server.handle(Server.java:370)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at java.lang.Thread.run(Thread.java:745)[:1.8.0_77]
> Caused by: java.lang.IllegalArgumentException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.generateMutatorClass(PropertyMutatorCollector.java:204)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.buildMutator(PropertyMutatorCollector.java:102)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier.updateBuilder(DeserializerModifier.java:62)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:239)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:406)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:352)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     ... 86 more
> Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>     at java.lang.ClassLoader.findClass(ClassLoader.java:530)[:1.8.0_77]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)[:1.8.0_77]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass1(Native Method)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass(ClassLoader.java:763)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass(ClassLoader.java:642)[:1.8.0_77]
>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>     ... 94 more
> The code where it is working looks like something like below (and is called first in the flow)
> public static WFRequest fromJSON(String json, String targetClassName)
>         throws ClassNotFoundException, IOException {
>     WFRequest reqParam = null;
>     ObjectMapper mapper = new ObjectMapper();
>     mapper.registerModule(new AfterburnerModule());
>     reqParam = (WFRequest) mapper.readValue(json, Class.forName(targetClassName));
>     return reqParam;
>     }
> The code where it is failing looks like below:-
> 
> @SuppressWarnings("unchecked")
>     private static <T extends BaseCamelHTTPComponentResponse> T fromJSON(final JSONObject jsonObj,
>         String serviceResponseClass) throws ClassNotFoundException, IOException {
>     LOG.info("Response: {}, Marshalling it to an object of {}", jsonObj.toString(), serviceResponseClass);
>     ObjectMapper objectMapper = new ObjectMapper();
>     AfterburnerModule afterBurner = new AfterburnerModule();
>     afterBurner.setUseOptimizedBeanDeserializer(false);
>     objectMapper.registerModule(afterBurner);
>     return (T) objectMapper.readValue(jsonObj.toString(), Class.forName(serviceResponseClass));
>     }
> 
> Can you help me what could be going wrong?
> 
> On Sun, May 8, 2016 at 2:22 PM, Jean-Baptiste Onofré <jb@nanthrax.net <ma...@nanthrax.net>> wrote:
> When you use *, maven-bundle-plugin/bnd is checking the actual import in your byte code. Here, you "really" import com.fasterxml.jackson.module.afterburner, but the ser package is not in your byte code, but transitively to the afterburner package. That's why it's not imported by the wildcard (because not directly used in your code).
> 
> Regards
> JB
> 
> On 05/08/2016 09:40 AM, Debraj Manna wrote:
> Thanks Jean. Updating the import as below in pom.xml solved the issue:-
> 
> <Import-Package>com.fasterxml.jackson.module.afterburner.ser;resolution:=optional,*</Import-Package>
> 
> 
> Can you please let me know even though I specified * in the
> Import-Package why com.fasterxml.jackson.module.afterburner.serwas not
> getting imported even though the top level
> packagecom.fasterxml.jackson.module.afterburnerwas getting imported?
> 
> 
> 
> 
> On Sun, May 8, 2016 at 12:55 PM, Jean-Baptiste Onofré <jb@nanthrax.net <ma...@nanthrax.net>
> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
> 
>     It's not a Karaf issue ;)
> 
>     As you can see in bundle:headers, the package
>     com.fasterxml.jackson.module.afterburner.ser is not imported, so not
>     in the classloader: that's the issue.
> 
>     Just add com.fasterxml.jackson.module.afterburner.ser in the
>     Import-Package.
> 
>     Regards
>     JB
> 
>     On 05/08/2016 09:21 AM, Debraj Manna wrote:
> 
>         I updated to the latest Jackson:-
> 
>         |karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
>         jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
>         karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237 |
>         Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
>         Jackson-annotations 240 | Active | 80 | 2.7.1 |
>         Jackson-module-Afterburner|
> 
>         The Hello World Bundle is active:-
> 
>         *karaf@root*>bundle:list | grep Hello
> 
>         243 | Active |  80 | 0.0.1                              | HelloWorld
> 
> 
>         So bundle:headers is also showing correct wiring:-
> 
>         *karaf@root*>bundle:headers 243
> 
> 
> 
>         Hello World (243)
> 
>         -----------------
> 
>         Created-By = Apache Maven Bundle Plugin
> 
>         Manifest-Version = 1.0
> 
>         Bnd-LastModified = 1462691114227
> 
>         Build-Jdk = 1.8.0_77
> 
>         Built-By = debraj
> 
>         Tool = Bnd-2.1.0.20130426-122213
> 
> 
>         Bundle-ManifestVersion = 2
> 
>         Bundle-SymbolicName = world
> 
>         Bundle-Version = 0.0.1
> 
>         Bundle-Name = Hello World
> 
>         Bundle-Activator = com.hello.world.HelloWorldActivator
> 
> 
>         Export-Package =
> 
>         com.hello;version=0.0.1,
> 
>         com.hello.world;uses:=org.osgi.framework;version=0.0.1
> 
>         Import-Package =
> 
>         com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
> 
>         com.fasterxml.jackson.module.afterburner;
> 
>         resolution:=optional;
> 
>         version="[2.7,3)",
> 
>         org.osgi.framework;resolution:=optional;version="[1.6,2)"
> 
> 
>         But now getting the below error. It seems Karaf is not able to load
>         classes at run time.
> 
>         |com.fasterxml.jackson.databind.JsonMappingException: Failed to load
>         class
>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>         com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
>         at
>         com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
>         at
>         com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
>         at
>         com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
>         at
>         com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
>         at
>         com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
>         at
>         org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>         at
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2146) at
>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942) at
>         org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
>         at
>         org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
>         at
>         org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
>         at
>         org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
>         at
>         org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
>         at
>         org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
>         at
>         org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
>         at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>         Source) at
>         Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source) at
>         org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>         at
>         org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)
>         at
>         org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
>         at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182) at
>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119) at
>         org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
>         at
>         org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
>         at
>         org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
>         at java.security.AccessController.doPrivileged(Native Method) at
>         org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57) at
>         org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
>         Caused by: java.lang.IllegalArgumentException: Failed to load class
>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>         com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>         at
>         com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
>         at
>         com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
>         at
>         com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
>         ... 33 more Caused by: java.lang.ClassNotFoundException:
>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>         java.lang.ClassLoader.findClass(ClassLoader.java:530) at
>         java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
>         java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
>         java.lang.ClassLoader.defineClass1(Native Method) at
>         java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
>         java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
>         com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>         ... 42 more|
> 
> 
>         On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofré
>         <jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>         <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>> wrote:
> 
>              Can you check with bundle:headers if it's correctly wired ?
> 
>              Regards
>              JB
> 
>              On 05/07/2016 07:14 PM, Debraj Manna wrote:
> 
>                  Below is the generated MANIFEST:-
> 
>                  Manifest-Version: 1.0
>                  Bnd-LastModified: 1462615570323
>                  Build-Jdk: 1.8.0_77
>                  Built-By: debraj
>                  Bundle-Activator: com.hello.world.HelloWorldActivator
>                  Bundle-ManifestVersion: 2
>                  Bundle-Name: Hello World
>                  Bundle-SymbolicName: world
>                  Bundle-Version: 0.0.1
>                  Created-By: Apache Maven Bundle Plugin
>                  Export-Package:
>                  com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>                     i.framework";version="0.0.1"
>                  Import-Package:
>                  com.fasterxml.jackson.databind;resolution:=optional;vers
> 
> 
>         ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
> 
> 
>         onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>                     "[1.6,2)"
>                  Tool: Bnd-2.1.0.20130426-122213
> 
> 
>                  I have installed afterburner  then only I installed my
>         Hello
>                  World bundle.
> 
> 
> 
> 
>                  On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré
>                  <jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>         <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>
>                  <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>         <mailto:jb@nanthrax.net <ma...@nanthrax.net> <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>>> wrote:
> 
>                       Hi,
> 
>                       1. Can you check that the generated MANIFEST
>         contains the
>                       afterburner import ?
>                       2. If you install afterburner bundle after your
>         bundle, you
>                  have to
>                       refresh your bundle as it's an optional import
> 
>                       Regards
>                       JB
> 
> 
>                       On 05/07/2016 05:27 PM, Debraj Manna wrote:
> 
>                           Hi,
> 
>                           I have a simple Hello World type Karaf Bundle. The
>                  activator
>                           code looks
>                           like below:-
> 
>                           |public class HelloWorldActivator implements
>                  BundleActivator {
>                           @Override
>                           public void start(BundleContext bundleContext)
>         throws
>                  Exception {
>                           System.out.println("STARTING DEMO: hello,
>         world\n");
>                           System.out.println(getJsonDataAsString()); }
>         @Override
>                  public void
>                           stop(BundleContext bundleContext) throws
>         Exception {
>                           System.out.println("STOPPING DEMO"); } private
>         String
>                           getJsonDataAsString() { JsonDataBlob
>         jsonDataBlob = new
>                           JsonDataBlob();
>                           ObjectMapper objectMapper = new ObjectMapper();
>                           objectMapper.registerModule(new
>         AfterburnerModule());
>                  try { return
>                           objectMapper.writeValueAsString(jsonDataBlob); }
>                  catch(Exception
>                           e) {
>                           e.printStackTrace(); } return ""; } } |
> 
>                           |pom.xml| looks like below:-
> 
>                           |<project
>         xmlns="http://maven.apache.org/POM/4.0.0 <http://maven.apache.org/POM/4.0.0>"
> 
>           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>"
> 
>           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 <http://maven.apache.org/POM/4.0.0>
>         http://maven.apache.org/xsd/maven-4.0.0.xsd <http://maven.apache.org/xsd/maven-4.0.0.xsd>">
>                           <modelVersion>4.0.0</modelVersion>
>                  <groupId>com.hello</groupId>
>                           <artifactId>world</artifactId>
>         <version>0.0.1</version>
>                           <packaging>bundle</packaging> <name>Hello
>         World</name>
>                           <dependencies>
>                           <!-- OSGi --> <dependency>
>         <groupId>org.osgi</groupId>
>                           <artifactId>org.osgi.core</artifactId>
>                  <version>4.3.1</version>
>                           </dependency> <dependency>
>         <groupId>org.osgi</groupId>
>                           <artifactId>org.osgi.compendium</artifactId>
>                           <version>4.3.1</version>
>                           </dependency> <dependency>
>         <groupId>org.json</groupId>
>                           <artifactId>json</artifactId>
>         <version>20160212</version>
>                           </dependency>
>                           <dependency>
>         <groupId>com.fasterxml.jackson.core</groupId>
>                           <artifactId>jackson-core</artifactId>
>                  <version>2.6.2</version>
>                           </dependency> <dependency>
>                           <groupId>com.fasterxml.jackson.core</groupId>
>                           <artifactId>jackson-annotations</artifactId>
>                           <version>2.6.2</version>
>                           </dependency> <dependency>
>                           <groupId>com.fasterxml.jackson.core</groupId>
>                           <artifactId>jackson-databind</artifactId>
>                  <version>2.6.2</version>
>                           </dependency> <dependency>
>                           <groupId>com.fasterxml.jackson.module</groupId>
> 
>           <artifactId>jackson-module-afterburner</artifactId>
>                           <version>2.7.1</version> </dependency>
>         </dependencies>
>                  <build>
>                           <sourceDirectory>src</sourceDirectory>
>         <plugins> <plugin>
>                           <artifactId>maven-compiler-plugin</artifactId>
>                           <version>3.3</version>
>                           <configuration> <source>1.8</source>
>                  <target>1.8</target> <excludes>
>                           <exclude>**/com/hello/main/*</exclude> </excludes>
>                  </configuration>
>                           </plugin> <plugin>
>         <groupId>org.apache.felix</groupId>
>                           <artifactId>maven-bundle-plugin</artifactId>
>                           <version>2.4.0</version>
>                           <inherited>true</inherited>
>         <extensions>true</extensions>
>                           <configuration> <instructions>
> 
> 
>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
> 
>           <Bundle-Version>${project.version}</Bundle-Version>
> 
> 
>         <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
> 
>           <Import-Package>*;resolution:=optional</Import-Package>
>                           </instructions>
>                           </configuration> </plugin> </plugins> </build>
>         </project> |
> 
>                           The java object which I am trying to convert
>         to json is
>                  a simple
>                           object
>                           as shown below:-
> 
>                           |package com.hello.world; public class
>         JsonDataBlob {
>                  private
>                           String add1
>                           = "JP Naagar"; private String add2 = "";
>         private int
>                           shippartagent = 1;
>                           public String getAdd1() { return add1; }
>         public void
>                  setAdd1(String
>                           add1) { this.add1 = add1; } public String
>         getAdd2() {
>                  return add2; }
>                           public void setAdd2(String add2) { this.add2 =
>         add2; }
>                  public int
>                           getShippartagent() { return shippartagent; }
>         public void
>                           setShippartagent(int shippartagent) {
>         this.shippartagent =
>                           shippartagent; } } |
> 
>                           Whenever I am trying to install the bundle I
>         am getting
>                  the below
>                           exception:-
> 
>                           |2016-05-07 15:36:48,986 | WARN |
>         x-6.1-2.0/deploy |
>                  fileinstall
>                           | 7 -
>                           org.apache.felix.fileinstall - 3.5.0 | Error while
>                  starting bundle:
> 
> 
>         file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>                           org.osgi.framework.BundleException: Activator
>         start
>                  error in bundle
>                           world [239]. at
> 
> 
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>                           at
> 
> 
>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>                           at
> 
> 
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>                           at
> 
> 
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
> 
> 
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
> 
> 
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
> 
> 
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
> 
> 
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>                           Caused by: java.lang.NoClassDefFoundError:
> 
> 
>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>                           java.lang.Class.getDeclaredConstructors0(Native
>                           Method)[:1.8.0_77] at
> 
> 
>         java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>                           at
> 
>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
> 
>           java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
> 
> 
>         org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>                           at
> 
> 
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ...
>                           7 more Caused by:
>         java.lang.ClassNotFoundException:
> 
> 
>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>                           found by
>                           world [239] at
> 
> 
>         org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>                           at
> 
> 
>         org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>                           at
> 
> 
>         org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>                           at
> 
> 
>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ...
>                           13 more |
> 
>                           All the required Jackson bundles are installed
>         in Karaf:-
> 
>                           |karaf@root>bundle:list | grep Jackson 123 |
>         Active |
>                  50 | 2.6.2 |
>                           Jackson-core 125 | Active | 50 | 2.6.2 |
>                  Jackson-annotations 238 |
>                           Installed | 80 | 2.7.1 |
>         Jackson-module-Afterburner
>                           karaf@root>bundle:list | grep jackson 124 |
>         Active | 50
>                  | 2.6.2 |
>                           jackson-databind |
> 
>                           Everything works fine if I just comment out
>         the below
>                  line:-
> 
>                           |objectMapper.registerModule(new
>         AfterburnerModule()); |
> 
>                           I have placed the required code in github
> 
>           <https://github.com/debraj-manna/afterburner-issue <https://github.com/debraj-manna/afterburner-issue>>
> 
>                           Has anyone able to execute the Jackson's
>         Afterburner
>                  module in
>                           Karaf 3.0.5?
> 
>                           Thanks,
> 
>                           Debraj
> 
> 
>                       --
>                       Jean-Baptiste Onofré
>         jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>
>         <mailto:jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>>
>                  <mailto:jbonofre@apache.org <ma...@apache.org>
>         <mailto:jbonofre@apache.org <ma...@apache.org>> <mailto:jbonofre@apache.org <ma...@apache.org>
>         <mailto:jbonofre@apache.org <ma...@apache.org>>>>
>         http://blog.nanthrax.net <http://blog.nanthrax.net/>
>                       Talend - http://www.talend.com <http://www.talend.com/>
> 
> 
> 
>              --
>              Jean-Baptiste Onofré
>         jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>
>         <mailto:jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>>
>         http://blog.nanthrax.net <http://blog.nanthrax.net/>
>              Talend - http://www.talend.com <http://www.talend.com/>
> 
> 
> 
>     --
>     Jean-Baptiste Onofré
>     jbonofre@apache.org <ma...@apache.org> <mailto:jbonofre@apache.org <ma...@apache.org>>
>     http://blog.nanthrax.net <http://blog.nanthrax.net/>
>     Talend - http://www.talend.com <http://www.talend.com/>
> 
> 
> 
> -- 
> Jean-Baptiste Onofré
> jbonofre@apache.org <ma...@apache.org>
> http://blog.nanthrax.net <http://blog.nanthrax.net/>
> Talend - http://www.talend.com <http://www.talend.com/>
> 
> 


Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Debraj Manna <su...@gmail.com>.
I am not able to make this work yet. Can some one suggest some thing what
could be going wrong?

On Wed, May 11, 2016 at 9:51 PM, Debraj Manna <su...@gmail.com>
wrote:

> Hi Jean,
>
> I am facing a similiar problem when I tried to use Afterburner from my toy
> application to an actual code base. In the same code base in one place it
> is working perfectly fine and in one place it is failing with the error  java.lang.ClassNotFoundException:
> com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator.( I
> have placed the full stack-trace towards the end of my email). The same
> code base works perfectly fine when I run this as normal jar outside Karaf. I
> have no issue in the MANIFEST.mf in the bundle. All the imports are
> added:-
>
> Import-Package: com.fasterxml.jackson.core;resolut
>  ion:=optional;version="[2.7,3)",com.fasterxml.jackson.databind;resoluti
>  on:=optional;version="[2.7,3)",com.fasterxml.jackson.databind.annotatio
>  n;resolution:=optional;version="[2.7,3)",com.fasterxml.jackson.module.a
>  fterburner;resolution:=optional;version="[2.7,3)",org.json;reso
>  lution:=optional,org.osgi.service.blueprint;version="[1.0.0,2.0.0)";res
>  olution:=optional,com.fasterxml.jack
>  son.databind.ser;version="[2.7,3)",com.fasterxml.jackson.databind.deser
>  ;version="[2.7,3)",com.fasterxml.jackson.databind.ser.std;version="[2.7
>  ,3)",com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",com.fas
>  terxml.jackson.module.afterburner.ser;version="[2.7,3)",com.fasterxml.j
>  ackson.module.afterburner.deser;version="[2.7,3)"
>
> ...
>
> Even doing bundle:headers in Karaf I am seeing all the bundles correctly
> imported
>
> karaf@root>bundle:headers 286
>
> basecomponent (286)
> -------------------
> Created-By = Apache Maven Bundle Plugin
> Manifest-Version = 1.0
> Bnd-LastModified = 1462969467812
> Build-Jdk = 1.8.0_77
> Built-By = debraj
> Tool = Bnd-3.0.0.201509101326
>
> Bundle-Blueprint = OSGI-INF/blueprint/authenticationBeans.xml,OSGI-INF/blueprint/awsBeans.xml,OSGI-INF/blueprint/blueprint.xml,OSGI-INF/blueprint/camelContext.xml,OSGI-INF/blueprint/catalogBeans.xml,OSGI-INF/blueprint/erpBeans.xml,OSGI-INF/blueprint/healthCheckBeans.xml,OSGI-INF/blueprint/orderBeans.xml,OSGI-INF/blueprint/productBeans.xml,OSGI-INF/blueprint/vendorBeans.xml
> Bundle-ManifestVersion = 2
> Bundle-SymbolicName = basecomponent
> Bundle-Version = 0.0.1
> Bundle-Name = basecomponent
>
> Require-Capability =
>     osgi.ee;filter:=(&(osgi.ee=JavaSE)(version=1.8))
>
>
> Import-Package =
>     com.fasterxml.jackson.annotation;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.core;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind.annotation;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner;resolution:=optional;version="[2.7,3)",
>     com.fasterxml.jackson.databind.ser;version="[2.7,3)",
>     com.fasterxml.jackson.databind.deser;version="[2.7,3)",
>     com.fasterxml.jackson.databind.ser.std;version="[2.7,3)",
>     com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner.ser;version="[2.7,3)",
>     com.fasterxml.jackson.module.afterburner.deser;version="[2.7,3)"
>
> ...
>
> The full stack trace:-
>
> OrderException-GetOrdersHTTPFailure
> com.fasterxml.jackson.databind.JsonMappingException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>  at [Source: {"data":{"total":2,"order":[], "status":{"success":true}},"_metaData":{"urlParams":{}},"status":{"success":true,"errors":null,"httpStatusCode":200}}; line: 1, column: 1]
>     at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:290)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:269)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:444)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:948)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:446)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3908)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3803)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2797)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.marshallJSON(JSONCamelHttpResponseHandler.java:73)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.handleResponse(JSONCamelHttpResponseHandler.java:38)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.prepareResponse(BaseCamelHTTPComponent.java:133)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.call(BaseCamelHTTPComponent.java:88)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeRequest(HttpWFNode.java:130)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:118)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:49)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.execute(HttpWFNode.java:43)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.adapter.order.executor.GetOrdersWorkflowExecutor.execute(GetOrdersWorkflowExecutor.java:44)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.adapter.order.OrderHelper.getMarketplaceOrders(OrderHelper.java:53)[286:basecomponent:0.0.1]
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_77]
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_77]
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_77]
>     at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_77]
>     at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:38)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.DelayProcessorSupport.process(DelayProcessorSupport.java:160)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:412)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:270)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:238)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:128)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:132)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:149)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:301)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:331)[136:org.apache.camel.camel-core:2.16.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.AbstractProcessor.makeRequest(AbstractProcessor.java:47)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequest(JSONRPCProcessor.java:167)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequestAndSendResponse(JSONRPCProcessor.java:132)[286:basecomponent:0.0.1]
>     at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.process(JSONRPCProcessor.java:72)[286:basecomponent:0.0.1]
>     at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
>     at org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:170)[250:org.apache.camel.camel-jetty-common:2.16.1]
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[45:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
>     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.Server.handle(Server.java:370)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
>     at java.lang.Thread.run(Thread.java:745)[:1.8.0_77]
> Caused by: java.lang.IllegalArgumentException: Failed to load class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f': com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.generateMutatorClass(PropertyMutatorCollector.java:204)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.buildMutator(PropertyMutatorCollector.java:102)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier.updateBuilder(DeserializerModifier.java:62)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:239)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:406)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:352)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
>     ... 86 more
> Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
>     at java.lang.ClassLoader.findClass(ClassLoader.java:530)[:1.8.0_77]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)[:1.8.0_77]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass1(Native Method)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass(ClassLoader.java:763)[:1.8.0_77]
>     at java.lang.ClassLoader.defineClass(ClassLoader.java:642)[:1.8.0_77]
>     at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>     ... 94 more
>
> The code where it is working looks like something like below (and is
> called first in the flow)
>
> public static WFRequest fromJSON(String json, String targetClassName)
>         throws ClassNotFoundException, IOException {
>     WFRequest reqParam = null;
>     ObjectMapper mapper = new ObjectMapper();
>     mapper.registerModule(new AfterburnerModule());
>     reqParam = (WFRequest) mapper.readValue(json, Class.forName(targetClassName));
>     return reqParam;
>     }
>
> The code where it is failing looks like below:-
>
> @SuppressWarnings("unchecked")
>     private static <T extends BaseCamelHTTPComponentResponse> T fromJSON(final JSONObject jsonObj,
>         String serviceResponseClass) throws ClassNotFoundException, IOException {
>     LOG.info("Response: {}, Marshalling it to an object of {}", jsonObj.toString(), serviceResponseClass);
>     ObjectMapper objectMapper = new ObjectMapper();
>     AfterburnerModule afterBurner = new AfterburnerModule();
>     afterBurner.setUseOptimizedBeanDeserializer(false);
>     objectMapper.registerModule(afterBurner);
>     return (T) objectMapper.readValue(jsonObj.toString(), Class.forName(serviceResponseClass));
>     }
>
>
> Can you help me what could be going wrong?
>
> On Sun, May 8, 2016 at 2:22 PM, Jean-Baptiste Onofré <jb...@nanthrax.net>
> wrote:
>
>> When you use *, maven-bundle-plugin/bnd is checking the actual import in
>> your byte code. Here, you "really" import
>> com.fasterxml.jackson.module.afterburner, but the ser package is not in
>> your byte code, but transitively to the afterburner package. That's why
>> it's not imported by the wildcard (because not directly used in your code).
>>
>> Regards
>> JB
>>
>> On 05/08/2016 09:40 AM, Debraj Manna wrote:
>>
>>> Thanks Jean. Updating the import as below in pom.xml solved the issue:-
>>>
>>>
>>> <Import-Package>com.fasterxml.jackson.module.afterburner.ser;resolution:=optional,*</Import-Package>
>>>
>>>
>>> Can you please let me know even though I specified * in the
>>> Import-Package why com.fasterxml.jackson.module.afterburner.serwas not
>>> getting imported even though the top level
>>> packagecom.fasterxml.jackson.module.afterburnerwas getting imported?
>>>
>>>
>>>
>>>
>>> On Sun, May 8, 2016 at 12:55 PM, Jean-Baptiste Onofré <jb@nanthrax.net
>>> <ma...@nanthrax.net>> wrote:
>>>
>>>     It's not a Karaf issue ;)
>>>
>>>     As you can see in bundle:headers, the package
>>>     com.fasterxml.jackson.module.afterburner.ser is not imported, so not
>>>     in the classloader: that's the issue.
>>>
>>>     Just add com.fasterxml.jackson.module.afterburner.ser in the
>>>     Import-Package.
>>>
>>>     Regards
>>>     JB
>>>
>>>     On 05/08/2016 09:21 AM, Debraj Manna wrote:
>>>
>>>         I updated to the latest Jackson:-
>>>
>>>         |karaf@root>bundle:list | grep jackson 124 | Active | 50 |
>>> 2.6.2 |
>>>         jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
>>>         karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2
>>> |
>>>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237
>>> |
>>>         Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
>>>         Jackson-annotations 240 | Active | 80 | 2.7.1 |
>>>         Jackson-module-Afterburner|
>>>
>>>         The Hello World Bundle is active:-
>>>
>>>         *karaf@root*>bundle:list | grep Hello
>>>
>>>         243 | Active |  80 | 0.0.1                              |
>>> HelloWorld
>>>
>>>
>>>         So bundle:headers is also showing correct wiring:-
>>>
>>>         *karaf@root*>bundle:headers 243
>>>
>>>
>>>
>>>         Hello World (243)
>>>
>>>         -----------------
>>>
>>>         Created-By = Apache Maven Bundle Plugin
>>>
>>>         Manifest-Version = 1.0
>>>
>>>         Bnd-LastModified = 1462691114227
>>>
>>>         Build-Jdk = 1.8.0_77
>>>
>>>         Built-By = debraj
>>>
>>>         Tool = Bnd-2.1.0.20130426-122213
>>>
>>>
>>>         Bundle-ManifestVersion = 2
>>>
>>>         Bundle-SymbolicName = world
>>>
>>>         Bundle-Version = 0.0.1
>>>
>>>         Bundle-Name = Hello World
>>>
>>>         Bundle-Activator = com.hello.world.HelloWorldActivator
>>>
>>>
>>>         Export-Package =
>>>
>>>         com.hello;version=0.0.1,
>>>
>>>         com.hello.world;uses:=org.osgi.framework;version=0.0.1
>>>
>>>         Import-Package =
>>>
>>>
>>> com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>>>
>>>         com.fasterxml.jackson.module.afterburner;
>>>
>>>         resolution:=optional;
>>>
>>>         version="[2.7,3)",
>>>
>>>         org.osgi.framework;resolution:=optional;version="[1.6,2)"
>>>
>>>
>>>         But now getting the below error. It seems Karaf is not able to
>>> load
>>>         classes at run time.
>>>
>>>         |com.fasterxml.jackson.databind.JsonMappingException: Failed to
>>> load
>>>         class
>>>
>>> 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>>
>>> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
>>>         at
>>>
>>> com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
>>>         at
>>>
>>> com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
>>>         at
>>>
>>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>>>         at
>>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
>>> at
>>>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
>>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
>>> at
>>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
>>> at
>>>
>>> org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
>>>         at
>>>
>>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
>>>         at
>>>
>>> org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
>>>         at
>>>
>>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
>>>         at
>>>
>>> org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
>>>         at
>>>
>>> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
>>>         at
>>>
>>> org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
>>>         at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>>>         Source) at
>>>         Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>>> Source) at
>>>
>>> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>>>         at
>>>
>>> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)
>>>         at
>>>
>>> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
>>>         at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
>>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182)
>>> at
>>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119)
>>> at
>>>
>>> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
>>>         at
>>>
>>> org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
>>>         at
>>>
>>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
>>>         at java.security.AccessController.doPrivileged(Native Method) at
>>>
>>> org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57) at
>>>
>>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
>>>         Caused by: java.lang.IllegalArgumentException: Failed to load
>>> class
>>>
>>> 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>>
>>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>>>         at
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
>>>         at
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
>>>         at
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
>>>         at
>>>
>>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
>>>         ... 33 more Caused by: java.lang.ClassNotFoundException:
>>>
>>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>>         java.lang.ClassLoader.findClass(ClassLoader.java:530) at
>>>         java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
>>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
>>>         java.lang.ClassLoader.defineClass1(Native Method) at
>>>         java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
>>>         java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
>>>
>>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>>>         ... 42 more|
>>>
>>>
>>>         On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofré
>>>         <jb@nanthrax.net <ma...@nanthrax.net>
>>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
>>>
>>>              Can you check with bundle:headers if it's correctly wired ?
>>>
>>>              Regards
>>>              JB
>>>
>>>              On 05/07/2016 07:14 PM, Debraj Manna wrote:
>>>
>>>                  Below is the generated MANIFEST:-
>>>
>>>                  Manifest-Version: 1.0
>>>                  Bnd-LastModified: 1462615570323
>>>                  Build-Jdk: 1.8.0_77
>>>                  Built-By: debraj
>>>                  Bundle-Activator: com.hello.world.HelloWorldActivator
>>>                  Bundle-ManifestVersion: 2
>>>                  Bundle-Name: Hello World
>>>                  Bundle-SymbolicName: world
>>>                  Bundle-Version: 0.0.1
>>>                  Created-By: Apache Maven Bundle Plugin
>>>                  Export-Package:
>>>                  com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>>>                     i.framework";version="0.0.1"
>>>                  Import-Package:
>>>                  com.fasterxml.jackson.databind;resolution:=optional;vers
>>>
>>>
>>>
>>> ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>>>
>>>
>>>
>>> onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>>>                     "[1.6,2)"
>>>                  Tool: Bnd-2.1.0.20130426-122213
>>>
>>>
>>>                  I have installed afterburner  then only I installed my
>>>         Hello
>>>                  World bundle.
>>>
>>>
>>>
>>>
>>>                  On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré
>>>                  <jb@nanthrax.net <ma...@nanthrax.net>
>>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>>>                  <mailto:jb@nanthrax.net <ma...@nanthrax.net>
>>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>> wrote:
>>>
>>>                       Hi,
>>>
>>>                       1. Can you check that the generated MANIFEST
>>>         contains the
>>>                       afterburner import ?
>>>                       2. If you install afterburner bundle after your
>>>         bundle, you
>>>                  have to
>>>                       refresh your bundle as it's an optional import
>>>
>>>                       Regards
>>>                       JB
>>>
>>>
>>>                       On 05/07/2016 05:27 PM, Debraj Manna wrote:
>>>
>>>                           Hi,
>>>
>>>                           I have a simple Hello World type Karaf Bundle.
>>> The
>>>                  activator
>>>                           code looks
>>>                           like below:-
>>>
>>>                           |public class HelloWorldActivator implements
>>>                  BundleActivator {
>>>                           @Override
>>>                           public void start(BundleContext bundleContext)
>>>         throws
>>>                  Exception {
>>>                           System.out.println("STARTING DEMO: hello,
>>>         world\n");
>>>                           System.out.println(getJsonDataAsString()); }
>>>         @Override
>>>                  public void
>>>                           stop(BundleContext bundleContext) throws
>>>         Exception {
>>>                           System.out.println("STOPPING DEMO"); } private
>>>         String
>>>                           getJsonDataAsString() { JsonDataBlob
>>>         jsonDataBlob = new
>>>                           JsonDataBlob();
>>>                           ObjectMapper objectMapper = new ObjectMapper();
>>>                           objectMapper.registerModule(new
>>>         AfterburnerModule());
>>>                  try { return
>>>                           objectMapper.writeValueAsString(jsonDataBlob);
>>> }
>>>                  catch(Exception
>>>                           e) {
>>>                           e.printStackTrace(); } return ""; } } |
>>>
>>>                           |pom.xml| looks like below:-
>>>
>>>                           |<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">
>>>                           <modelVersion>4.0.0</modelVersion>
>>>                  <groupId>com.hello</groupId>
>>>                           <artifactId>world</artifactId>
>>>         <version>0.0.1</version>
>>>                           <packaging>bundle</packaging> <name>Hello
>>>         World</name>
>>>                           <dependencies>
>>>                           <!-- OSGi --> <dependency>
>>>         <groupId>org.osgi</groupId>
>>>                           <artifactId>org.osgi.core</artifactId>
>>>                  <version>4.3.1</version>
>>>                           </dependency> <dependency>
>>>         <groupId>org.osgi</groupId>
>>>                           <artifactId>org.osgi.compendium</artifactId>
>>>                           <version>4.3.1</version>
>>>                           </dependency> <dependency>
>>>         <groupId>org.json</groupId>
>>>                           <artifactId>json</artifactId>
>>>         <version>20160212</version>
>>>                           </dependency>
>>>                           <dependency>
>>>         <groupId>com.fasterxml.jackson.core</groupId>
>>>                           <artifactId>jackson-core</artifactId>
>>>                  <version>2.6.2</version>
>>>                           </dependency> <dependency>
>>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>>                           <artifactId>jackson-annotations</artifactId>
>>>                           <version>2.6.2</version>
>>>                           </dependency> <dependency>
>>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>>                           <artifactId>jackson-databind</artifactId>
>>>                  <version>2.6.2</version>
>>>                           </dependency> <dependency>
>>>                           <groupId>com.fasterxml.jackson.module</groupId>
>>>
>>>           <artifactId>jackson-module-afterburner</artifactId>
>>>                           <version>2.7.1</version> </dependency>
>>>         </dependencies>
>>>                  <build>
>>>                           <sourceDirectory>src</sourceDirectory>
>>>         <plugins> <plugin>
>>>                           <artifactId>maven-compiler-plugin</artifactId>
>>>                           <version>3.3</version>
>>>                           <configuration> <source>1.8</source>
>>>                  <target>1.8</target> <excludes>
>>>                           <exclude>**/com/hello/main/*</exclude>
>>> </excludes>
>>>                  </configuration>
>>>                           </plugin> <plugin>
>>>         <groupId>org.apache.felix</groupId>
>>>                           <artifactId>maven-bundle-plugin</artifactId>
>>>                           <version>2.4.0</version>
>>>                           <inherited>true</inherited>
>>>         <extensions>true</extensions>
>>>                           <configuration> <instructions>
>>>
>>>
>>>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>>>
>>>           <Bundle-Version>${project.version}</Bundle-Version>
>>>
>>>
>>>
>>> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>>>
>>>           <Import-Package>*;resolution:=optional</Import-Package>
>>>                           </instructions>
>>>                           </configuration> </plugin> </plugins> </build>
>>>         </project> |
>>>
>>>                           The java object which I am trying to convert
>>>         to json is
>>>                  a simple
>>>                           object
>>>                           as shown below:-
>>>
>>>                           |package com.hello.world; public class
>>>         JsonDataBlob {
>>>                  private
>>>                           String add1
>>>                           = "JP Naagar"; private String add2 = "";
>>>         private int
>>>                           shippartagent = 1;
>>>                           public String getAdd1() { return add1; }
>>>         public void
>>>                  setAdd1(String
>>>                           add1) { this.add1 = add1; } public String
>>>         getAdd2() {
>>>                  return add2; }
>>>                           public void setAdd2(String add2) { this.add2 =
>>>         add2; }
>>>                  public int
>>>                           getShippartagent() { return shippartagent; }
>>>         public void
>>>                           setShippartagent(int shippartagent) {
>>>         this.shippartagent =
>>>                           shippartagent; } } |
>>>
>>>                           Whenever I am trying to install the bundle I
>>>         am getting
>>>                  the below
>>>                           exception:-
>>>
>>>                           |2016-05-07 15:36:48,986 | WARN |
>>>         x-6.1-2.0/deploy |
>>>                  fileinstall
>>>                           | 7 -
>>>                           org.apache.felix.fileinstall - 3.5.0 | Error
>>> while
>>>                  starting bundle:
>>>
>>>
>>>
>>> file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>>>                           org.osgi.framework.BundleException: Activator
>>>         start
>>>                  error in bundle
>>>                           world [239]. at
>>>
>>>
>>>
>>> org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>>>                           Caused by: java.lang.NoClassDefFoundError:
>>>
>>>
>>>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>>>                           java.lang.Class.getDeclaredConstructors0(Native
>>>                           Method)[:1.8.0_77] at
>>>
>>>
>>>
>>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>>>                           at
>>>
>>>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>>>
>>>           java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>>>
>>>
>>>
>>> org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>>>                           at
>>>
>>>
>>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
>>> ...
>>>                           7 more Caused by:
>>>         java.lang.ClassNotFoundException:
>>>
>>>
>>>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>>>                           found by
>>>                           world [239] at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>>>                           at
>>>
>>>
>>>
>>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>>>                           at
>>>
>>>
>>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>>> ...
>>>                           13 more |
>>>
>>>                           All the required Jackson bundles are installed
>>>         in Karaf:-
>>>
>>>                           |karaf@root>bundle:list | grep Jackson 123 |
>>>         Active |
>>>                  50 | 2.6.2 |
>>>                           Jackson-core 125 | Active | 50 | 2.6.2 |
>>>                  Jackson-annotations 238 |
>>>                           Installed | 80 | 2.7.1 |
>>>         Jackson-module-Afterburner
>>>                           karaf@root>bundle:list | grep jackson 124 |
>>>         Active | 50
>>>                  | 2.6.2 |
>>>                           jackson-databind |
>>>
>>>                           Everything works fine if I just comment out
>>>         the below
>>>                  line:-
>>>
>>>                           |objectMapper.registerModule(new
>>>         AfterburnerModule()); |
>>>
>>>                           I have placed the required code in github
>>>
>>>           <https://github.com/debraj-manna/afterburner-issue>
>>>
>>>                           Has anyone able to execute the Jackson's
>>>         Afterburner
>>>                  module in
>>>                           Karaf 3.0.5?
>>>
>>>                           Thanks,
>>>
>>>                           Debraj
>>>
>>>
>>>                       --
>>>                       Jean-Baptiste Onofré
>>>         jbonofre@apache.org <ma...@apache.org>
>>>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>>>                  <mailto:jbonofre@apache.org
>>>         <ma...@apache.org> <mailto:jbonofre@apache.org
>>>         <ma...@apache.org>>>
>>>         http://blog.nanthrax.net
>>>                       Talend - http://www.talend.com
>>>
>>>
>>>
>>>              --
>>>              Jean-Baptiste Onofré
>>>         jbonofre@apache.org <ma...@apache.org>
>>>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>>>         http://blog.nanthrax.net
>>>              Talend - http://www.talend.com
>>>
>>>
>>>
>>>     --
>>>     Jean-Baptiste Onofré
>>>     jbonofre@apache.org <ma...@apache.org>
>>>     http://blog.nanthrax.net
>>>     Talend - http://www.talend.com
>>>
>>>
>>>
>> --
>> Jean-Baptiste Onofré
>> jbonofre@apache.org
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>
>

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Debraj Manna <su...@gmail.com>.
Hi Jean,

I am facing a similiar problem when I tried to use Afterburner from my toy
application to an actual code base. In the same code base in one place it
is working perfectly fine and in one place it is failing with the
error  java.lang.ClassNotFoundException:
com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator.( I have
placed the full stack-trace towards the end of my email). The same code
base works perfectly fine when I run this as normal jar outside Karaf. I
have no issue in the MANIFEST.mf in the bundle. All the imports are added:-

Import-Package: com.fasterxml.jackson.core;resolut
 ion:=optional;version="[2.7,3)",com.fasterxml.jackson.databind;resoluti
 on:=optional;version="[2.7,3)",com.fasterxml.jackson.databind.annotatio
 n;resolution:=optional;version="[2.7,3)",com.fasterxml.jackson.module.a
 fterburner;resolution:=optional;version="[2.7,3)",org.json;reso
 lution:=optional,org.osgi.service.blueprint;version="[1.0.0,2.0.0)";res
 olution:=optional,com.fasterxml.jack
 son.databind.ser;version="[2.7,3)",com.fasterxml.jackson.databind.deser
 ;version="[2.7,3)",com.fasterxml.jackson.databind.ser.std;version="[2.7
 ,3)",com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",com.fas
 terxml.jackson.module.afterburner.ser;version="[2.7,3)",com.fasterxml.j
 ackson.module.afterburner.deser;version="[2.7,3)"

...

Even doing bundle:headers in Karaf I am seeing all the bundles correctly
imported

karaf@root>bundle:headers 286

basecomponent (286)
-------------------
Created-By = Apache Maven Bundle Plugin
Manifest-Version = 1.0
Bnd-LastModified = 1462969467812
Build-Jdk = 1.8.0_77
Built-By = debraj
Tool = Bnd-3.0.0.201509101326

Bundle-Blueprint =
OSGI-INF/blueprint/authenticationBeans.xml,OSGI-INF/blueprint/awsBeans.xml,OSGI-INF/blueprint/blueprint.xml,OSGI-INF/blueprint/camelContext.xml,OSGI-INF/blueprint/catalogBeans.xml,OSGI-INF/blueprint/erpBeans.xml,OSGI-INF/blueprint/healthCheckBeans.xml,OSGI-INF/blueprint/orderBeans.xml,OSGI-INF/blueprint/productBeans.xml,OSGI-INF/blueprint/vendorBeans.xml
Bundle-ManifestVersion = 2
Bundle-SymbolicName = basecomponent
Bundle-Version = 0.0.1
Bundle-Name = basecomponent

Require-Capability =
    osgi.ee;filter:=(&(osgi.ee=JavaSE)(version=1.8))


Import-Package =
    com.fasterxml.jackson.annotation;resolution:=optional;version="[2.7,3)",
    com.fasterxml.jackson.core;resolution:=optional;version="[2.7,3)",
    com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
    com.fasterxml.jackson.databind.annotation;resolution:=optional;version="[2.7,3)",
    com.fasterxml.jackson.module.afterburner;resolution:=optional;version="[2.7,3)",
    com.fasterxml.jackson.databind.ser;version="[2.7,3)",
    com.fasterxml.jackson.databind.deser;version="[2.7,3)",
    com.fasterxml.jackson.databind.ser.std;version="[2.7,3)",
    com.fasterxml.jackson.databind.deser.std;version="[2.7,3)",
    com.fasterxml.jackson.module.afterburner.ser;version="[2.7,3)",
    com.fasterxml.jackson.module.afterburner.deser;version="[2.7,3)"

...

The full stack trace:-

OrderException-GetOrdersHTTPFailure
com.fasterxml.jackson.databind.JsonMappingException: Failed to load
class 'org.apache.camel.Message$Access4JacksonDeserializer98898f0f':
com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
 at [Source: {"data":{"total":2,"order":[],
"status":{"success":true}},"_metaData":{"urlParams":{}},"status":{"success":true,"errors":null,"httpStatusCode":200}};
line: 1, column: 1]
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:290)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:269)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:444)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:948)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:446)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3908)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3803)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2797)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.marshallJSON(JSONCamelHttpResponseHandler.java:73)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.http.JSONCamelHttpResponseHandler.handleResponse(JSONCamelHttpResponseHandler.java:38)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.prepareResponse(BaseCamelHTTPComponent.java:133)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.http.BaseCamelHTTPComponent.call(BaseCamelHTTPComponent.java:88)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeRequest(HttpWFNode.java:130)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:118)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.executeWithRetry(HttpWFNode.java:49)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.node.HttpWFNode.execute(HttpWFNode.java:43)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.adapter.order.executor.GetOrdersWorkflowExecutor.execute(GetOrdersWorkflowExecutor.java:44)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.adapter.order.OrderHelper.getMarketplaceOrders(OrderHelper.java:53)[286:basecomponent:0.0.1]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_77]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_77]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_77]
    at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_77]
    at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:38)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.DelayProcessorSupport.process(DelayProcessorSupport.java:160)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:412)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:270)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:380)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:238)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:128)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:132)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:149)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:301)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:331)[136:org.apache.camel.camel-core:2.16.1]
    at com.jabong.orchestratorservice.basecomponent.processor.AbstractProcessor.makeRequest(AbstractProcessor.java:47)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequest(JSONRPCProcessor.java:167)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.processRequestAndSendResponse(JSONRPCProcessor.java:132)[286:basecomponent:0.0.1]
    at com.jabong.orchestratorservice.basecomponent.processor.JSONRPCProcessor.process(JSONRPCProcessor.java:72)[286:basecomponent:0.0.1]
    at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)[136:org.apache.camel.camel-core:2.16.1]
    at org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:170)[250:org.apache.camel.camel-jetty-common:2.16.1]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[45:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.Server.handle(Server.java:370)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[50:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
    at java.lang.Thread.run(Thread.java:745)[:1.8.0_77]
Caused by: java.lang.IllegalArgumentException: Failed to load class
'org.apache.camel.Message$Access4JacksonDeserializer98898f0f':
com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
    at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
    at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.generateMutatorClass(PropertyMutatorCollector.java:204)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
    at com.fasterxml.jackson.module.afterburner.deser.PropertyMutatorCollector.buildMutator(PropertyMutatorCollector.java:102)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
    at com.fasterxml.jackson.module.afterburner.deser.DeserializerModifier.updateBuilder(DeserializerModifier.java:62)[278:com.fasterxml.jackson.module.jackson-module-afterburner:2.7.4]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:239)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:143)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:406)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:352)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)[267:com.fasterxml.jackson.core.jackson-databind:2.7.4]
    ... 86 more
Caused by: java.lang.ClassNotFoundException:
com.fasterxml.jackson.module.afterburner.deser.BeanPropertyMutator
    at java.lang.ClassLoader.findClass(ClassLoader.java:530)[:1.8.0_77]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)[:1.8.0_77]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
    at java.lang.ClassLoader.defineClass1(Native Method)[:1.8.0_77]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)[:1.8.0_77]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:642)[:1.8.0_77]
    at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
    ... 94 more

The code where it is working looks like something like below (and is called
first in the flow)

public static WFRequest fromJSON(String json, String targetClassName)
        throws ClassNotFoundException, IOException {
    WFRequest reqParam = null;
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new AfterburnerModule());
    reqParam = (WFRequest) mapper.readValue(json,
Class.forName(targetClassName));
    return reqParam;
    }

The code where it is failing looks like below:-

@SuppressWarnings("unchecked")
    private static <T extends BaseCamelHTTPComponentResponse> T
fromJSON(final JSONObject jsonObj,
        String serviceResponseClass) throws ClassNotFoundException,
IOException {
    LOG.info("Response: {}, Marshalling it to an object of {}",
jsonObj.toString(), serviceResponseClass);
    ObjectMapper objectMapper = new ObjectMapper();
    AfterburnerModule afterBurner = new AfterburnerModule();
    afterBurner.setUseOptimizedBeanDeserializer(false);
    objectMapper.registerModule(afterBurner);
    return (T) objectMapper.readValue(jsonObj.toString(),
Class.forName(serviceResponseClass));
    }


Can you help me what could be going wrong?

On Sun, May 8, 2016 at 2:22 PM, Jean-Baptiste Onofré <jb...@nanthrax.net>
wrote:

> When you use *, maven-bundle-plugin/bnd is checking the actual import in
> your byte code. Here, you "really" import
> com.fasterxml.jackson.module.afterburner, but the ser package is not in
> your byte code, but transitively to the afterburner package. That's why
> it's not imported by the wildcard (because not directly used in your code).
>
> Regards
> JB
>
> On 05/08/2016 09:40 AM, Debraj Manna wrote:
>
>> Thanks Jean. Updating the import as below in pom.xml solved the issue:-
>>
>>
>> <Import-Package>com.fasterxml.jackson.module.afterburner.ser;resolution:=optional,*</Import-Package>
>>
>>
>> Can you please let me know even though I specified * in the
>> Import-Package why com.fasterxml.jackson.module.afterburner.serwas not
>> getting imported even though the top level
>> packagecom.fasterxml.jackson.module.afterburnerwas getting imported?
>>
>>
>>
>>
>> On Sun, May 8, 2016 at 12:55 PM, Jean-Baptiste Onofré <jb@nanthrax.net
>> <ma...@nanthrax.net>> wrote:
>>
>>     It's not a Karaf issue ;)
>>
>>     As you can see in bundle:headers, the package
>>     com.fasterxml.jackson.module.afterburner.ser is not imported, so not
>>     in the classloader: that's the issue.
>>
>>     Just add com.fasterxml.jackson.module.afterburner.ser in the
>>     Import-Package.
>>
>>     Regards
>>     JB
>>
>>     On 05/08/2016 09:21 AM, Debraj Manna wrote:
>>
>>         I updated to the latest Jackson:-
>>
>>         |karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2
>> |
>>         jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
>>         karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
>>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237 |
>>         Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
>>         Jackson-annotations 240 | Active | 80 | 2.7.1 |
>>         Jackson-module-Afterburner|
>>
>>         The Hello World Bundle is active:-
>>
>>         *karaf@root*>bundle:list | grep Hello
>>
>>         243 | Active |  80 | 0.0.1                              |
>> HelloWorld
>>
>>
>>         So bundle:headers is also showing correct wiring:-
>>
>>         *karaf@root*>bundle:headers 243
>>
>>
>>
>>         Hello World (243)
>>
>>         -----------------
>>
>>         Created-By = Apache Maven Bundle Plugin
>>
>>         Manifest-Version = 1.0
>>
>>         Bnd-LastModified = 1462691114227
>>
>>         Build-Jdk = 1.8.0_77
>>
>>         Built-By = debraj
>>
>>         Tool = Bnd-2.1.0.20130426-122213
>>
>>
>>         Bundle-ManifestVersion = 2
>>
>>         Bundle-SymbolicName = world
>>
>>         Bundle-Version = 0.0.1
>>
>>         Bundle-Name = Hello World
>>
>>         Bundle-Activator = com.hello.world.HelloWorldActivator
>>
>>
>>         Export-Package =
>>
>>         com.hello;version=0.0.1,
>>
>>         com.hello.world;uses:=org.osgi.framework;version=0.0.1
>>
>>         Import-Package =
>>
>>
>> com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>>
>>         com.fasterxml.jackson.module.afterburner;
>>
>>         resolution:=optional;
>>
>>         version="[2.7,3)",
>>
>>         org.osgi.framework;resolution:=optional;version="[1.6,2)"
>>
>>
>>         But now getting the below error. It seems Karaf is not able to
>> load
>>         classes at run time.
>>
>>         |com.fasterxml.jackson.databind.JsonMappingException: Failed to
>> load
>>         class
>>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
>> at
>>
>> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
>>         at
>>
>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
>>         at
>>
>> com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
>>         at
>>
>> com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
>>         at
>>
>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
>>         at
>>
>> com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
>>         at
>>
>> com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
>>         at
>>
>> com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
>>         at
>>
>> com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
>>         at
>>
>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>>         at
>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
>> at
>>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
>> at
>>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
>> at
>>
>> org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
>>         at
>>
>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
>>         at
>>
>> org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
>>         at
>>
>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
>>         at
>>
>> org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
>>         at
>>
>> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
>>         at
>>
>> org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
>>         at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>>         Source) at
>>         Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source)
>> at
>>
>> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>>         at
>>         org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)
>>         at
>>
>> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
>>         at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182) at
>>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119) at
>>
>> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
>>         at
>>
>> org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
>>         at
>>
>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
>>         at java.security.AccessController.doPrivileged(Native Method) at
>>         org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57)
>> at
>>
>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
>>         Caused by: java.lang.IllegalArgumentException: Failed to load
>> class
>>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
>> at
>>
>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>>         at
>>
>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
>>         at
>>
>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
>>         at
>>
>> com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
>>         at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
>>         at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
>>         at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
>>         at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
>>         at
>>
>> com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
>>         at
>>
>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
>>         ... 33 more Caused by: java.lang.ClassNotFoundException:
>>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
>> at
>>         java.lang.ClassLoader.findClass(ClassLoader.java:530) at
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
>>         java.lang.ClassLoader.defineClass1(Native Method) at
>>         java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
>>         java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
>>
>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>>         ... 42 more|
>>
>>
>>         On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofré
>>         <jb@nanthrax.net <ma...@nanthrax.net>
>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
>>
>>              Can you check with bundle:headers if it's correctly wired ?
>>
>>              Regards
>>              JB
>>
>>              On 05/07/2016 07:14 PM, Debraj Manna wrote:
>>
>>                  Below is the generated MANIFEST:-
>>
>>                  Manifest-Version: 1.0
>>                  Bnd-LastModified: 1462615570323
>>                  Build-Jdk: 1.8.0_77
>>                  Built-By: debraj
>>                  Bundle-Activator: com.hello.world.HelloWorldActivator
>>                  Bundle-ManifestVersion: 2
>>                  Bundle-Name: Hello World
>>                  Bundle-SymbolicName: world
>>                  Bundle-Version: 0.0.1
>>                  Created-By: Apache Maven Bundle Plugin
>>                  Export-Package:
>>                  com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>>                     i.framework";version="0.0.1"
>>                  Import-Package:
>>                  com.fasterxml.jackson.databind;resolution:=optional;vers
>>
>>
>>
>> ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>>
>>
>>
>> onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>>                     "[1.6,2)"
>>                  Tool: Bnd-2.1.0.20130426-122213
>>
>>
>>                  I have installed afterburner  then only I installed my
>>         Hello
>>                  World bundle.
>>
>>
>>
>>
>>                  On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré
>>                  <jb@nanthrax.net <ma...@nanthrax.net>
>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>>                  <mailto:jb@nanthrax.net <ma...@nanthrax.net>
>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>> wrote:
>>
>>                       Hi,
>>
>>                       1. Can you check that the generated MANIFEST
>>         contains the
>>                       afterburner import ?
>>                       2. If you install afterburner bundle after your
>>         bundle, you
>>                  have to
>>                       refresh your bundle as it's an optional import
>>
>>                       Regards
>>                       JB
>>
>>
>>                       On 05/07/2016 05:27 PM, Debraj Manna wrote:
>>
>>                           Hi,
>>
>>                           I have a simple Hello World type Karaf Bundle.
>> The
>>                  activator
>>                           code looks
>>                           like below:-
>>
>>                           |public class HelloWorldActivator implements
>>                  BundleActivator {
>>                           @Override
>>                           public void start(BundleContext bundleContext)
>>         throws
>>                  Exception {
>>                           System.out.println("STARTING DEMO: hello,
>>         world\n");
>>                           System.out.println(getJsonDataAsString()); }
>>         @Override
>>                  public void
>>                           stop(BundleContext bundleContext) throws
>>         Exception {
>>                           System.out.println("STOPPING DEMO"); } private
>>         String
>>                           getJsonDataAsString() { JsonDataBlob
>>         jsonDataBlob = new
>>                           JsonDataBlob();
>>                           ObjectMapper objectMapper = new ObjectMapper();
>>                           objectMapper.registerModule(new
>>         AfterburnerModule());
>>                  try { return
>>                           objectMapper.writeValueAsString(jsonDataBlob); }
>>                  catch(Exception
>>                           e) {
>>                           e.printStackTrace(); } return ""; } } |
>>
>>                           |pom.xml| looks like below:-
>>
>>                           |<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">
>>                           <modelVersion>4.0.0</modelVersion>
>>                  <groupId>com.hello</groupId>
>>                           <artifactId>world</artifactId>
>>         <version>0.0.1</version>
>>                           <packaging>bundle</packaging> <name>Hello
>>         World</name>
>>                           <dependencies>
>>                           <!-- OSGi --> <dependency>
>>         <groupId>org.osgi</groupId>
>>                           <artifactId>org.osgi.core</artifactId>
>>                  <version>4.3.1</version>
>>                           </dependency> <dependency>
>>         <groupId>org.osgi</groupId>
>>                           <artifactId>org.osgi.compendium</artifactId>
>>                           <version>4.3.1</version>
>>                           </dependency> <dependency>
>>         <groupId>org.json</groupId>
>>                           <artifactId>json</artifactId>
>>         <version>20160212</version>
>>                           </dependency>
>>                           <dependency>
>>         <groupId>com.fasterxml.jackson.core</groupId>
>>                           <artifactId>jackson-core</artifactId>
>>                  <version>2.6.2</version>
>>                           </dependency> <dependency>
>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>                           <artifactId>jackson-annotations</artifactId>
>>                           <version>2.6.2</version>
>>                           </dependency> <dependency>
>>                           <groupId>com.fasterxml.jackson.core</groupId>
>>                           <artifactId>jackson-databind</artifactId>
>>                  <version>2.6.2</version>
>>                           </dependency> <dependency>
>>                           <groupId>com.fasterxml.jackson.module</groupId>
>>
>>           <artifactId>jackson-module-afterburner</artifactId>
>>                           <version>2.7.1</version> </dependency>
>>         </dependencies>
>>                  <build>
>>                           <sourceDirectory>src</sourceDirectory>
>>         <plugins> <plugin>
>>                           <artifactId>maven-compiler-plugin</artifactId>
>>                           <version>3.3</version>
>>                           <configuration> <source>1.8</source>
>>                  <target>1.8</target> <excludes>
>>                           <exclude>**/com/hello/main/*</exclude>
>> </excludes>
>>                  </configuration>
>>                           </plugin> <plugin>
>>         <groupId>org.apache.felix</groupId>
>>                           <artifactId>maven-bundle-plugin</artifactId>
>>                           <version>2.4.0</version>
>>                           <inherited>true</inherited>
>>         <extensions>true</extensions>
>>                           <configuration> <instructions>
>>
>>
>>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>>
>>           <Bundle-Version>${project.version}</Bundle-Version>
>>
>>
>>
>> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>>
>>           <Import-Package>*;resolution:=optional</Import-Package>
>>                           </instructions>
>>                           </configuration> </plugin> </plugins> </build>
>>         </project> |
>>
>>                           The java object which I am trying to convert
>>         to json is
>>                  a simple
>>                           object
>>                           as shown below:-
>>
>>                           |package com.hello.world; public class
>>         JsonDataBlob {
>>                  private
>>                           String add1
>>                           = "JP Naagar"; private String add2 = "";
>>         private int
>>                           shippartagent = 1;
>>                           public String getAdd1() { return add1; }
>>         public void
>>                  setAdd1(String
>>                           add1) { this.add1 = add1; } public String
>>         getAdd2() {
>>                  return add2; }
>>                           public void setAdd2(String add2) { this.add2 =
>>         add2; }
>>                  public int
>>                           getShippartagent() { return shippartagent; }
>>         public void
>>                           setShippartagent(int shippartagent) {
>>         this.shippartagent =
>>                           shippartagent; } } |
>>
>>                           Whenever I am trying to install the bundle I
>>         am getting
>>                  the below
>>                           exception:-
>>
>>                           |2016-05-07 15:36:48,986 | WARN |
>>         x-6.1-2.0/deploy |
>>                  fileinstall
>>                           | 7 -
>>                           org.apache.felix.fileinstall - 3.5.0 | Error
>> while
>>                  starting bundle:
>>
>>
>>
>> file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>>                           org.osgi.framework.BundleException: Activator
>>         start
>>                  error in bundle
>>                           world [239]. at
>>
>>
>>
>> org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>>
>>
>>
>> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>>
>>
>>
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>>
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>>
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>>
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>>
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>>                           at
>>
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>>                           Caused by: java.lang.NoClassDefFoundError:
>>
>>
>>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>>                           java.lang.Class.getDeclaredConstructors0(Native
>>                           Method)[:1.8.0_77] at
>>
>>
>>
>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>>                           at
>>
>>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>>
>>           java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>>
>>
>>
>> org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>>                           at
>>
>>
>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
>> ...
>>                           7 more Caused by:
>>         java.lang.ClassNotFoundException:
>>
>>
>>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>>                           found by
>>                           world [239] at
>>
>>
>>
>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>>
>>
>>
>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>>                           at
>>
>>
>>
>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>>                           at
>>
>>
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>> ...
>>                           13 more |
>>
>>                           All the required Jackson bundles are installed
>>         in Karaf:-
>>
>>                           |karaf@root>bundle:list | grep Jackson 123 |
>>         Active |
>>                  50 | 2.6.2 |
>>                           Jackson-core 125 | Active | 50 | 2.6.2 |
>>                  Jackson-annotations 238 |
>>                           Installed | 80 | 2.7.1 |
>>         Jackson-module-Afterburner
>>                           karaf@root>bundle:list | grep jackson 124 |
>>         Active | 50
>>                  | 2.6.2 |
>>                           jackson-databind |
>>
>>                           Everything works fine if I just comment out
>>         the below
>>                  line:-
>>
>>                           |objectMapper.registerModule(new
>>         AfterburnerModule()); |
>>
>>                           I have placed the required code in github
>>
>>           <https://github.com/debraj-manna/afterburner-issue>
>>
>>                           Has anyone able to execute the Jackson's
>>         Afterburner
>>                  module in
>>                           Karaf 3.0.5?
>>
>>                           Thanks,
>>
>>                           Debraj
>>
>>
>>                       --
>>                       Jean-Baptiste Onofré
>>         jbonofre@apache.org <ma...@apache.org>
>>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>>                  <mailto:jbonofre@apache.org
>>         <ma...@apache.org> <mailto:jbonofre@apache.org
>>         <ma...@apache.org>>>
>>         http://blog.nanthrax.net
>>                       Talend - http://www.talend.com
>>
>>
>>
>>              --
>>              Jean-Baptiste Onofré
>>         jbonofre@apache.org <ma...@apache.org>
>>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>>         http://blog.nanthrax.net
>>              Talend - http://www.talend.com
>>
>>
>>
>>     --
>>     Jean-Baptiste Onofré
>>     jbonofre@apache.org <ma...@apache.org>
>>     http://blog.nanthrax.net
>>     Talend - http://www.talend.com
>>
>>
>>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
When you use *, maven-bundle-plugin/bnd is checking the actual import in 
your byte code. Here, you "really" import 
com.fasterxml.jackson.module.afterburner, but the ser package is not in 
your byte code, but transitively to the afterburner package. That's why 
it's not imported by the wildcard (because not directly used in your code).

Regards
JB

On 05/08/2016 09:40 AM, Debraj Manna wrote:
> Thanks Jean. Updating the import as below in pom.xml solved the issue:-
>
> <Import-Package>com.fasterxml.jackson.module.afterburner.ser;resolution:=optional,*</Import-Package>
>
>
> Can you please let me know even though I specified * in the
> Import-Package why com.fasterxml.jackson.module.afterburner.serwas not
> getting imported even though the top level
> packagecom.fasterxml.jackson.module.afterburnerwas getting imported?
>
>
>
>
> On Sun, May 8, 2016 at 12:55 PM, Jean-Baptiste Onofr� <jb@nanthrax.net
> <ma...@nanthrax.net>> wrote:
>
>     It's not a Karaf issue ;)
>
>     As you can see in bundle:headers, the package
>     com.fasterxml.jackson.module.afterburner.ser is not imported, so not
>     in the classloader: that's the issue.
>
>     Just add com.fasterxml.jackson.module.afterburner.ser in the
>     Import-Package.
>
>     Regards
>     JB
>
>     On 05/08/2016 09:21 AM, Debraj Manna wrote:
>
>         I updated to the latest Jackson:-
>
>         |karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
>         jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
>         karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237 |
>         Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
>         Jackson-annotations 240 | Active | 80 | 2.7.1 |
>         Jackson-module-Afterburner|
>
>         The Hello World Bundle is active:-
>
>         *karaf@root*>bundle:list | grep Hello
>
>         243 | Active |  80 | 0.0.1                              | HelloWorld
>
>
>         So bundle:headers is also showing correct wiring:-
>
>         *karaf@root*>bundle:headers 243
>
>
>
>         Hello World (243)
>
>         -----------------
>
>         Created-By = Apache Maven Bundle Plugin
>
>         Manifest-Version = 1.0
>
>         Bnd-LastModified = 1462691114227
>
>         Build-Jdk = 1.8.0_77
>
>         Built-By = debraj
>
>         Tool = Bnd-2.1.0.20130426-122213
>
>
>         Bundle-ManifestVersion = 2
>
>         Bundle-SymbolicName = world
>
>         Bundle-Version = 0.0.1
>
>         Bundle-Name = Hello World
>
>         Bundle-Activator = com.hello.world.HelloWorldActivator
>
>
>         Export-Package =
>
>         com.hello;version=0.0.1,
>
>         com.hello.world;uses:=org.osgi.framework;version=0.0.1
>
>         Import-Package =
>
>         com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>
>         com.fasterxml.jackson.module.afterburner;
>
>         resolution:=optional;
>
>         version="[2.7,3)",
>
>         org.osgi.framework;resolution:=optional;version="[1.6,2)"
>
>
>         But now getting the below error. It seems Karaf is not able to load
>         classes at run time.
>
>         |com.fasterxml.jackson.databind.JsonMappingException: Failed to load
>         class
>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>         com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
>         at
>         com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
>         at
>         com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
>         at
>         com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
>         at
>         com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
>         at
>         com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
>         at
>         org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>         at
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2146) at
>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942) at
>         org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
>         at
>         org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
>         at
>         org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
>         at
>         org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
>         at
>         org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
>         at
>         org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
>         at
>         org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
>         at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown
>         Source) at
>         Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source) at
>         org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>         at
>         org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)
>         at
>         org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
>         at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182) at
>         org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119) at
>         org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
>         at
>         org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
>         at
>         org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
>         at java.security.AccessController.doPrivileged(Native Method) at
>         org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57) at
>         org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
>         Caused by: java.lang.IllegalArgumentException: Failed to load class
>         'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>         com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>         at
>         com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
>         at
>         com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
>         at
>         com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
>         at
>         com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
>         at
>         com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
>         ... 33 more Caused by: java.lang.ClassNotFoundException:
>         com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>         java.lang.ClassLoader.findClass(ClassLoader.java:530) at
>         java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
>         java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
>         java.lang.ClassLoader.defineClass1(Native Method) at
>         java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
>         java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
>         com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>         ... 42 more|
>
>
>         On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofr�
>         <jb@nanthrax.net <ma...@nanthrax.net>
>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
>
>              Can you check with bundle:headers if it's correctly wired ?
>
>              Regards
>              JB
>
>              On 05/07/2016 07:14 PM, Debraj Manna wrote:
>
>                  Below is the generated MANIFEST:-
>
>                  Manifest-Version: 1.0
>                  Bnd-LastModified: 1462615570323
>                  Build-Jdk: 1.8.0_77
>                  Built-By: debraj
>                  Bundle-Activator: com.hello.world.HelloWorldActivator
>                  Bundle-ManifestVersion: 2
>                  Bundle-Name: Hello World
>                  Bundle-SymbolicName: world
>                  Bundle-Version: 0.0.1
>                  Created-By: Apache Maven Bundle Plugin
>                  Export-Package:
>                  com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>                     i.framework";version="0.0.1"
>                  Import-Package:
>                  com.fasterxml.jackson.databind;resolution:=optional;vers
>
>
>         ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>
>
>         onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>                     "[1.6,2)"
>                  Tool: Bnd-2.1.0.20130426-122213
>
>
>                  I have installed afterburner  then only I installed my
>         Hello
>                  World bundle.
>
>
>
>
>                  On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofr�
>                  <jb@nanthrax.net <ma...@nanthrax.net>
>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>
>                  <mailto:jb@nanthrax.net <ma...@nanthrax.net>
>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>>> wrote:
>
>                       Hi,
>
>                       1. Can you check that the generated MANIFEST
>         contains the
>                       afterburner import ?
>                       2. If you install afterburner bundle after your
>         bundle, you
>                  have to
>                       refresh your bundle as it's an optional import
>
>                       Regards
>                       JB
>
>
>                       On 05/07/2016 05:27 PM, Debraj Manna wrote:
>
>                           Hi,
>
>                           I have a simple Hello World type Karaf Bundle. The
>                  activator
>                           code looks
>                           like below:-
>
>                           |public class HelloWorldActivator implements
>                  BundleActivator {
>                           @Override
>                           public void start(BundleContext bundleContext)
>         throws
>                  Exception {
>                           System.out.println("STARTING DEMO: hello,
>         world\n");
>                           System.out.println(getJsonDataAsString()); }
>         @Override
>                  public void
>                           stop(BundleContext bundleContext) throws
>         Exception {
>                           System.out.println("STOPPING DEMO"); } private
>         String
>                           getJsonDataAsString() { JsonDataBlob
>         jsonDataBlob = new
>                           JsonDataBlob();
>                           ObjectMapper objectMapper = new ObjectMapper();
>                           objectMapper.registerModule(new
>         AfterburnerModule());
>                  try { return
>                           objectMapper.writeValueAsString(jsonDataBlob); }
>                  catch(Exception
>                           e) {
>                           e.printStackTrace(); } return ""; } } |
>
>                           |pom.xml| looks like below:-
>
>                           |<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">
>                           <modelVersion>4.0.0</modelVersion>
>                  <groupId>com.hello</groupId>
>                           <artifactId>world</artifactId>
>         <version>0.0.1</version>
>                           <packaging>bundle</packaging> <name>Hello
>         World</name>
>                           <dependencies>
>                           <!-- OSGi --> <dependency>
>         <groupId>org.osgi</groupId>
>                           <artifactId>org.osgi.core</artifactId>
>                  <version>4.3.1</version>
>                           </dependency> <dependency>
>         <groupId>org.osgi</groupId>
>                           <artifactId>org.osgi.compendium</artifactId>
>                           <version>4.3.1</version>
>                           </dependency> <dependency>
>         <groupId>org.json</groupId>
>                           <artifactId>json</artifactId>
>         <version>20160212</version>
>                           </dependency>
>                           <dependency>
>         <groupId>com.fasterxml.jackson.core</groupId>
>                           <artifactId>jackson-core</artifactId>
>                  <version>2.6.2</version>
>                           </dependency> <dependency>
>                           <groupId>com.fasterxml.jackson.core</groupId>
>                           <artifactId>jackson-annotations</artifactId>
>                           <version>2.6.2</version>
>                           </dependency> <dependency>
>                           <groupId>com.fasterxml.jackson.core</groupId>
>                           <artifactId>jackson-databind</artifactId>
>                  <version>2.6.2</version>
>                           </dependency> <dependency>
>                           <groupId>com.fasterxml.jackson.module</groupId>
>
>           <artifactId>jackson-module-afterburner</artifactId>
>                           <version>2.7.1</version> </dependency>
>         </dependencies>
>                  <build>
>                           <sourceDirectory>src</sourceDirectory>
>         <plugins> <plugin>
>                           <artifactId>maven-compiler-plugin</artifactId>
>                           <version>3.3</version>
>                           <configuration> <source>1.8</source>
>                  <target>1.8</target> <excludes>
>                           <exclude>**/com/hello/main/*</exclude> </excludes>
>                  </configuration>
>                           </plugin> <plugin>
>         <groupId>org.apache.felix</groupId>
>                           <artifactId>maven-bundle-plugin</artifactId>
>                           <version>2.4.0</version>
>                           <inherited>true</inherited>
>         <extensions>true</extensions>
>                           <configuration> <instructions>
>
>
>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>
>           <Bundle-Version>${project.version}</Bundle-Version>
>
>
>         <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>
>           <Import-Package>*;resolution:=optional</Import-Package>
>                           </instructions>
>                           </configuration> </plugin> </plugins> </build>
>         </project> |
>
>                           The java object which I am trying to convert
>         to json is
>                  a simple
>                           object
>                           as shown below:-
>
>                           |package com.hello.world; public class
>         JsonDataBlob {
>                  private
>                           String add1
>                           = "JP Naagar"; private String add2 = "";
>         private int
>                           shippartagent = 1;
>                           public String getAdd1() { return add1; }
>         public void
>                  setAdd1(String
>                           add1) { this.add1 = add1; } public String
>         getAdd2() {
>                  return add2; }
>                           public void setAdd2(String add2) { this.add2 =
>         add2; }
>                  public int
>                           getShippartagent() { return shippartagent; }
>         public void
>                           setShippartagent(int shippartagent) {
>         this.shippartagent =
>                           shippartagent; } } |
>
>                           Whenever I am trying to install the bundle I
>         am getting
>                  the below
>                           exception:-
>
>                           |2016-05-07 15:36:48,986 | WARN |
>         x-6.1-2.0/deploy |
>                  fileinstall
>                           | 7 -
>                           org.apache.felix.fileinstall - 3.5.0 | Error while
>                  starting bundle:
>
>
>         file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>                           org.osgi.framework.BundleException: Activator
>         start
>                  error in bundle
>                           world [239]. at
>
>
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>                           at
>
>
>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>                           at
>
>
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>                           at
>
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
>
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
>
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
>
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>                           at
>
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>                           Caused by: java.lang.NoClassDefFoundError:
>
>
>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>                           java.lang.Class.getDeclaredConstructors0(Native
>                           Method)[:1.8.0_77] at
>
>
>         java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>                           at
>
>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>
>           java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>
>
>         org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>                           at
>
>
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ...
>                           7 more Caused by:
>         java.lang.ClassNotFoundException:
>
>
>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>                           found by
>                           world [239] at
>
>
>         org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>                           at
>
>
>         org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>                           at
>
>
>         org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>                           at
>
>
>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ...
>                           13 more |
>
>                           All the required Jackson bundles are installed
>         in Karaf:-
>
>                           |karaf@root>bundle:list | grep Jackson 123 |
>         Active |
>                  50 | 2.6.2 |
>                           Jackson-core 125 | Active | 50 | 2.6.2 |
>                  Jackson-annotations 238 |
>                           Installed | 80 | 2.7.1 |
>         Jackson-module-Afterburner
>                           karaf@root>bundle:list | grep jackson 124 |
>         Active | 50
>                  | 2.6.2 |
>                           jackson-databind |
>
>                           Everything works fine if I just comment out
>         the below
>                  line:-
>
>                           |objectMapper.registerModule(new
>         AfterburnerModule()); |
>
>                           I have placed the required code in github
>
>           <https://github.com/debraj-manna/afterburner-issue>
>
>                           Has anyone able to execute the Jackson's
>         Afterburner
>                  module in
>                           Karaf 3.0.5?
>
>                           Thanks,
>
>                           Debraj
>
>
>                       --
>                       Jean-Baptiste Onofr�
>         jbonofre@apache.org <ma...@apache.org>
>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>                  <mailto:jbonofre@apache.org
>         <ma...@apache.org> <mailto:jbonofre@apache.org
>         <ma...@apache.org>>>
>         http://blog.nanthrax.net
>                       Talend - http://www.talend.com
>
>
>
>              --
>              Jean-Baptiste Onofr�
>         jbonofre@apache.org <ma...@apache.org>
>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>         http://blog.nanthrax.net
>              Talend - http://www.talend.com
>
>
>
>     --
>     Jean-Baptiste Onofr�
>     jbonofre@apache.org <ma...@apache.org>
>     http://blog.nanthrax.net
>     Talend - http://www.talend.com
>
>

-- 
Jean-Baptiste Onofr�
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Debraj Manna <su...@gmail.com>.
Thanks Jean. Updating the import as below in pom.xml solved the issue:-

<Import-Package>
com.fasterxml.jackson.module.afterburner.ser;resolution:=optional,*</
Import-Package>


Can you please let me know even though I specified * in the Import-Package
why com.fasterxml.jackson.module.afterburner.ser was not getting imported
even though the top level package com.fasterxml.jackson.module.afterburner
was getting imported?




On Sun, May 8, 2016 at 12:55 PM, Jean-Baptiste Onofré <jb...@nanthrax.net>
wrote:

> It's not a Karaf issue ;)
>
> As you can see in bundle:headers, the package
> com.fasterxml.jackson.module.afterburner.ser is not imported, so not in the
> classloader: that's the issue.
>
> Just add com.fasterxml.jackson.module.afterburner.ser in the
> Import-Package.
>
> Regards
> JB
>
> On 05/08/2016 09:21 AM, Debraj Manna wrote:
>
>> I updated to the latest Jackson:-
>>
>> |karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
>> jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
>> karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
>> Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237 |
>> Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
>> Jackson-annotations 240 | Active | 80 | 2.7.1 |
>> Jackson-module-Afterburner|
>>
>> The Hello World Bundle is active:-
>>
>> *karaf@root*>bundle:list | grep Hello
>>
>> 243 | Active |  80 | 0.0.1                              | HelloWorld
>>
>>
>> So bundle:headers is also showing correct wiring:-
>>
>> *karaf@root*>bundle:headers 243
>>
>>
>>
>> Hello World (243)
>>
>> -----------------
>>
>> Created-By = Apache Maven Bundle Plugin
>>
>> Manifest-Version = 1.0
>>
>> Bnd-LastModified = 1462691114227
>>
>> Build-Jdk = 1.8.0_77
>>
>> Built-By = debraj
>>
>> Tool = Bnd-2.1.0.20130426-122213
>>
>>
>> Bundle-ManifestVersion = 2
>>
>> Bundle-SymbolicName = world
>>
>> Bundle-Version = 0.0.1
>>
>> Bundle-Name = Hello World
>>
>> Bundle-Activator = com.hello.world.HelloWorldActivator
>>
>>
>> Export-Package =
>>
>> com.hello;version=0.0.1,
>>
>> com.hello.world;uses:=org.osgi.framework;version=0.0.1
>>
>> Import-Package =
>>
>> com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>>
>> com.fasterxml.jackson.module.afterburner;
>>
>> resolution:=optional;
>>
>> version="[2.7,3)",
>>
>> org.osgi.framework;resolution:=optional;version="[1.6,2)"
>>
>>
>> But now getting the below error. It seems Karaf is not able to load
>> classes at run time.
>>
>> |com.fasterxml.jackson.databind.JsonMappingException: Failed to load
>> class 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>
>> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
>> at
>>
>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
>> at
>>
>> com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
>> at
>>
>> com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
>> at
>>
>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
>> at
>>
>> com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
>> at
>>
>> com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
>> at
>>
>> com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
>> at
>> com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
>> at
>>
>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
>> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146) at
>> org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942) at
>> org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27) at
>>
>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
>> at
>>
>> org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
>> at
>>
>> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
>> at
>>
>> org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
>> at
>>
>> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
>> at
>>
>> org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
>> at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source) at
>> Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source) at
>> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
>> at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480) at
>> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
>> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182) at
>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119) at
>>
>> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
>> at
>>
>> org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
>> at
>>
>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
>> at java.security.AccessController.doPrivileged(Native Method) at
>> org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57) at
>>
>> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
>> Caused by: java.lang.IllegalArgumentException: Failed to load class
>> 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>>
>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
>> at
>>
>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
>> at
>>
>> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
>> at
>>
>> com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
>> at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
>> at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
>> at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
>> at
>>
>> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
>> at
>>
>> com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
>> at
>>
>> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
>> ... 33 more Caused by: java.lang.ClassNotFoundException:
>> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
>> java.lang.ClassLoader.findClass(ClassLoader.java:530) at
>> java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
>> java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
>> java.lang.ClassLoader.defineClass1(Native Method) at
>> java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
>> java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
>>
>> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
>> ... 42 more|
>>
>>
>> On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofré <jb@nanthrax.net
>> <ma...@nanthrax.net>> wrote:
>>
>>     Can you check with bundle:headers if it's correctly wired ?
>>
>>     Regards
>>     JB
>>
>>     On 05/07/2016 07:14 PM, Debraj Manna wrote:
>>
>>         Below is the generated MANIFEST:-
>>
>>         Manifest-Version: 1.0
>>         Bnd-LastModified: 1462615570323
>>         Build-Jdk: 1.8.0_77
>>         Built-By: debraj
>>         Bundle-Activator: com.hello.world.HelloWorldActivator
>>         Bundle-ManifestVersion: 2
>>         Bundle-Name: Hello World
>>         Bundle-SymbolicName: world
>>         Bundle-Version: 0.0.1
>>         Created-By: Apache Maven Bundle Plugin
>>         Export-Package:
>>         com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>>            i.framework";version="0.0.1"
>>         Import-Package:
>>         com.fasterxml.jackson.databind;resolution:=optional;vers
>>
>>
>> ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>>
>>
>> onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>>            "[1.6,2)"
>>         Tool: Bnd-2.1.0.20130426-122213
>>
>>
>>         I have installed afterburner  then only I installed my Hello
>>         World bundle.
>>
>>
>>
>>
>>         On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré
>>         <jb@nanthrax.net <ma...@nanthrax.net>
>>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
>>
>>              Hi,
>>
>>              1. Can you check that the generated MANIFEST contains the
>>              afterburner import ?
>>              2. If you install afterburner bundle after your bundle, you
>>         have to
>>              refresh your bundle as it's an optional import
>>
>>              Regards
>>              JB
>>
>>
>>              On 05/07/2016 05:27 PM, Debraj Manna wrote:
>>
>>                  Hi,
>>
>>                  I have a simple Hello World type Karaf Bundle. The
>>         activator
>>                  code looks
>>                  like below:-
>>
>>                  |public class HelloWorldActivator implements
>>         BundleActivator {
>>                  @Override
>>                  public void start(BundleContext bundleContext) throws
>>         Exception {
>>                  System.out.println("STARTING DEMO: hello, world\n");
>>                  System.out.println(getJsonDataAsString()); } @Override
>>         public void
>>                  stop(BundleContext bundleContext) throws Exception {
>>                  System.out.println("STOPPING DEMO"); } private String
>>                  getJsonDataAsString() { JsonDataBlob jsonDataBlob = new
>>                  JsonDataBlob();
>>                  ObjectMapper objectMapper = new ObjectMapper();
>>                  objectMapper.registerModule(new AfterburnerModule());
>>         try { return
>>                  objectMapper.writeValueAsString(jsonDataBlob); }
>>         catch(Exception
>>                  e) {
>>                  e.printStackTrace(); } return ""; } } |
>>
>>                  |pom.xml| looks like below:-
>>
>>                  |<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">
>>                  <modelVersion>4.0.0</modelVersion>
>>         <groupId>com.hello</groupId>
>>                  <artifactId>world</artifactId> <version>0.0.1</version>
>>                  <packaging>bundle</packaging> <name>Hello World</name>
>>                  <dependencies>
>>                  <!-- OSGi --> <dependency> <groupId>org.osgi</groupId>
>>                  <artifactId>org.osgi.core</artifactId>
>>         <version>4.3.1</version>
>>                  </dependency> <dependency> <groupId>org.osgi</groupId>
>>                  <artifactId>org.osgi.compendium</artifactId>
>>                  <version>4.3.1</version>
>>                  </dependency> <dependency> <groupId>org.json</groupId>
>>                  <artifactId>json</artifactId> <version>20160212</version>
>>                  </dependency>
>>                  <dependency>
>> <groupId>com.fasterxml.jackson.core</groupId>
>>                  <artifactId>jackson-core</artifactId>
>>         <version>2.6.2</version>
>>                  </dependency> <dependency>
>>                  <groupId>com.fasterxml.jackson.core</groupId>
>>                  <artifactId>jackson-annotations</artifactId>
>>                  <version>2.6.2</version>
>>                  </dependency> <dependency>
>>                  <groupId>com.fasterxml.jackson.core</groupId>
>>                  <artifactId>jackson-databind</artifactId>
>>         <version>2.6.2</version>
>>                  </dependency> <dependency>
>>                  <groupId>com.fasterxml.jackson.module</groupId>
>>                  <artifactId>jackson-module-afterburner</artifactId>
>>                  <version>2.7.1</version> </dependency> </dependencies>
>>         <build>
>>                  <sourceDirectory>src</sourceDirectory> <plugins> <plugin>
>>                  <artifactId>maven-compiler-plugin</artifactId>
>>                  <version>3.3</version>
>>                  <configuration> <source>1.8</source>
>>         <target>1.8</target> <excludes>
>>                  <exclude>**/com/hello/main/*</exclude> </excludes>
>>         </configuration>
>>                  </plugin> <plugin> <groupId>org.apache.felix</groupId>
>>                  <artifactId>maven-bundle-plugin</artifactId>
>>                  <version>2.4.0</version>
>>                  <inherited>true</inherited> <extensions>true</extensions>
>>                  <configuration> <instructions>
>>
>>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>>                  <Bundle-Version>${project.version}</Bundle-Version>
>>
>>
>> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>>                  <Import-Package>*;resolution:=optional</Import-Package>
>>                  </instructions>
>>                  </configuration> </plugin> </plugins> </build>
>> </project> |
>>
>>                  The java object which I am trying to convert to json is
>>         a simple
>>                  object
>>                  as shown below:-
>>
>>                  |package com.hello.world; public class JsonDataBlob {
>>         private
>>                  String add1
>>                  = "JP Naagar"; private String add2 = ""; private int
>>                  shippartagent = 1;
>>                  public String getAdd1() { return add1; } public void
>>         setAdd1(String
>>                  add1) { this.add1 = add1; } public String getAdd2() {
>>         return add2; }
>>                  public void setAdd2(String add2) { this.add2 = add2; }
>>         public int
>>                  getShippartagent() { return shippartagent; } public void
>>                  setShippartagent(int shippartagent) { this.shippartagent
>> =
>>                  shippartagent; } } |
>>
>>                  Whenever I am trying to install the bundle I am getting
>>         the below
>>                  exception:-
>>
>>                  |2016-05-07 15:36:48,986 | WARN | x-6.1-2.0/deploy |
>>         fileinstall
>>                  | 7 -
>>                  org.apache.felix.fileinstall - 3.5.0 | Error while
>>         starting bundle:
>>
>>
>> file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>>                  org.osgi.framework.BundleException: Activator start
>>         error in bundle
>>                  world [239]. at
>>
>>
>> org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>>                  at
>>
>>
>> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>>                  at
>>
>>
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>>                  at
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>>                  at
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>>                  at
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>>                  at
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>>                  at
>>
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>>                  Caused by: java.lang.NoClassDefFoundError:
>>
>>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>>                  java.lang.Class.getDeclaredConstructors0(Native
>>                  Method)[:1.8.0_77] at
>>
>>
>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>>                  at
>>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>>                  java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>>
>>
>> org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>>                  at
>>
>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
>> ...
>>                  7 more Caused by: java.lang.ClassNotFoundException:
>>
>>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>>                  found by
>>                  world [239] at
>>
>>
>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>>                  at
>>
>>
>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>>                  at
>>
>>
>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>>                  at
>>
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>> ...
>>                  13 more |
>>
>>                  All the required Jackson bundles are installed in Karaf:-
>>
>>                  |karaf@root>bundle:list | grep Jackson 123 | Active |
>>         50 | 2.6.2 |
>>                  Jackson-core 125 | Active | 50 | 2.6.2 |
>>         Jackson-annotations 238 |
>>                  Installed | 80 | 2.7.1 | Jackson-module-Afterburner
>>                  karaf@root>bundle:list | grep jackson 124 | Active | 50
>>         | 2.6.2 |
>>                  jackson-databind |
>>
>>                  Everything works fine if I just comment out the below
>>         line:-
>>
>>                  |objectMapper.registerModule(new AfterburnerModule()); |
>>
>>                  I have placed the required code in github
>>                  <https://github.com/debraj-manna/afterburner-issue>
>>
>>                  Has anyone able to execute the Jackson's Afterburner
>>         module in
>>                  Karaf 3.0.5?
>>
>>                  Thanks,
>>
>>                  Debraj
>>
>>
>>              --
>>              Jean-Baptiste Onofré
>>         jbonofre@apache.org <ma...@apache.org>
>>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>>         http://blog.nanthrax.net
>>              Talend - http://www.talend.com
>>
>>
>>
>>     --
>>     Jean-Baptiste Onofré
>>     jbonofre@apache.org <ma...@apache.org>
>>     http://blog.nanthrax.net
>>     Talend - http://www.talend.com
>>
>>
>>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
It's not a Karaf issue ;)

As you can see in bundle:headers, the package 
com.fasterxml.jackson.module.afterburner.ser is not imported, so not in 
the classloader: that's the issue.

Just add com.fasterxml.jackson.module.afterburner.ser in the Import-Package.

Regards
JB

On 05/08/2016 09:21 AM, Debraj Manna wrote:
> I updated to the latest Jackson:-
>
> |karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
> jackson-databind 239 | Active | 80 | 2.7.4 | jackson-databind
> karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
> Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 237 |
> Active | 80 | 2.7.4 | Jackson-core 238 | Active | 80 | 2.7.4 |
> Jackson-annotations 240 | Active | 80 | 2.7.1 | Jackson-module-Afterburner|
>
> The Hello World Bundle is active:-
>
> *karaf@root*>bundle:list | grep Hello
>
> 243 | Active |  80 | 0.0.1                              | HelloWorld
>
>
> So bundle:headers is also showing correct wiring:-
>
> *karaf@root*>bundle:headers 243
>
>
> Hello World (243)
>
> -----------------
>
> Created-By = Apache Maven Bundle Plugin
>
> Manifest-Version = 1.0
>
> Bnd-LastModified = 1462691114227
>
> Build-Jdk = 1.8.0_77
>
> Built-By = debraj
>
> Tool = Bnd-2.1.0.20130426-122213
>
>
> Bundle-ManifestVersion = 2
>
> Bundle-SymbolicName = world
>
> Bundle-Version = 0.0.1
>
> Bundle-Name = Hello World
>
> Bundle-Activator = com.hello.world.HelloWorldActivator
>
>
> Export-Package =
>
> com.hello;version=0.0.1,
>
> com.hello.world;uses:=org.osgi.framework;version=0.0.1
>
> Import-Package =
>
> com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",
>
> com.fasterxml.jackson.module.afterburner;
>
> resolution:=optional;
>
> version="[2.7,3)",
>
> org.osgi.framework;resolution:=optional;version="[1.6,2)"
>
>
> But now getting the below error. It seems Karaf is not able to load
> classes at run time.
>
> |com.fasterxml.jackson.databind.JsonMappingException: Failed to load
> class 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
> com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
> at
> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
> at
> com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
> at
> com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
> at
> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
> at
> com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
> at
> com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
> at
> com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
> at
> com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
> at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146) at
> org.apache.felix.framework.Felix.startBundle(Felix.java:2064) at
> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) at
> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942) at
> org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27) at
> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
> at
> org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
> at
> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
> at
> org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
> at
> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
> at
> org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
> at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source) at
> Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source) at
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
> at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480) at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108) at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182) at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119) at
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
> at
> org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
> at
> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
> at java.security.AccessController.doPrivileged(Native Method) at
> org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57) at
> org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
> Caused by: java.lang.IllegalArgumentException: Failed to load class
> 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
> at
> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
> at
> com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
> at
> com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
> at
> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
> at
> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
> at
> com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
> at
> com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
> at
> com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
> at
> com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
> ... 33 more Caused by: java.lang.ClassNotFoundException:
> com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor at
> java.lang.ClassLoader.findClass(ClassLoader.java:530) at
> java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
> java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
> java.lang.ClassLoader.defineClass1(Native Method) at
> java.lang.ClassLoader.defineClass(ClassLoader.java:763) at
> java.lang.ClassLoader.defineClass(ClassLoader.java:642) at
> com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
> ... 42 more|
>
>
> On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofr� <jb@nanthrax.net
> <ma...@nanthrax.net>> wrote:
>
>     Can you check with bundle:headers if it's correctly wired ?
>
>     Regards
>     JB
>
>     On 05/07/2016 07:14 PM, Debraj Manna wrote:
>
>         Below is the generated MANIFEST:-
>
>         Manifest-Version: 1.0
>         Bnd-LastModified: 1462615570323
>         Build-Jdk: 1.8.0_77
>         Built-By: debraj
>         Bundle-Activator: com.hello.world.HelloWorldActivator
>         Bundle-ManifestVersion: 2
>         Bundle-Name: Hello World
>         Bundle-SymbolicName: world
>         Bundle-Version: 0.0.1
>         Created-By: Apache Maven Bundle Plugin
>         Export-Package:
>         com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>            i.framework";version="0.0.1"
>         Import-Package:
>         com.fasterxml.jackson.databind;resolution:=optional;vers
>
>         ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>
>         onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>            "[1.6,2)"
>         Tool: Bnd-2.1.0.20130426-122213
>
>
>         I have installed afterburner  then only I installed my Hello
>         World bundle.
>
>
>
>
>         On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofr�
>         <jb@nanthrax.net <ma...@nanthrax.net>
>         <mailto:jb@nanthrax.net <ma...@nanthrax.net>>> wrote:
>
>              Hi,
>
>              1. Can you check that the generated MANIFEST contains the
>              afterburner import ?
>              2. If you install afterburner bundle after your bundle, you
>         have to
>              refresh your bundle as it's an optional import
>
>              Regards
>              JB
>
>
>              On 05/07/2016 05:27 PM, Debraj Manna wrote:
>
>                  Hi,
>
>                  I have a simple Hello World type Karaf Bundle. The
>         activator
>                  code looks
>                  like below:-
>
>                  |public class HelloWorldActivator implements
>         BundleActivator {
>                  @Override
>                  public void start(BundleContext bundleContext) throws
>         Exception {
>                  System.out.println("STARTING DEMO: hello, world\n");
>                  System.out.println(getJsonDataAsString()); } @Override
>         public void
>                  stop(BundleContext bundleContext) throws Exception {
>                  System.out.println("STOPPING DEMO"); } private String
>                  getJsonDataAsString() { JsonDataBlob jsonDataBlob = new
>                  JsonDataBlob();
>                  ObjectMapper objectMapper = new ObjectMapper();
>                  objectMapper.registerModule(new AfterburnerModule());
>         try { return
>                  objectMapper.writeValueAsString(jsonDataBlob); }
>         catch(Exception
>                  e) {
>                  e.printStackTrace(); } return ""; } } |
>
>                  |pom.xml| looks like below:-
>
>                  |<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">
>                  <modelVersion>4.0.0</modelVersion>
>         <groupId>com.hello</groupId>
>                  <artifactId>world</artifactId> <version>0.0.1</version>
>                  <packaging>bundle</packaging> <name>Hello World</name>
>                  <dependencies>
>                  <!-- OSGi --> <dependency> <groupId>org.osgi</groupId>
>                  <artifactId>org.osgi.core</artifactId>
>         <version>4.3.1</version>
>                  </dependency> <dependency> <groupId>org.osgi</groupId>
>                  <artifactId>org.osgi.compendium</artifactId>
>                  <version>4.3.1</version>
>                  </dependency> <dependency> <groupId>org.json</groupId>
>                  <artifactId>json</artifactId> <version>20160212</version>
>                  </dependency>
>                  <dependency> <groupId>com.fasterxml.jackson.core</groupId>
>                  <artifactId>jackson-core</artifactId>
>         <version>2.6.2</version>
>                  </dependency> <dependency>
>                  <groupId>com.fasterxml.jackson.core</groupId>
>                  <artifactId>jackson-annotations</artifactId>
>                  <version>2.6.2</version>
>                  </dependency> <dependency>
>                  <groupId>com.fasterxml.jackson.core</groupId>
>                  <artifactId>jackson-databind</artifactId>
>         <version>2.6.2</version>
>                  </dependency> <dependency>
>                  <groupId>com.fasterxml.jackson.module</groupId>
>                  <artifactId>jackson-module-afterburner</artifactId>
>                  <version>2.7.1</version> </dependency> </dependencies>
>         <build>
>                  <sourceDirectory>src</sourceDirectory> <plugins> <plugin>
>                  <artifactId>maven-compiler-plugin</artifactId>
>                  <version>3.3</version>
>                  <configuration> <source>1.8</source>
>         <target>1.8</target> <excludes>
>                  <exclude>**/com/hello/main/*</exclude> </excludes>
>         </configuration>
>                  </plugin> <plugin> <groupId>org.apache.felix</groupId>
>                  <artifactId>maven-bundle-plugin</artifactId>
>                  <version>2.4.0</version>
>                  <inherited>true</inherited> <extensions>true</extensions>
>                  <configuration> <instructions>
>
>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>                  <Bundle-Version>${project.version}</Bundle-Version>
>
>         <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>                  <Import-Package>*;resolution:=optional</Import-Package>
>                  </instructions>
>                  </configuration> </plugin> </plugins> </build> </project> |
>
>                  The java object which I am trying to convert to json is
>         a simple
>                  object
>                  as shown below:-
>
>                  |package com.hello.world; public class JsonDataBlob {
>         private
>                  String add1
>                  = "JP Naagar"; private String add2 = ""; private int
>                  shippartagent = 1;
>                  public String getAdd1() { return add1; } public void
>         setAdd1(String
>                  add1) { this.add1 = add1; } public String getAdd2() {
>         return add2; }
>                  public void setAdd2(String add2) { this.add2 = add2; }
>         public int
>                  getShippartagent() { return shippartagent; } public void
>                  setShippartagent(int shippartagent) { this.shippartagent =
>                  shippartagent; } } |
>
>                  Whenever I am trying to install the bundle I am getting
>         the below
>                  exception:-
>
>                  |2016-05-07 15:36:48,986 | WARN | x-6.1-2.0/deploy |
>         fileinstall
>                  | 7 -
>                  org.apache.felix.fileinstall - 3.5.0 | Error while
>         starting bundle:
>
>         file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>                  org.osgi.framework.BundleException: Activator start
>         error in bundle
>                  world [239]. at
>
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>                  at
>
>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>                  at
>
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>                  at
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>                  at
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>                  at
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>                  at
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>                  at
>
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>                  Caused by: java.lang.NoClassDefFoundError:
>
>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>                  java.lang.Class.getDeclaredConstructors0(Native
>                  Method)[:1.8.0_77] at
>
>         java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>                  at
>         java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>                  java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>
>         org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>                  at
>
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ...
>                  7 more Caused by: java.lang.ClassNotFoundException:
>
>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>                  found by
>                  world [239] at
>
>         org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>                  at
>
>         org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>                  at
>
>         org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>                  at
>
>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ...
>                  13 more |
>
>                  All the required Jackson bundles are installed in Karaf:-
>
>                  |karaf@root>bundle:list | grep Jackson 123 | Active |
>         50 | 2.6.2 |
>                  Jackson-core 125 | Active | 50 | 2.6.2 |
>         Jackson-annotations 238 |
>                  Installed | 80 | 2.7.1 | Jackson-module-Afterburner
>                  karaf@root>bundle:list | grep jackson 124 | Active | 50
>         | 2.6.2 |
>                  jackson-databind |
>
>                  Everything works fine if I just comment out the below
>         line:-
>
>                  |objectMapper.registerModule(new AfterburnerModule()); |
>
>                  I have placed the required code in github
>                  <https://github.com/debraj-manna/afterburner-issue>
>
>                  Has anyone able to execute the Jackson's Afterburner
>         module in
>                  Karaf 3.0.5?
>
>                  Thanks,
>
>                  Debraj
>
>
>              --
>              Jean-Baptiste Onofr�
>         jbonofre@apache.org <ma...@apache.org>
>         <mailto:jbonofre@apache.org <ma...@apache.org>>
>         http://blog.nanthrax.net
>              Talend - http://www.talend.com
>
>
>
>     --
>     Jean-Baptiste Onofr�
>     jbonofre@apache.org <ma...@apache.org>
>     http://blog.nanthrax.net
>     Talend - http://www.talend.com
>
>

-- 
Jean-Baptiste Onofr�
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Debraj Manna <su...@gmail.com>.
I updated to the latest Jackson:-

karaf@root>bundle:list | grep jackson
124 | Active |  50 | 2.6.2                              |
jackson-databind
239 | Active |  80 | 2.7.4                              |
jackson-databind
karaf@root>bundle:list | grep Jackson
123 | Active |  50 | 2.6.2                              | Jackson-core
125 | Active |  50 | 2.6.2                              |
Jackson-annotations
237 | Active |  80 | 2.7.4                              | Jackson-core
238 | Active |  80 | 2.7.4                              |
Jackson-annotations
240 | Active |  80 | 2.7.1                              |
Jackson-module-Afterburner

The Hello World Bundle is active:-

*karaf@root*>bundle:list | grep Hello

243 | Active |  80 | 0.0.1                              | Hello World

So bundle:headers is also showing correct wiring:-

*karaf@root*>bundle:headers 243


Hello World (243)

-----------------

Created-By = Apache Maven Bundle Plugin

Manifest-Version = 1.0

Bnd-LastModified = 1462691114227

Build-Jdk = 1.8.0_77

Built-By = debraj

Tool = Bnd-2.1.0.20130426-122213


Bundle-ManifestVersion = 2

Bundle-SymbolicName = world

Bundle-Version = 0.0.1

Bundle-Name = Hello World

Bundle-Activator = com.hello.world.HelloWorldActivator


Export-Package =

com.hello;version=0.0.1,

com.hello.world;uses:=org.osgi.framework;version=0.0.1

Import-Package =

com.fasterxml.jackson.databind;resolution:=optional;version="[2.7,3)",

com.fasterxml.jackson.module.afterburner;

resolution:=optional;

version="[2.7,3)",

org.osgi.framework;resolution:=optional;version="[1.6,2)"


But now getting the below error. It seems Karaf is not able to load classes
at run time.

com.fasterxml.jackson.databind.JsonMappingException: Failed to load
class 'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:312)
    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1172)
    at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:490)
    at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:688)
    at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:107)
    at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3631)
    at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
    at com.hello.world.HelloWorldActivator.getJsonDataAsString(HelloWorldActivator.java:26)
    at com.hello.world.HelloWorldActivator.start(HelloWorldActivator.java:13)
    at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
    at org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
    at org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
    at org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
    at org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
    at org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
    at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
    at org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
    at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source)
    at Proxy836eebee_bd0c_424a_b0d9_7fc71158b4ca.execute(Unknown Source)
    at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
    at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:480)
    at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:406)
    at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
    at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:182)
    at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:119)
    at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:94)
    at org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:210)
    at org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1$1.run(LocalConsoleManager.java:109)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57)
    at org.apache.karaf.shell.console.impl.jline.LocalConsoleManager$2$1.run(LocalConsoleManager.java:102)
Caused by: java.lang.IllegalArgumentException: Failed to load class
'com.hello.world.JsonDataBlob$Access4JacksonDeserializerb9aaf44d':
com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
    at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:100)
    at com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:171)
    at com.fasterxml.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:97)
    at com.fasterxml.jackson.module.afterburner.ser.SerializerModifier.changeProperties(SerializerModifier.java:63)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:401)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:271)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:223)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:157)
    at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1215)
    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1167)
    ... 33 more
Caused by: java.lang.ClassNotFoundException:
com.fasterxml.jackson.module.afterburner.ser.BeanPropertyAccessor
    at java.lang.ClassLoader.findClass(ClassLoader.java:530)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
    at com.fasterxml.jackson.module.afterburner.util.MyClassLoader.loadAndResolve(MyClassLoader.java:94)
    ... 42 more


On Sun, May 8, 2016 at 1:10 AM, Jean-Baptiste Onofré <jb...@nanthrax.net>
wrote:

> Can you check with bundle:headers if it's correctly wired ?
>
> Regards
> JB
>
> On 05/07/2016 07:14 PM, Debraj Manna wrote:
>
>> Below is the generated MANIFEST:-
>>
>> Manifest-Version: 1.0
>> Bnd-LastModified: 1462615570323
>> Build-Jdk: 1.8.0_77
>> Built-By: debraj
>> Bundle-Activator: com.hello.world.HelloWorldActivator
>> Bundle-ManifestVersion: 2
>> Bundle-Name: Hello World
>> Bundle-SymbolicName: world
>> Bundle-Version: 0.0.1
>> Created-By: Apache Maven Bundle Plugin
>> Export-Package: com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>>   i.framework";version="0.0.1"
>> Import-Package: com.fasterxml.jackson.databind;resolution:=optional;vers
>>   ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>>   onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>>   "[1.6,2)"
>> Tool: Bnd-2.1.0.20130426-122213
>>
>>
>> I have installed afterburner  then only I installed my Hello World bundle.
>>
>>
>>
>>
>> On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré <jb@nanthrax.net
>> <ma...@nanthrax.net>> wrote:
>>
>>     Hi,
>>
>>     1. Can you check that the generated MANIFEST contains the
>>     afterburner import ?
>>     2. If you install afterburner bundle after your bundle, you have to
>>     refresh your bundle as it's an optional import
>>
>>     Regards
>>     JB
>>
>>
>>     On 05/07/2016 05:27 PM, Debraj Manna wrote:
>>
>>         Hi,
>>
>>         I have a simple Hello World type Karaf Bundle. The activator
>>         code looks
>>         like below:-
>>
>>         |public class HelloWorldActivator implements BundleActivator {
>>         @Override
>>         public void start(BundleContext bundleContext) throws Exception {
>>         System.out.println("STARTING DEMO: hello, world\n");
>>         System.out.println(getJsonDataAsString()); } @Override public void
>>         stop(BundleContext bundleContext) throws Exception {
>>         System.out.println("STOPPING DEMO"); } private String
>>         getJsonDataAsString() { JsonDataBlob jsonDataBlob = new
>>         JsonDataBlob();
>>         ObjectMapper objectMapper = new ObjectMapper();
>>         objectMapper.registerModule(new AfterburnerModule()); try { return
>>         objectMapper.writeValueAsString(jsonDataBlob); } catch(Exception
>>         e) {
>>         e.printStackTrace(); } return ""; } } |
>>
>>         |pom.xml| looks like below:-
>>
>>         |<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">
>>         <modelVersion>4.0.0</modelVersion> <groupId>com.hello</groupId>
>>         <artifactId>world</artifactId> <version>0.0.1</version>
>>         <packaging>bundle</packaging> <name>Hello World</name>
>>         <dependencies>
>>         <!-- OSGi --> <dependency> <groupId>org.osgi</groupId>
>>         <artifactId>org.osgi.core</artifactId> <version>4.3.1</version>
>>         </dependency> <dependency> <groupId>org.osgi</groupId>
>>         <artifactId>org.osgi.compendium</artifactId>
>>         <version>4.3.1</version>
>>         </dependency> <dependency> <groupId>org.json</groupId>
>>         <artifactId>json</artifactId> <version>20160212</version>
>>         </dependency>
>>         <dependency> <groupId>com.fasterxml.jackson.core</groupId>
>>         <artifactId>jackson-core</artifactId> <version>2.6.2</version>
>>         </dependency> <dependency>
>>         <groupId>com.fasterxml.jackson.core</groupId>
>>         <artifactId>jackson-annotations</artifactId>
>>         <version>2.6.2</version>
>>         </dependency> <dependency>
>>         <groupId>com.fasterxml.jackson.core</groupId>
>>         <artifactId>jackson-databind</artifactId> <version>2.6.2</version>
>>         </dependency> <dependency>
>>         <groupId>com.fasterxml.jackson.module</groupId>
>>         <artifactId>jackson-module-afterburner</artifactId>
>>         <version>2.7.1</version> </dependency> </dependencies> <build>
>>         <sourceDirectory>src</sourceDirectory> <plugins> <plugin>
>>         <artifactId>maven-compiler-plugin</artifactId>
>>         <version>3.3</version>
>>         <configuration> <source>1.8</source> <target>1.8</target>
>> <excludes>
>>         <exclude>**/com/hello/main/*</exclude> </excludes>
>> </configuration>
>>         </plugin> <plugin> <groupId>org.apache.felix</groupId>
>>         <artifactId>maven-bundle-plugin</artifactId>
>>         <version>2.4.0</version>
>>         <inherited>true</inherited> <extensions>true</extensions>
>>         <configuration> <instructions>
>>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>>         <Bundle-Version>${project.version}</Bundle-Version>
>>
>> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>>         <Import-Package>*;resolution:=optional</Import-Package>
>>         </instructions>
>>         </configuration> </plugin> </plugins> </build> </project> |
>>
>>         The java object which I am trying to convert to json is a simple
>>         object
>>         as shown below:-
>>
>>         |package com.hello.world; public class JsonDataBlob { private
>>         String add1
>>         = "JP Naagar"; private String add2 = ""; private int
>>         shippartagent = 1;
>>         public String getAdd1() { return add1; } public void
>> setAdd1(String
>>         add1) { this.add1 = add1; } public String getAdd2() { return
>> add2; }
>>         public void setAdd2(String add2) { this.add2 = add2; } public int
>>         getShippartagent() { return shippartagent; } public void
>>         setShippartagent(int shippartagent) { this.shippartagent =
>>         shippartagent; } } |
>>
>>         Whenever I am trying to install the bundle I am getting the below
>>         exception:-
>>
>>         |2016-05-07 15:36:48,986 | WARN | x-6.1-2.0/deploy | fileinstall
>>         | 7 -
>>         org.apache.felix.fileinstall - 3.5.0 | Error while starting
>> bundle:
>>
>> file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>>         org.osgi.framework.BundleException: Activator start error in
>> bundle
>>         world [239]. at
>>
>> org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>>         at
>>
>> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>>         at
>>
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>>         at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>>         at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>>         at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>>         at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>>         at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>>         Caused by: java.lang.NoClassDefFoundError:
>>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>>         java.lang.Class.getDeclaredConstructors0(Native
>>         Method)[:1.8.0_77] at
>>
>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>>         at java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>>         java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>>
>> org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>>         at
>>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
>> ...
>>         7 more Caused by: java.lang.ClassNotFoundException:
>>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>>         found by
>>         world [239] at
>>
>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>>         at
>>
>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>>         at
>>
>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>>         at
>>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77]
>> ...
>>         13 more |
>>
>>         All the required Jackson bundles are installed in Karaf:-
>>
>>         |karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2
>> |
>>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 238 |
>>         Installed | 80 | 2.7.1 | Jackson-module-Afterburner
>>         karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
>>         jackson-databind |
>>
>>         Everything works fine if I just comment out the below line:-
>>
>>         |objectMapper.registerModule(new AfterburnerModule()); |
>>
>>         I have placed the required code in github
>>         <https://github.com/debraj-manna/afterburner-issue>
>>
>>         Has anyone able to execute the Jackson's Afterburner module in
>>         Karaf 3.0.5?
>>
>>         Thanks,
>>
>>         Debraj
>>
>>
>>     --
>>     Jean-Baptiste Onofré
>>     jbonofre@apache.org <ma...@apache.org>
>>     http://blog.nanthrax.net
>>     Talend - http://www.talend.com
>>
>>
>>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Can you check with bundle:headers if it's correctly wired ?

Regards
JB

On 05/07/2016 07:14 PM, Debraj Manna wrote:
> Below is the generated MANIFEST:-
>
> Manifest-Version: 1.0
> Bnd-LastModified: 1462615570323
> Build-Jdk: 1.8.0_77
> Built-By: debraj
> Bundle-Activator: com.hello.world.HelloWorldActivator
> Bundle-ManifestVersion: 2
> Bundle-Name: Hello World
> Bundle-SymbolicName: world
> Bundle-Version: 0.0.1
> Created-By: Apache Maven Bundle Plugin
> Export-Package: com.hello;version="0.0.1",com.hello.world;uses:="org.osg
>   i.framework";version="0.0.1"
> Import-Package: com.fasterxml.jackson.databind;resolution:=optional;vers
>   ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
>   onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
>   "[1.6,2)"
> Tool: Bnd-2.1.0.20130426-122213
>
>
> I have installed afterburner  then only I installed my Hello World bundle.
>
>
>
>
> On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofr� <jb@nanthrax.net
> <ma...@nanthrax.net>> wrote:
>
>     Hi,
>
>     1. Can you check that the generated MANIFEST contains the
>     afterburner import ?
>     2. If you install afterburner bundle after your bundle, you have to
>     refresh your bundle as it's an optional import
>
>     Regards
>     JB
>
>
>     On 05/07/2016 05:27 PM, Debraj Manna wrote:
>
>         Hi,
>
>         I have a simple Hello World type Karaf Bundle. The activator
>         code looks
>         like below:-
>
>         |public class HelloWorldActivator implements BundleActivator {
>         @Override
>         public void start(BundleContext bundleContext) throws Exception {
>         System.out.println("STARTING DEMO: hello, world\n");
>         System.out.println(getJsonDataAsString()); } @Override public void
>         stop(BundleContext bundleContext) throws Exception {
>         System.out.println("STOPPING DEMO"); } private String
>         getJsonDataAsString() { JsonDataBlob jsonDataBlob = new
>         JsonDataBlob();
>         ObjectMapper objectMapper = new ObjectMapper();
>         objectMapper.registerModule(new AfterburnerModule()); try { return
>         objectMapper.writeValueAsString(jsonDataBlob); } catch(Exception
>         e) {
>         e.printStackTrace(); } return ""; } } |
>
>         |pom.xml| looks like below:-
>
>         |<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">
>         <modelVersion>4.0.0</modelVersion> <groupId>com.hello</groupId>
>         <artifactId>world</artifactId> <version>0.0.1</version>
>         <packaging>bundle</packaging> <name>Hello World</name>
>         <dependencies>
>         <!-- OSGi --> <dependency> <groupId>org.osgi</groupId>
>         <artifactId>org.osgi.core</artifactId> <version>4.3.1</version>
>         </dependency> <dependency> <groupId>org.osgi</groupId>
>         <artifactId>org.osgi.compendium</artifactId>
>         <version>4.3.1</version>
>         </dependency> <dependency> <groupId>org.json</groupId>
>         <artifactId>json</artifactId> <version>20160212</version>
>         </dependency>
>         <dependency> <groupId>com.fasterxml.jackson.core</groupId>
>         <artifactId>jackson-core</artifactId> <version>2.6.2</version>
>         </dependency> <dependency>
>         <groupId>com.fasterxml.jackson.core</groupId>
>         <artifactId>jackson-annotations</artifactId>
>         <version>2.6.2</version>
>         </dependency> <dependency>
>         <groupId>com.fasterxml.jackson.core</groupId>
>         <artifactId>jackson-databind</artifactId> <version>2.6.2</version>
>         </dependency> <dependency>
>         <groupId>com.fasterxml.jackson.module</groupId>
>         <artifactId>jackson-module-afterburner</artifactId>
>         <version>2.7.1</version> </dependency> </dependencies> <build>
>         <sourceDirectory>src</sourceDirectory> <plugins> <plugin>
>         <artifactId>maven-compiler-plugin</artifactId>
>         <version>3.3</version>
>         <configuration> <source>1.8</source> <target>1.8</target> <excludes>
>         <exclude>**/com/hello/main/*</exclude> </excludes> </configuration>
>         </plugin> <plugin> <groupId>org.apache.felix</groupId>
>         <artifactId>maven-bundle-plugin</artifactId>
>         <version>2.4.0</version>
>         <inherited>true</inherited> <extensions>true</extensions>
>         <configuration> <instructions>
>         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>         <Bundle-Version>${project.version}</Bundle-Version>
>         <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>         <Import-Package>*;resolution:=optional</Import-Package>
>         </instructions>
>         </configuration> </plugin> </plugins> </build> </project> |
>
>         The java object which I am trying to convert to json is a simple
>         object
>         as shown below:-
>
>         |package com.hello.world; public class JsonDataBlob { private
>         String add1
>         = "JP Naagar"; private String add2 = ""; private int
>         shippartagent = 1;
>         public String getAdd1() { return add1; } public void setAdd1(String
>         add1) { this.add1 = add1; } public String getAdd2() { return add2; }
>         public void setAdd2(String add2) { this.add2 = add2; } public int
>         getShippartagent() { return shippartagent; } public void
>         setShippartagent(int shippartagent) { this.shippartagent =
>         shippartagent; } } |
>
>         Whenever I am trying to install the bundle I am getting the below
>         exception:-
>
>         |2016-05-07 15:36:48,986 | WARN | x-6.1-2.0/deploy | fileinstall
>         | 7 -
>         org.apache.felix.fileinstall - 3.5.0 | Error while starting bundle:
>         file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>         org.osgi.framework.BundleException: Activator start error in bundle
>         world [239]. at
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>         at
>         org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>         at
>         org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>         at
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>         at
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>         at
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>         at
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>         at
>         org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>         Caused by: java.lang.NoClassDefFoundError:
>         com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>         java.lang.Class.getDeclaredConstructors0(Native
>         Method)[:1.8.0_77] at
>         java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>         at java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>         java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>         org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>         at
>         org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ...
>         7 more Caused by: java.lang.ClassNotFoundException:
>         com.fasterxml.jackson.module.afterburner.AfterburnerModule not
>         found by
>         world [239] at
>         org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>         at
>         org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>         at
>         org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>         at
>         java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ...
>         13 more |
>
>         All the required Jackson bundles are installed in Karaf:-
>
>         |karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
>         Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 238 |
>         Installed | 80 | 2.7.1 | Jackson-module-Afterburner
>         karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
>         jackson-databind |
>
>         Everything works fine if I just comment out the below line:-
>
>         |objectMapper.registerModule(new AfterburnerModule()); |
>
>         I have placed the required code in github
>         <https://github.com/debraj-manna/afterburner-issue>
>
>         Has anyone able to execute the Jackson's Afterburner module in
>         Karaf 3.0.5?
>
>         Thanks,
>
>         Debraj
>
>
>     --
>     Jean-Baptiste Onofr�
>     jbonofre@apache.org <ma...@apache.org>
>     http://blog.nanthrax.net
>     Talend - http://www.talend.com
>
>

-- 
Jean-Baptiste Onofr�
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Debraj Manna <su...@gmail.com>.
Below is the generated MANIFEST:-

Manifest-Version: 1.0
Bnd-LastModified: 1462615570323
Build-Jdk: 1.8.0_77
Built-By: debraj
Bundle-Activator: com.hello.world.HelloWorldActivator
Bundle-ManifestVersion: 2
Bundle-Name: Hello World
Bundle-SymbolicName: world
Bundle-Version: 0.0.1
Created-By: Apache Maven Bundle Plugin
Export-Package: com.hello;version="0.0.1",com.hello.world;uses:="org.osg
 i.framework";version="0.0.1"
Import-Package: com.fasterxml.jackson.databind;resolution:=optional;vers
 ion="[2.6,3)",com.fasterxml.jackson.module.afterburner;resolution:=opti
 onal;version="[2.7,3)",org.osgi.framework;resolution:=optional;version=
 "[1.6,2)"
Tool: Bnd-2.1.0.20130426-122213


I have installed afterburner  then only I installed my Hello World bundle.




On Sat, May 7, 2016 at 10:40 PM, Jean-Baptiste Onofré <jb...@nanthrax.net>
wrote:

> Hi,
>
> 1. Can you check that the generated MANIFEST contains the afterburner
> import ?
> 2. If you install afterburner bundle after your bundle, you have to
> refresh your bundle as it's an optional import
>
> Regards
> JB
>
>
> On 05/07/2016 05:27 PM, Debraj Manna wrote:
>
>> Hi,
>>
>> I have a simple Hello World type Karaf Bundle. The activator code looks
>> like below:-
>>
>> |public class HelloWorldActivator implements BundleActivator { @Override
>> public void start(BundleContext bundleContext) throws Exception {
>> System.out.println("STARTING DEMO: hello, world\n");
>> System.out.println(getJsonDataAsString()); } @Override public void
>> stop(BundleContext bundleContext) throws Exception {
>> System.out.println("STOPPING DEMO"); } private String
>> getJsonDataAsString() { JsonDataBlob jsonDataBlob = new JsonDataBlob();
>> ObjectMapper objectMapper = new ObjectMapper();
>> objectMapper.registerModule(new AfterburnerModule()); try { return
>> objectMapper.writeValueAsString(jsonDataBlob); } catch(Exception e) {
>> e.printStackTrace(); } return ""; } } |
>>
>> |pom.xml| looks like below:-
>>
>> |<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">
>> <modelVersion>4.0.0</modelVersion> <groupId>com.hello</groupId>
>> <artifactId>world</artifactId> <version>0.0.1</version>
>> <packaging>bundle</packaging> <name>Hello World</name> <dependencies>
>> <!-- OSGi --> <dependency> <groupId>org.osgi</groupId>
>> <artifactId>org.osgi.core</artifactId> <version>4.3.1</version>
>> </dependency> <dependency> <groupId>org.osgi</groupId>
>> <artifactId>org.osgi.compendium</artifactId> <version>4.3.1</version>
>> </dependency> <dependency> <groupId>org.json</groupId>
>> <artifactId>json</artifactId> <version>20160212</version> </dependency>
>> <dependency> <groupId>com.fasterxml.jackson.core</groupId>
>> <artifactId>jackson-core</artifactId> <version>2.6.2</version>
>> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId>
>> <artifactId>jackson-annotations</artifactId> <version>2.6.2</version>
>> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId>
>> <artifactId>jackson-databind</artifactId> <version>2.6.2</version>
>> </dependency> <dependency>
>> <groupId>com.fasterxml.jackson.module</groupId>
>> <artifactId>jackson-module-afterburner</artifactId>
>> <version>2.7.1</version> </dependency> </dependencies> <build>
>> <sourceDirectory>src</sourceDirectory> <plugins> <plugin>
>> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version>
>> <configuration> <source>1.8</source> <target>1.8</target> <excludes>
>> <exclude>**/com/hello/main/*</exclude> </excludes> </configuration>
>> </plugin> <plugin> <groupId>org.apache.felix</groupId>
>> <artifactId>maven-bundle-plugin</artifactId> <version>2.4.0</version>
>> <inherited>true</inherited> <extensions>true</extensions>
>> <configuration> <instructions>
>> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>> <Bundle-Version>${project.version}</Bundle-Version>
>> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
>> <Import-Package>*;resolution:=optional</Import-Package> </instructions>
>> </configuration> </plugin> </plugins> </build> </project> |
>>
>> The java object which I am trying to convert to json is a simple object
>> as shown below:-
>>
>> |package com.hello.world; public class JsonDataBlob { private String add1
>> = "JP Naagar"; private String add2 = ""; private int shippartagent = 1;
>> public String getAdd1() { return add1; } public void setAdd1(String
>> add1) { this.add1 = add1; } public String getAdd2() { return add2; }
>> public void setAdd2(String add2) { this.add2 = add2; } public int
>> getShippartagent() { return shippartagent; } public void
>> setShippartagent(int shippartagent) { this.shippartagent =
>> shippartagent; } } |
>>
>> Whenever I am trying to install the bundle I am getting the below
>> exception:-
>>
>> |2016-05-07 15:36:48,986 | WARN | x-6.1-2.0/deploy | fileinstall | 7 -
>> org.apache.felix.fileinstall - 3.5.0 | Error while starting bundle:
>>
>> file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
>> org.osgi.framework.BundleException: Activator start error in bundle
>> world [239]. at
>>
>> org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
>> at
>>
>> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
>> at
>>
>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
>> at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
>> at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
>> at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
>> at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
>> at
>>
>> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
>> Caused by: java.lang.NoClassDefFoundError:
>> com/fasterxml/jackson/module/afterburner/AfterburnerModule at
>> java.lang.Class.getDeclaredConstructors0(Native Method)[:1.8.0_77] at
>> java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
>> at java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
>> java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
>> org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
>> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ...
>> 7 more Caused by: java.lang.ClassNotFoundException:
>> com.fasterxml.jackson.module.afterburner.AfterburnerModule not found by
>> world [239] at
>>
>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
>> at
>>
>> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
>> at
>>
>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ...
>> 13 more |
>>
>> All the required Jackson bundles are installed in Karaf:-
>>
>> |karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
>> Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 238 |
>> Installed | 80 | 2.7.1 | Jackson-module-Afterburner
>> karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
>> jackson-databind |
>>
>> Everything works fine if I just comment out the below line:-
>>
>> |objectMapper.registerModule(new AfterburnerModule()); |
>>
>> I have placed the required code in github
>> <https://github.com/debraj-manna/afterburner-issue>
>>
>> Has anyone able to execute the Jackson's Afterburner module in Karaf
>> 3.0.5?
>>
>> Thanks,
>>
>> Debraj
>>
>>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: Jackson Module Afterburner not working in Karaf 3.0.5

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi,

1. Can you check that the generated MANIFEST contains the afterburner 
import ?
2. If you install afterburner bundle after your bundle, you have to 
refresh your bundle as it's an optional import

Regards
JB

On 05/07/2016 05:27 PM, Debraj Manna wrote:
> Hi,
>
> I have a simple Hello World type Karaf Bundle. The activator code looks
> like below:-
>
> |public class HelloWorldActivator implements BundleActivator { @Override
> public void start(BundleContext bundleContext) throws Exception {
> System.out.println("STARTING DEMO: hello, world\n");
> System.out.println(getJsonDataAsString()); } @Override public void
> stop(BundleContext bundleContext) throws Exception {
> System.out.println("STOPPING DEMO"); } private String
> getJsonDataAsString() { JsonDataBlob jsonDataBlob = new JsonDataBlob();
> ObjectMapper objectMapper = new ObjectMapper();
> objectMapper.registerModule(new AfterburnerModule()); try { return
> objectMapper.writeValueAsString(jsonDataBlob); } catch(Exception e) {
> e.printStackTrace(); } return ""; } } |
>
> |pom.xml| looks like below:-
>
> |<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">
> <modelVersion>4.0.0</modelVersion> <groupId>com.hello</groupId>
> <artifactId>world</artifactId> <version>0.0.1</version>
> <packaging>bundle</packaging> <name>Hello World</name> <dependencies>
> <!-- OSGi --> <dependency> <groupId>org.osgi</groupId>
> <artifactId>org.osgi.core</artifactId> <version>4.3.1</version>
> </dependency> <dependency> <groupId>org.osgi</groupId>
> <artifactId>org.osgi.compendium</artifactId> <version>4.3.1</version>
> </dependency> <dependency> <groupId>org.json</groupId>
> <artifactId>json</artifactId> <version>20160212</version> </dependency>
> <dependency> <groupId>com.fasterxml.jackson.core</groupId>
> <artifactId>jackson-core</artifactId> <version>2.6.2</version>
> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId>
> <artifactId>jackson-annotations</artifactId> <version>2.6.2</version>
> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId>
> <artifactId>jackson-databind</artifactId> <version>2.6.2</version>
> </dependency> <dependency>
> <groupId>com.fasterxml.jackson.module</groupId>
> <artifactId>jackson-module-afterburner</artifactId>
> <version>2.7.1</version> </dependency> </dependencies> <build>
> <sourceDirectory>src</sourceDirectory> <plugins> <plugin>
> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version>
> <configuration> <source>1.8</source> <target>1.8</target> <excludes>
> <exclude>**/com/hello/main/*</exclude> </excludes> </configuration>
> </plugin> <plugin> <groupId>org.apache.felix</groupId>
> <artifactId>maven-bundle-plugin</artifactId> <version>2.4.0</version>
> <inherited>true</inherited> <extensions>true</extensions>
> <configuration> <instructions>
> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
> <Bundle-Version>${project.version}</Bundle-Version>
> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator>
> <Import-Package>*;resolution:=optional</Import-Package> </instructions>
> </configuration> </plugin> </plugins> </build> </project> |
>
> The java object which I am trying to convert to json is a simple object
> as shown below:-
>
> |package com.hello.world; public class JsonDataBlob { private String add1
> = "JP Naagar"; private String add2 = ""; private int shippartagent = 1;
> public String getAdd1() { return add1; } public void setAdd1(String
> add1) { this.add1 = add1; } public String getAdd2() { return add2; }
> public void setAdd2(String add2) { this.add2 = add2; } public int
> getShippartagent() { return shippartagent; } public void
> setShippartagent(int shippartagent) { this.shippartagent =
> shippartagent; } } |
>
> Whenever I am trying to install the bundle I am getting the below
> exception:-
>
> |2016-05-07 15:36:48,986 | WARN | x-6.1-2.0/deploy | fileinstall | 7 -
> org.apache.felix.fileinstall - 3.5.0 | Error while starting bundle:
> file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar
> org.osgi.framework.BundleException: Activator start error in bundle
> world [239]. at
> org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:]
> at
> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:]
> at
> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
> at
> org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]
> Caused by: java.lang.NoClassDefFoundError:
> com/fasterxml/jackson/module/afterburner/AfterburnerModule at
> java.lang.Class.getDeclaredConstructors0(Native Method)[:1.8.0_77] at
> java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77]
> at java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at
> java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at
> org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ...
> 7 more Caused by: java.lang.ClassNotFoundException:
> com.fasterxml.jackson.module.afterburner.AfterburnerModule not found by
> world [239] at
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:]
> at
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:]
> at
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ...
> 13 more |
>
> All the required Jackson bundles are installed in Karaf:-
>
> |karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 |
> Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 238 |
> Installed | 80 | 2.7.1 | Jackson-module-Afterburner
> karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 |
> jackson-databind |
>
> Everything works fine if I just comment out the below line:-
>
> |objectMapper.registerModule(new AfterburnerModule()); |
>
> I have placed the required code in github
> <https://github.com/debraj-manna/afterburner-issue>
>
> Has anyone able to execute the Jackson's Afterburner module in Karaf 3.0.5?
>
> Thanks,
>
> Debraj
>

-- 
Jean-Baptiste Onofr�
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com