Hi Christian, you mean the code used in the Camel route? It is an blueprint:
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint-2.24.2.xsd"> <camelContext id="PLC-IoTDB" xmlns="http://camel.apache.org/schema/blueprint" streamCache="true" > <route id="plc-route" > <from uri="timer://plcFetch?fixedRate=true&period=1000"/> <pollEnrich> <simple>plc4x:s7:tcp://192.168.178.10?address=#fields</simple> </pollEnrich> <log message="${body}"/> <to uri="mock:test?retainLast=10"/> </route> </camelContext> <bean id="fields" class="java.util.ArrayList"> <argument> <list> <bean class="org.apache.plc4x.camel.TagData"> <argument index="0" value="IntTest"/> <argument index="1" value="%DB1.DBW254:INT"/> </bean> <bean class="org.apache.plc4x.camel.TagData"> <argument index="0" value="StringTest"/> <argument index="1" value="%DB1.DBX0:STRING"/> </bean> </list> </argument> </bean> </blueprint> This code used to wrok actually, I just wanted to test the new TagData of the integration. This is the bundling in the pom, these imports had to be there before too <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>4.2.1</version> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> <Bundle-Version>${project.version}</Bundle-Version> <Export-Package> *;version=${project.version} </Export-Package> <Import-Package> org.apache.plc4x.java.spi.transport, org.apache.plc4x.java.s7.readwrite, * </Import-Package> </instructions> </configuration> </plugin> Etienne On 2020/04/03 08:17:45, Christian Schneider <ch...@die-schneider.net> wrote: > The code in plc4x directly uses the class (not a String of the name). This > is good. Normally such a class reference should work fine. > > Can you show your code as a complete example? > > Christian > > > Am Fr., 3. Apr. 2020 um 09:58 Uhr schrieb Julian Feinauer < > j.feina...@pragmaticminds.de>: > > > I am off with my knowledge. > > You could ask the Karaf friends (#karaf in Slack). They are all OSGi > > experts and very friendly and helpful. > > Or perhaps Christian has an idea here? > > > > Best > > Julian > > > > Am 03.04.20, 09:50 schrieb "Etienne Robinet" <erobi...@apache.org>: > > > > Hi again, > > I've been struggling with this issue for 2 days now... I still don't > > get it why it can not find classes. here is the current problem: > > https://i.imgur.com/LtZMdsu.png > > > > We can see that the classes are available and exported, I don't know > > why the Camel Context can't find it. I even tried to add an Activator to my > > bundle, and load these classes there and it works! But not in the > > blueprint. If anyone had any idea on where the problem is... > > > > Etienne > > > > On 2020/04/01 01:31:15, Niclas Hedhman <nic...@hedhman.org> wrote: > > > It happens that OSGi classloading result in the wrong NCDFE and that > > one of > > > the classes "used" (i.e. return type, parameter, throws, extends, > > > implements) in the reported class is not visible by the classloader. > > And > > > occasionally, it is a "diamond problem", i.e. that the Constraints > > (IIRC, > > > see chapter 3.8 in OSGi spec) can't be satisfied. > > > > > > Sorry that I don't have time to dig into the actual situation here, > > but I > > > thought I could share some of my past (dark) history.... ;-) > > > > > > Cheers > > > Niclas > > > > > > On Wed, Apr 1, 2020 at 12:43 AM Christofer Dutz < > > christofer.d...@c-ware.de> > > > wrote: > > > > > > > Hi all, > > > > > > > > But If I search for uses of that class, it's only in the > > > > org.apache.plc4x.java.spi.connection.NettyChannelFactory which is > > in the > > > > SPI module. > > > > > > > > So I am not sure where this is accessed directly from the outside. > > I know > > > > every driver would use the NettyChannelFactory, but that shouldn't > > be an > > > > OSGi type problem as the SPI classes should be able to access > > their own > > > > classes. > > > > > > > > Chris > > > > > > > > > > > > > > > > Am 31.03.20, 16:07 schrieb "Etienne Robinet" <43...@etu.he2b.be>: > > > > > > > > Hi, > > > > From the log the class is called outside the SPI by the > > transport > > > > > > > > Etienne > > > > > > > > > Le 31 mars 2020 à 15:24, Julian Feinauer < > > > > j.feina...@pragmaticminds.de> a écrit : > > > > > > > > > > Hi, > > > > > > > > > > yes, if ist only needed internally its fine.But why does > > someone > > > > then get a Class Not Found Exception? > > > > > This is usually a hint to some class loader issue in OSGi > > which is > > > > related to exports/ imports. > > > > > > > > > > J > > > > > > > > > > Am 31.03.20, 15:23 schrieb "Christofer Dutz" < > > > > christofer.d...@c-ware.de>: > > > > > > > > > > As this package is only referenced from within SPI, > > couldn't we > > > > just exclude it from the package exports? > > > > > > > > > > Chris > > > > > > > > > > Am 31.03.20, 15:17 schrieb "Julian Feinauer" < > > > > j.feina...@pragmaticminds.de>: > > > > > > > > > > Hi, > > > > > > > > > > the issue is that if we export it, then we break > > Nettys OSGi > > > > integration as we get a split package situation (two bundles > > exporting the > > > > same package, which is forbidden in OSGi). > > > > > > > > > > So I see no easy solution (but had to do the same > > once as > > > > Netty is pretty... private). > > > > > > > > > > J > > > > > > > > > > Am 31.03.20, 15:15 schrieb "Christofer Dutz" < > > > > christofer.d...@c-ware.de>: > > > > > > > > > > Hi all, > > > > > > > > > > I just discussed this issue with Etienne and I > > thought it > > > > was important for all, so I asked him to bring it here. > > > > > > > > > > In my effort to get the EmbeddedChannel working > > as a full > > > > "transport" module, I had to override the Netty Bootstrap > > mechanism. > > > > > Unfortunately in order to do so, I need to call > > "init" > > > > from the derived class. Unfortunately this is package private in > > Netty so I > > > > had > > > > > To add it to the same package. > > > > > > > > > > Would it help to just not export these packages > > to OSGi? > > > > > > > > > > But I'm also open for alternatives (Please none > > involving > > > > mega-evil reflection hackery). > > > > > > > > > > > > > > > Chris > > > > > > > > > > Am 31.03.20, 15:10 schrieb "Etienne Robinet" < > > > > erobi...@apache.org>: > > > > > > > > > > Hi all, > > > > > I've been working on the Camel Component and > > decided > > > > to test it inside Karaf, but I noticed that I've got this error > > now: > > > > > https://i.imgur.com/kUZPwZ5.png > > > > > > > > > > Seems like this class is not exported by the > > bundle > > > > so it can not be found. Anyone has an idea on how we could solve > > this? > > > > > > > > > > Etienne > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > -- > Christian Schneider > http://www.liquid-reality.de > > Computer Scientist > http://www.adobe.com >