Thanks Bengt, it's a good idea, I gonna work on it. Regards JB
On 10/24/2012 08:53 AM, Bengt Rodehav wrote:
Done: https://issues.apache.org/jira/browse/ARIES-950 /Bengt 2012/10/24 Charles Moulliard <[email protected] <mailto:[email protected]>> Don't think that some commands exist but that should be interesting to have a jndi query command. Feel free to open a ticket for Aries project On Tue, Oct 23, 2012 at 3:56 PM, Bengt Rodehav <[email protected] <mailto:[email protected]>> wrote: Hello Michael, I don't know what the best practice is. Are there any existing Karaf commands (in either Karaf or Aries community) that concerns Aries components? /Bengt 2012/10/23 Michael Täschner <[email protected] <mailto:[email protected]>> Hi Bengt, regarding the "jndi" command. I guess this should be requested at the Aries guys ? Or another karaf component for enriching Aries JNDI. Regards, Michael 2012/10/22 Bengt Rodehav <[email protected] <mailto:[email protected]>> Thanks for checking Charles. Do you know if there is a simple way to check if jndi can resolve a query? If not, then a "jndi" command would be a great add-on to Karaf. /Bengt 2012/10/22 Charles Moulliard <[email protected] <mailto:[email protected]>> This is correct On Mon, Oct 22, 2012 at 2:29 PM, Bengt Rodehav <[email protected] <mailto:[email protected]>> wrote: Achim, no Grace Period for any of the bundles. Charles, "headers 151" gives me the following: /Connect :: filetransfer-history-domain (151)/ /--------------------------------------------/ /Manifest-Version = 1.0/ /Bnd-LastModified = 1350893282476/ /Tool = Bnd-0.0.357/ /Meta-Persistence = META-INF/persistence.xml/ /Built-By = berodeha/ /Implementation-Version = 2.3-SNAPSHOT/ /Build-Jdk = 1.6.0_32/ /Implementation-Title = Digia Connect/ /Created-By = Apache Maven Bundle Plugin/ / / /Bundle-Name = Connect :: filetransfer-history-domain/ /Bundle-SymbolicName = se.digia.connect.services.filetransfer.history-domain/ /Bundle-Version = 2.3.0.SNAPSHOT/ /Bundle-ManifestVersion = 2/ / / /Import-Package =/ / javax.persistence;resolution:=optional;version=1.1,/ / javax.persistence.metamodel;resolution:=optional;version=1.1,/ / javax.validation.constraints;resolution:=optional;version=1.0,/ / org.apache.openjpa.enhance;resolution:=optional;version=2.1,/ / org.apache.openjpa.util;resolution:=optional;version=2.1,/ / se.digia.connect.filetransfer.history.domain;/ / resolution:=optional;/ / version=2.3,/ / se.digia.connect.util.persistence;resolution:=optional;version=2.3/ /Export-Package =/ / se.digia.connect.filetransfer.history.domain;/ / uses:="org.apache.openjpa.util,/ / se.digia.connect.util.persistence,/ / javax.validation.constraints,/ / org.apache.openjpa.enhance,/ / javax.persistence,/ / javax.persistence.metamodel";/ / version=2.3.0.SNAPSHOT/ I think this is correct. Also, this has worked for quite some time on Karaf 2.2.8 (which had an older Aries version). /Bengt 2012/10/22 Charles Moulliard <[email protected] <mailto:[email protected]>> Have you added Meta-Persistence metadata in the MANIFEST file ? I have created a ticket to provide a more end user message on the console (https://issues.apache.org/jira/browse/ARIES-945) On Mon, Oct 22, 2012 at 2:09 PM, Bengt Rodehav <[email protected] <mailto:[email protected]>> wrote: Thanks for your reply Charles, Your're right I don't need the DataSourceFactory. I mistakenly thought that the info message was connected to the problem with not finding the data source via JNDI. Since everything has worked before (using Karaf 2.2.8) I assumed that the feature descriptor in Karaf 2.3.0 lacked a bundle (that exported the org.osgi.service.jdbc package). That's why I thought it was a Karaf problem and not an Aries problem. So, I probably do not need the org.osgi.service.jdbc package - it was a false lead. Still, I do have problems finding the data source via jndi. I get: / 2012-10-22 13:36:23,428 | ERROR | y/api/getEntries | container | ntainer.unit.impl.JndiDataSource 85 | The DataSource osgi:service/javax.sql.DataSource/(osgi.jndi.service.name <http://osgi.jndi.service.name>=jdbc/filetransferhistoryjta) required by bundle se.digia.connect.services.filetransfer.history-domain/2.3.0.SNAPSHOT could not be found. javax.naming.NameNotFoundException: osgi:service/javax.sql.DataSource/"(osgi.jndi.service.name <http://osgi.jndi.service.name>=jdbc/filetransferhistoryjta)" at org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:113)[139:org.apache.aries.jndi.url:1.0.0] at org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:144)[139:org.apache.aries.jndi.url:1.0.0] at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)[137:org.apache.aries.jndi.core:1.0.0] at javax.naming.InitialContext.lookup(InitialContext.java:392)[:1.6.0_32] at org.apache.aries.jpa.container.unit.impl.JndiDataSource.getDs(JndiDataSource.java:65)[134:org.apache.aries.jpa.container:1.0.0] at org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getConnection(DelayedLookupDataSource.java:36)[134:org.apache.aries.jpa.container:1.0.0] at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:137)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:112)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:239)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:872)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getDataSource(JDBCStoreManager.java:179)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:162)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:148)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:79)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:369)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:323)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:229)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:213)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)[142:org.apache.openjpa:2.1.1] at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)[142:org.apache.openjpa:2.1.1] at org.apache.aries.jpa.container.impl.CountingEntityManagerFactory.createEntityManager(CountingEntityManagerFactory.java:71)[134:org.apache.aries.jpa.container:1.0.0] at org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:152)[135:org.apache.aries.jpa.container.context:1.0.1] at org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:87)[135:org.apache.aries.jpa.container.context:1.0.1] at org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getCriteriaBuilder(JTAEntityManager.java:391)[135:org.apache.aries.jpa.container.context:1.0.1] ... / But the data source seem to be published as a service, the command "ls | grep -A 4 -B 4 javax.sql.DataSource" gives me the following output: /Connect :: filetransfer-history-datasource (153) provides:/ /----------------------------------------------------------/ /javax.sql.XADataSource/ /javax.sql.DataSource/ /org.osgi.service.blueprint.container.BlueprintContainer/ I then execute "ls 153" and get: / Connect :: filetransfer-history-datasource (153) provides: ---------------------------------------------------------- objectClass = javax.sql.XADataSource osgi.jndi.service.name <http://osgi.jndi.service.name> = jdbc/filetransferhistoryjta osgi.service.blueprint.compname = derbyXADataSource service.id <http://service.id> = 493 ---- objectClass = javax.sql.DataSource osgi.jndi.service.name <http://osgi.jndi.service.name> = jdbc/filetransferhistorynojta osgi.service.blueprint.compname = derbyDataSource service.id <http://service.id> = 494 ---- objectClass = org.osgi.service.blueprint.container.BlueprintContainer osgi.blueprint.container.symbolicname = se.digia.connect.services.filetransfer.h/ istory-datasource / osgi.blueprint.container.version = 2.3.0.SNAPSHOT service.id <http://service.id> = 495 / To me it looks like the service is provided with the correct properties. Maybe it's a jndi problem? I was hoping there was a "jndi" command in the Karaf shell that I could use to see what can be resolved via jndi but I can't find such a command. I've actually encountered another strange problem. On startup everything looks fine. But when I try to access the webconsole - it's not there. I then start to type "list" in the Karaf shell. But as soon as I type the "l" I get the following message in the console: /karaf@root> lError executing command: read() with timeout cannot be called as no/ /n-blocking operation is disabled/ / __ __ ____/ / / //_/____ __________ _/ __// / / ,< / __ `/ ___/ __ `/ /_/ / / /| |/ /_/ / / / /_/ / __// / /_/ |_|\__,_/_/ \__,_/_// / / / Apache Karaf (2.3.0)/ / / /Hit '<tab>' for a list of available commands/ /and '[cmd] --help' for help on a specific command./ /Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown Karaf./ Note that the "Karaf" logo had already been shown so it's shown twice. Also, in the log I get: /2012-10-22 13:28:27,999 | ERROR | Thread-6 | FeaturesServiceImpl | s.internal.FeaturesServiceImpl$2 1143 | Error installing boot features/ /java.lang.NullPointerException/ /at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432)[org.apache.felix.framework-4.0.3.jar:]/ /at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)[org.apache.felix.framework-4.0.3.jar:]/ /at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)[org.apache.felix.framework-4.0.3.jar:]/ /at java.lang.ClassLoader.loadClass(ClassLoader.java:247)[:1.6.0_32]/ /at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:525)[20:org.apache.karaf.features.core:2.3.0]/ /at org.apache.karaf.features.internal.FeaturesServiceImpl$2.run(FeaturesServiceImpl.java:1141)[20:org.apache.karaf.features.core:2.3.0]/ /2012-10-22 13:28:28,002 | ERROR | Thread-6 | FeaturesServiceImpl | res.internal.FeaturesServiceImpl 1227 | Error persisting FeaturesService state/ /java.lang.IllegalStateException: Invalid BundleContext./ /at org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:514)[org.apache.felix.framework-4.0.3.jar:]/ /at org.apache.felix.framework.BundleContextImpl.getDataFile(BundleContextImpl.java:491)[org.apache.felix.framework-4.0.3.jar:]/ /at org.apache.karaf.features.internal.FeaturesServiceImpl.saveState(FeaturesServiceImpl.java:1215)[20:org.apache.karaf.features.core:2.3.0]/ /at org.apache.karaf.features.internal.FeaturesServiceImpl$2.run(FeaturesServiceImpl.java:1146)[20:org.apache.karaf.features.core:2.3.0]/ If I don't press a key in the shell, I never get these messages but then the web service will never install. It's as if the installation is hung, waiting for something. Do you or anyone have any clue as to what is happening. I am in the process of upgrading my custom distribution of Karaf from 2.2.8 to 2.3.0 so I might have done something very wrong but right now I have no clue as to where I should look further, /Bengt 2012/10/22 Charles Moulliard <[email protected] <mailto:[email protected]>> Bengt, This package is not required by Aries JPA as resolution is optional : org.osgi.service.jdbc;resolution:=optional, When the Aries JPA Container /ManagedPersistenceUnitInfoImpl /class is called, Aries does a check to verify if the OSGI service is provided. If this is not the case, the info is displayed in the log and Aries JPA Container continues to load the JPA Container based on your config (persistence.xml, datasource, ...). If you are using JPA, you shouldn't use the DataSourceFactory. These links could help you to configure your project /http://stackoverflow.com/questions/11861414/openjpa-in-osgi-not-finding-mysql-jdbc-connector-bundle/ /http://aries.apache.org/modules/jpaproject.html/ / / Regards, Charles On Mon, Oct 22, 2012 at 11:25 AM, Bengt Rodehav <[email protected] <mailto:[email protected]>> wrote: I'm trying to upgrade fro Karaf 2.2.8 to Karaf 2.3.0 and have run into a problem regarding datasources. I get the following in my log: /2012-10-22 10:52:59,563 | INFO | Thread-7 | container | l.ManagedPersistenceUnitInfoImpl 50 | The org.osgi.service.jdbc package is unavailable. As a result the Aries JPA container will not offer any DataSourceFactory integration./ It's only an INFO message but it seems fatal to me because later on I cannot find my datasource when I try to use it. I publish a data source (for Derby) using Blueprint. I use the following features from the karaf-enterprise descriptor: - transaction - jpa - jndi When I execute "exports | grep -i org.osgi.service.jdbc" on the command line I get an empty result. It seems like this package is needed for Aries JPA Container. What bundle should export it? /Bengt -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
-- Jean-Baptiste Onofré [email protected] http://blog.nanthrax.net Talend - http://www.talend.com
