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&amp;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
> 

Reply via email to