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

Reply via email to