Many thanks for your usefull suggestions. I like very much the possibility to
use maven dependences (as in jbi packaging)

BUT i doesn't work. can you do it starting from my zip sample?

I changed my pom.xml adding (initially only one and finally all your
suggestions)
                <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.0.8</version>
                </dependency>
                ...
                    <instructions>
                       
<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
                        <Bundle-ClassPath>
                            .,{maven-dependencies}
                        </Bundle-ClassPath>
                       
<Include-Resource>{maven-resources}</Include-Resource> 
                       
<Embed-Dependency>mysql-connector-java:scope=runtime|compile</Embed-Dependency> 
                        <Import-Package>
                            javax.jws,
                            javax.wsdl,
                            javax.xml.bind,
                            javax.xml.bind.annotation,
                                        javax.xml.namespace,
                                        javax.xml.ws,
                                        META-INF.cxf,
                            META-INF.cxf.osgi,
                            org.apache.cxf.bus,
                            org.apache.cxf.bus.spring,
                            org.apache.cxf.bus.resource,
                            org.apache.cxf.configuration.spring,
                            org.apache.cxf.resource,
                            org.apache.cxf.jaxws,
                            org.apache.servicemix.cxf.transport.http_osgi,
                            org.springframework.beans.factory.config,
                            org.springframework.jdbc.datasource,
                            com.mysql.jdbc, *

then
  mvn clean install

But I get
 | Deploying:
/usr/local/apache-servicemix-4.0.0/deploy/test-wsdl-first-osgi-1.0-SNAPSHOT.jar
10:39:46,788 | WARN  | Timer-1          | FileMonitor                      |
x.kernel.filemonitor.FileMonitor  552 | Failed to start bundle:
test-wsdl-first-osgi [305]. Reason: org.osgi.framework.BundleException:
Unresolved constraint in bundle 305: package; (package=com.mysql.jdbc)
org.osgi.framework.BundleException: Unresolved constraint in bundle 305:
package; (package=com.mysql.jdbc)
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3059)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1439)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:770)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:751)
        at
org.apache.servicemix.kernel.filemonitor.FileMonitor.refreshPackagesAndStartOrUpdateBundles(FileMonitor.java:549)
        at
org.apache.servicemix.kernel.filemonitor.FileMonitor.onFilesChanged(FileMonitor.java:299)
        at
org.apache.servicemix.kernel.filemonitor.FileMonitor$1.filesChanged(FileMonitor.java:151)
        at
org.apache.servicemix.kernel.filemonitor.Scanner.reportBulkChanges(Scanner.java:431)
        at
org.apache.servicemix.kernel.filemonitor.Scanner.reportDifferences(Scanner.java:327)
        at 
org.apache.servicemix.kernel.filemonitor.Scanner.scan(Scanner.java:261)
        at 
org.apache.servicemix.kernel.filemonitor.Scanner$1.run(Scanner.java:221)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)


my osgi/list

[ 259] [Active     ] [Started] [   60] Apache ServiceMix CXF Transport for
OSGi (4.0.0)
[ 272] [Active     ] [       ] [   60] mvn:mysql/mysql-connector-java/5.0.8
[ 305] [Installed  ] [       ] [   60] A CXF WSDL First OSGi Project
(1.0.0.SNAPSHOT)

what's wrong?

Jean-Baptiste Onofré wrote:
> 
> Hi Matteo,
> 
> In your case, you want more to add several dependencies into your OSGi 
> bundle.
> 
> Using the felix bnd maven plugin, you can use:
> - <Embed-Dependency/> notation. For example, you can use 
> <Embed-Dependency>mysql-connector:scope=runtime|compile</Embed-Dependency> 
> where mysql-connector is the artifactId.
> - for the <Bundle-Classpath/>, you can use directly the directory path 
> (for example <Bundle-Classpath>.,{maven-dependencies}</Bundle-Classpath>
> - you can use <Include-Resource/> notation too, like this 
> <Include-Resource>{maven-resources}</Include-Resource>
> 
> All is explained here: 
> http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html
> 
> Regards
> JB
> 
> Matteo Redaelli wrote:
>> Can "Bundle-Classpath" be used to add a folder where I can add the jars I
>> want to include?
>> Please can you show me how should I use it?
>> 
>> I tried with 
>>                         <Bundle-ClassPath>
>>                             .,/home/matteo/tmp/test-wsdl-first-osgi/lib,
>>                         </Bundle-ClassPath>
>> 
>> and in 
>>   /home/matteo/tmp/test-wsdl-first-osgi/lib
>> I have
>>   mysql-connector-java-5.0.8.jar
>> 
>> but I get
>> 
>> [WARNING] Warning building bundle
>> com.yourcompany:test-wsdl-first-osgi:bundle:1.0-SNAPSHOT : No sub JAR or
>> directory /home/matteo/tmp/test-wsdl-first-osgi/lib
>> [WARNING] Warning building bundle
>> com.yourcompany:test-wsdl-first-osgi:bundle:1.0-SNAPSHOT : Bundle uses
>> Require Bundle, this can generate false errors because then not enough
>> information is available without the required bundles
>> [ERROR] Error building bundle
>> com.yourcompany:test-wsdl-first-osgi:bundle:1.0-SNAPSHOT : Cannot find a
>> file or directory for Bundle-Classpath entry:
>> /home/matteo/tmp/test-wsdl-first-osgi/lib
>> 
>> Regards
>> Matteo
>> 
>> 
>> Jean-Baptiste Onofré wrote:
>>> Matteo,
>>>
>>> another solution is to add required dependencies into the OSGi bundle
>>> using:
>>> Bundle-Classpath:
>>> notation.
>>>
>>> Regards
>>> JB
>>>
>>> Freeman Fang wrote:
>>>> Hi Matteo,
>>>> Which smx4 version are you using?
>>>> I tried with both Apache Servicemix 4.0 release and FUSE ESB 4.1
>>>> release 
>>>> with
>>>> osgi/install wrap:mvn:mysql/mysql-connector-java/5.0.8
>>>> But bundle status is
>>>> [ 158] [Resolved   ] [       ] [   60] 
>>>> wrap_mvn_mysql_mysql-connector-java_5.0.8 (0)
>>>> which means it's not started, but from your mail, you mention your 
>>>> bundle can start like
>>>> [ 272] [Active ] [ ] [ 60] mvn:mysql/mysql-connector-java/5.0.8
>>>> I'm wondering how it could be.
>>>> You can use wrap your normal jar as osgi bundle, but you will have to 
>>>> have all dependent packages available as bundles in the container 
>>>> already, I don't think all mysql needed package already available as 
>>>> bundles.
>>>> Could you please tell me exactly your process?
>>>> Freeman
>>>>
>>>> Matteo Redaelli wrote:
>>>>> I use linux debian. In any case. here is my project in zip file
>>>>>
>>>>> http://www.nabble.com/file/p23827756/test-wsdl-first-osgi.zip
>>>>> test-wsdl-first-osgi.zip
>>>>> Regards
>>>>> Matteo
>>>>>
>>>>>
>>>>>
>>>>> Freeman Fang wrote:
>>>>>  
>>>>>> Hi,
>>>>>> Somehow I can't extract the test-wsdl-first-osgi.tgz you append on my 
>>>>>> linux box.
>>>>>> I guess you are using Mac, right? Would you please append your 
>>>>>> testcase as zip file?
>>>>>> Freeman
>>>>>>
>>>>>> Matteo Redaelli wrote:
>>>>>>    
>>>>>>> Ciao
>>>>>>>
>>>>>>> Thanks for you suggestions: I'll look deeply at the links you
>>>>>>> suggested
>>>>>>>
>>>>>>> But in any case I'd like to know howto create a service with
>>>>>>> servicemix-osgi-cxf-wsdl-first-archetype that can get/put data in a
>>>>>>> database.
>>>>>>>
>>>>>>> what is wrong/missing in my package/smx4?
>>>>>>>
>>>>>>> Thanks in advance
>>>>>>> Matteo
>>>>>>>
>>>>>>>
>>>>>>> Freeman Fang wrote:
>>>>>>>        
>>>>>>>> Hi,
>>>>>>>> If you want to port cxf-wsdl-first(bc + se) example to osgi bundle 
>>>>>>>> in smx4, then you shouldn't use 
>>>>>>>> servicemix-osgi-cxf-wsdl-first-archetype, since this archetype 
>>>>>>>> generate cxf endpoint deployed in smx4 using osgi http service 
>>>>>>>> transport directly, which means in this case there's no cxf bc + se 
>>>>>>>> get involved at all, it's a cxf endpoint deployed in smx4  which 
>>>>>>>> can talk directly to outside client.
>>>>>>>> To port smx3 cxf-wsdl-first example to osgi bundle in smx4, what 
>>>>>>>> you need do is change the JBI package style(SA+SU) to spring dm 
>>>>>>>> enabled osgi bundle package style, Gert already add a wiki[1] to 
>>>>>>>> demostrate how to do it with servicemix-bean endpoint, and I'm 
>>>>>>>> going to add an example for cxf-wsdl-frist using spring dm osgi 
>>>>>>>> bundle package very soon, [2] track this issue
>>>>>>>>
>>>>>>>> [1]http://cwiki.apache.org/confluence/display/SMX4/Creating+an+OSGi+bundle+for+deploying+JBI+endpoints
>>>>>>>>  
>>>>>>>>
>>>>>>>> [2]https://issues.apache.org/activemq/browse/SMX4-292
>>>>>>>>
>>>>>>>> Freeman
>>>>>>>>
>>>>>>>> Matteo Redaelli wrote
>>>>>>>>            
>>>>>>>>> Hello
>>>>>>>>>
>>>>>>>>> In smx4 I'm tring to convert the JBI example cxf-wsdl-first-jdbc
>>>>>>>>> (http://matteoredaelli.wordpress.com/2009/05/30/connecting-to-a-database-with-a-webservice-cxf-deployed-jbi-in-servicemix/)
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>> with a similar OSGI project.
>>>>>>>>>
>>>>>>>>> I created a project using
>>>>>>>>>
>>>>>>>>>  mvn archetype:create \
>>>>>>>>>     -DarchetypeGroupId=org.apache.servicemix.tooling \
>>>>>>>>>     -DarchetypeArtifactId=servicemix-osgi-cxf-wsdl-first-archetype 
>>>>>>>>> \
>>>>>>>>>     -DarchetypeVersion=2008.01-SNAPSHOT \
>>>>>>>>>     -DgroupId=com.yourcompany \
>>>>>>>>>     -DartifactId=test-wsdl-first-osgi \
>>>>>>>>>     -Dversion=1.0-SNAPSHOT \
>>>>>>>>>
>>>>>>>>> -DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository/
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Than I added osgi wraps for spring-jdnc and mysql with
>>>>>>>>>
>>>>>>>>> osgi/install  wrap mvn:org.springframework/spring-jdbc/2.5.6
>>>>>>>>> osgi/install  wrap mvn:mysql/mysql-connector-java/5.0.8
>>>>>>>>>
>>>>>>>>> [ 181] [Active     ] [       ] [   60] Spring JDBC (2.5.6)
>>>>>>>>> [ 272] [Active     ] [       ] [   60]
>>>>>>>>> mvn:mysql/mysql-connector-java/5.0.8
>>>>>>>>>
>>>>>>>>> MY changes in pom.xml are:
>>>>>>>>>
>>>>>>>>>         <dependency>
>>>>>>>>>             <groupId>mysql</groupId>
>>>>>>>>>             <artifactId>mysql-connector-java</artifactId>
>>>>>>>>>             <version>5.0.8</version>
>>>>>>>>>         </dependency>
>>>>>>>>>         <dependency>
>>>>>>>>>             <groupId>org.springframework</groupId>
>>>>>>>>>             <artifactId>spring-jdbc</artifactId>
>>>>>>>>>             <version>2.5.6</version>
>>>>>>>>>         </dependency>
>>>>>>>>>                 ...
>>>>>>>>>                  <Import-Package>
>>>>>>>>>                             ...
>>>>>>>>>                             org.springframework.jdbc.datasource,
>>>>>>>>>                             com.mysql.jdbc, *
>>>>>>>>>                   </Import-Package>
>>>>>>>>>                   ...
>>>>>>>>>                   <DynamicImport-Package>*</DynamicImport-Package>
>>>>>>>>>
>>>>>>>>> MY beans.xml
>>>>>>>>>          ...
>>>>>>>>>          <bean id="moodleDB"                
>>>>>>>>> class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
>>>>>>>>>                 <property name="driverClassName"
>>>>>>>>> value="com.mysql.jdbc.Driver" />                 <property 
>>>>>>>>> name="url"                         
>>>>>>>>> value="jdbc:mysql://localhost:3306/moodle" />                 
>>>>>>>>> <property name="username" value="root" />                 
>>>>>>>>> <property name="password" value="" />         </bean>         ...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Questions:
>>>>>>>>>
>>>>>>>>> 1) how can load properly mysql jar in smx?
>>>>>>>>>
>>>>>>>>> I have the error
>>>>>>>>>
>>>>>>>>> s...@root:/> osgi/start 292
>>>>>>>>> ERROR CommandLineExecutionFailed:
>>>>>>>>> org.apache.geronimo.gshell.command.CommandException:
>>>>>>>>> org.osgi.framework.BundleException: Unresolved constraint in
>>>>>>>>> bundle
>>>>>>>>> 292:
>>>>>>>>> package; (package=com.mysql.jdbc)
>>>>>>>>>
>>>>>>>>> In a camel tutorial I found
>>>>>>>>>
>>>>>>>>>     <feature name="jdbc-driver">
>>>>>>>>>         ...
>>>>>>>>>     
>>>>>>>>> <bundle>mvn:com.mysql.jdbc/com.springsource.com.mysql.jdbc/5.1.6</bundle>
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>>     </feature>
>>>>>>>>>
>>>>>>>>> but osgi/install  wrap
>>>>>>>>> mvn:com.mysql.jdbc/com.springsource.com.mysql.jdbc/5.1.6 doesn't
>>>>>>>>> work
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2) the file beans.xml generated by maven archetype is quite
>>>>>>>>> different
>>>>>>>>> from
>>>>>>>>> the one of cxf-wsdl-first. where/how can I add the "property
>>>>>>>>> datasource"
>>>>>>>>> ?
>>>>>>>>>
>>>>>>>>> I see
>>>>>>>>>
>>>>>>>>>     <jaxws:endpoint id="HTTPEndpoint"
>>>>>>>>>         
>>>>>>>>> implementor="org.apache.servicemix.samples.wsdl_first.PersonImpl"
>>>>>>>>>         address="/PersonService"
>>>>>>>>>         wsdlLocation="wsdl/person.wsdl"
>>>>>>>>>         endpointName="e:soap"
>>>>>>>>>         serviceName="s:PersonService"
>>>>>>>>>         xmlns:e="http://servicemix.apache.org/samples/wsdl-first";
>>>>>>>>>        
>>>>>>>>> xmlns:s="http://servicemix.apache.org/samples/wsdl-first"/>
>>>>>>>>>
>>>>>>>>> Thanks in advance
>>>>>>>>> Matteo
>>>>>>>>>                   
>>>>>>>> -- 
>>>>>>>> Freeman Fang
>>>>>>>> ------------------------
>>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>             
>>>>>>>         
>>>>>> -- 
>>>>>> Freeman Fang
>>>>>> ------------------------
>>>>>> Open Source SOA: http://fusesource.com
>>>>>>
>>>>>>
>>>>>>
>>>>>>     
>>>>>   
>>>>
>>>
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/sample-cxf-wsdl-first-jdbc-as-OSGI-package-tp23820077p23848580.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to