Thanks a lot - will check it out!

/Bengt

2016-07-07 11:56 GMT+02:00 Charlie Mordant <[email protected]>:

> Hi,
>
> I made a feature to support OpenJPA 2.4.1:
> https://github.com/OsgiliathEnterprise/net.osgiliath.parent/blob/master/net.osgiliath.framework/net.osgiliath.features/net.osgiliath.feature.persistence/src/main/resources/net.osgiliath.feature.persistence.xml
>
> It's available on the 0.3.7 version.
>
> Regards,
>
> 2016-07-07 10:28 GMT+02:00 Bengt Rodehav <[email protected]>:
>
>> Reading your post again Christian I realize that I should not use JPA 2.1
>> but JPA 2.0.
>>
>> I seem to have JPA 2.0 and JPA 2.1 installed at runtime:
>>
>> *karaf@root()> la | grep -i jpa*
>> * 37 | Active   |  80 | 2.3.0                 | Apache Aries JPA
>> Container API*
>> * 38 | Active   |  80 | 2.3.0                 | Apache Aries JPA
>> blueprint*
>> * 39 | Active   |  80 | 2.3.0                 | Apache Aries JPA
>> container*
>> * 40 | Active   |  80 | 2.3.0                 | Apache Aries JPA support*
>> * 70 | Active   |  80 | 1.1                   | Apache Geronimo JSR-317
>> JPA 2.0 Spec API*
>> *106 | Active   |  80 | 2.4.1                 | OpenJPA Aggregate Jar*
>> *karaf@root()> la | grep -i persistence*
>> * 17 | Active   |  80 | 2.1.0.v201304241213   | Java Persistence API 2.1*
>> *175 | Active   |  80 | 2.8.0.SNAPSHOT        | Connect ::
>> persistence-util*
>>
>> I don't really know why the JPA version 2.1 (2.1.0.v201304241213) is
>> being installed. I do not do this explicitly.
>>
>> Looking at OpenJPA 2.4.1, it seems to depend on JTA 1.1 not JTA 1.2.
>>
>> Looked again at my JPA version. I do use JPA 2.0. But I use version 1.1
>> of artifact geronimo-jpa_2.0_spec which caused me to believe I was using
>> JPA 1.1....
>>
>> I'm still kind of confused. It would be thankful if you could tell me
>> what features (and versions of those features) I should install in order to
>> use the latest version (2.4.1) of OpenJPA.
>>
>> /Bengt
>>
>>
>>
>>
>> 2016-07-07 9:54 GMT+02:00 Bengt Rodehav <[email protected]>:
>>
>>> Thanks a lot for your reply Christian.
>>>
>>> It does sound like I have a versioning problem. I was  very unsure about
>>> what versions of jpa/jta/openjpa to use when upgrading from Karaf 2.4.1.
>>>
>>> As it stands, I use
>>>
>>> - OpenJPA 2.4.1 (I use the Karaf "openjpa" feature version 2.4.1)
>>> - JTA version 1.1 at compile time but JTA 1.2 seems to be installed at
>>> runtime. Probably due to the "openjpa" 2.4.1 feature requiring it
>>> - JPA. In runtime both 1.1 and 2.1 are installed. The former because I
>>> compile against it and the latter due to the "openjpa" 2.4.1 feature (I
>>> think)
>>>
>>> Wow what a mess, thanks for pointing this out.
>>>
>>> So, if I want to use "the latest and greatest" I should use (both at
>>> compile time and runtime of course):
>>>
>>> - OpenJPA 2.4.1 (I guess this one is OK since I do use it)
>>> - JTA 1.2 (Need to change the compile version)
>>> - JPA 2.1 (Need to change the compile version)
>>>
>>> Does that sound OK?
>>>
>>>
>>> How do I check if OpenJPA is up-and-running properly?
>>>
>>> service:list PersistenceProvider gives me this:
>>>
>>> *[javax.persistence.spi.PersistenceProvider]*
>>> *-------------------------------------------*
>>> * javax.persistence.provider =
>>> org.apache.openjpa.persistence.PersistenceProviderImpl*
>>> * javax.persistence.spi.PersistenceProvider =
>>> org.apache.openjpa.persistence.PersistenceProviderImpl*
>>> * service.bundleid = 106*
>>> * service.id <http://service.id> = 309*
>>> * service.scope = singleton*
>>> *Provided by :*
>>> * OpenJPA Aggregate Jar (106)*
>>> *Used by:*
>>> * Apache Geronimo JSR-317 JPA 2.0 Spec API (70)*
>>>
>>>
>>> /Bengt
>>>
>>>
>>> 2016-07-07 9:23 GMT+02:00 Christian Schneider <[email protected]>:
>>>
>>>> The first thing Aries JPA does after finding the bundle is to locate a
>>>> suitable PersistenceProvider service. So one thing to check is of the
>>>> openjpa PersistenceProvider service is registered.
>>>>
>>>> I am pretty sure the problem is with the openjpa version though.
>>>> Openjpa 2.4.0 does not support JTA 1.2. In the newest karaf version there
>>>> should be a feature for openjpa 2.4.1 which should work
>>>> with JTA 1.2. This is important as Aries JPA 2 requires JTA 1.2 for the
>>>> @Transactional support.
>>>>
>>>> Another issue might be with the JPA api version. Openjpa is only
>>>> compatible to jpa 2.0. So you have to make sure your own bundle does not
>>>> depend on jpa 2.1.
>>>>
>>>> Christian
>>>>
>>>>
>>>> On 07.07.2016 09:10, Bengt Rodehav wrote:
>>>>
>>>> OK - thanks Christian.
>>>>
>>>> Do you have any idea why the EntityManagerFactory service does not seem
>>>> to be published. The logging implies that the persistence unit is found and
>>>> added. What could be missing?
>>>>
>>>> /Bengt
>>>>
>>>> 2016-07-06 19:36 GMT+02:00 Christian Schneider <[email protected]
>>>> >:
>>>>
>>>>> You can ignore these messages. they come from Aries spi-fly and simply
>>>>> say that spi-fly looked into your bundle and decided that it does not need
>>>>> to do anything. I have committed a change to spi-fly recently to log these
>>>>> messages only on level debug as they confuse a lot of people.
>>>>>
>>>>> Christian
>>>>>
>>>>> 2016-07-06 13:37 GMT+02:00 Bengt Rodehav < <[email protected]>
>>>>> [email protected]>:
>>>>>
>>>>>> Actually a more complete log says:
>>>>>>
>>>>>> 2016-07-06 13:35:13,732 | INFO  | nsole user karaf |
>>>>>> PersistenceBundleTracker         | er.impl.PersistenceBundleTracker  102 
>>>>>> |
>>>>>> Found persistence unit filetransferhistoryPU in bundle
>>>>>> se.digia.connect.services.filetransfer.history-domain with provider
>>>>>> org.apache.openjpa.persistence.PersistenceProviderImpl.
>>>>>> 2016-07-06 13:35:13,733 | INFO  | nsole user karaf |
>>>>>> PersistenceBundleTracker         | er.impl.PersistenceBundleTracker   93 
>>>>>> |
>>>>>> Persistence units added for bundle
>>>>>> se.digia.connect.services.filetransfer.history-domain event 128
>>>>>> 2016-07-06 13:35:13,733 | INFO  | nsole user karaf | bundle
>>>>>>                 | ?                                   ? | Bundle 
>>>>>> Considered
>>>>>> for SPI providers: se.digia.connect.services.filetransfer.history-domain
>>>>>> 2016-07-06 13:35:13,734 | INFO  | nsole user karaf | bundle
>>>>>>                 | ?                                   ? | No 
>>>>>> 'SPI-Provider'
>>>>>> Manifest header. Skipping bundle:
>>>>>> se.digia.connect.services.filetransfer.history-domain
>>>>>>
>>>>>> This sounds like the persistence units have been added but there is
>>>>>> something wrong with the "SPI-provider".
>>>>>>
>>>>>> /Bengt
>>>>>>
>>>>>>
>>>>>> 2016-07-06 13:36 GMT+02:00 Bengt Rodehav < <[email protected]>
>>>>>> [email protected]>:
>>>>>>
>>>>>>> I do have the correct information in the manifest:
>>>>>>>
>>>>>>> Meta-Persistence: META-INF/persistence.xml
>>>>>>>
>>>>>>> But I think this indicates that something is wrong:
>>>>>>>
>>>>>>> 2016-07-06 13:35:13,733 | INFO  | nsole user karaf | bundle
>>>>>>>                   | ?                                   ? | Bundle
>>>>>>> Considered for SPI providers:
>>>>>>> se.digia.connect.services.filetransfer.history-domain
>>>>>>> 2016-07-06 13:35:13,734 | INFO  | nsole user karaf | bundle
>>>>>>>                   | ?                                   ? | No
>>>>>>> 'SPI-Provider' Manifest header. Skipping bundle:
>>>>>>> se.digia.connect.services.filetransfer.history-domain
>>>>>>>
>>>>>>>
>>>>>>> What is the SPI-provider?
>>>>>>>
>>>>>>> /Bengt
>>>>>>>
>>>>>>> 2016-07-06 11:04 GMT+02:00 Christian Schneider <
>>>>>>> <[email protected]>[email protected]>:
>>>>>>>
>>>>>>>> If no EntityManagerFactory service is created then this is not a
>>>>>>>> problem with the blueprint.
>>>>>>>> Do you have the Meta-Persistence manifest entry?
>>>>>>>> See
>>>>>>>>
>>>>>>>> https://github.com/cschneider/Karaf-Tutorial/blob/master/tasklist-ds/model/bnd.bnd
>>>>>>>>
>>>>>>>> As soon as you have the entry you should see in the log that Aries
>>>>>>>> JPA parses the persistence xml and tries to create the EMF. It should
>>>>>>>> report in the log if something is missing.
>>>>>>>>
>>>>>>>> For the blueprint you have to add the enable Elements for jpa and
>>>>>>>> tx as they create the interceptors.
>>>>>>>>
>>>>>>>> Christian
>>>>>>>>
>>>>>>>>
>>>>>>>> On 06.07.2016 10:51, Bengt Rodehav wrote:
>>>>>>>>
>>>>>>>> Having problems getting this to work. I get the following in the
>>>>>>>> log file:
>>>>>>>>
>>>>>>>> 2016-07-06 10:46:54,710 | INFO  | nsole user karaf | bundle
>>>>>>>>                   | ?                                   ? | Bundle
>>>>>>>> Considered for SPI providers:
>>>>>>>> se.digia.connect.services.filetransfer.history-db
>>>>>>>> 2016-07-06 10:46:54,710 | INFO  | nsole user karaf | bundle
>>>>>>>>                   | ?                                   ? | No
>>>>>>>> 'SPI-Provider' Manifest header. Skipping bundle:
>>>>>>>> se.digia.connect.services.filetransfer.history-db
>>>>>>>>
>>>>>>>> No EntityManagerFactory service is being created.
>>>>>>>>
>>>>>>>> Looks like I've missed something. The only changes I've made is the
>>>>>>>> blueprint xml and the injection of the EntityManager using the 
>>>>>>>> annotation.
>>>>>>>> Do I need to change anything else, like the persistence.xml?
>>>>>>>>
>>>>>>>> /Bengt
>>>>>>>>
>>>>>>>> 2016-07-06 10:24 GMT+02:00 Bengt Rodehav < <[email protected]>
>>>>>>>> [email protected]>:
>>>>>>>>
>>>>>>>>> OK - thanks Christian. Will try the annotations.
>>>>>>>>>
>>>>>>>>> /Bengt
>>>>>>>>>
>>>>>>>>> 2016-07-06 10:18 GMT+02:00 Christian Schneider <
>>>>>>>>> <[email protected]>[email protected]>:
>>>>>>>>>
>>>>>>>>>> Hi Bengt,
>>>>>>>>>>
>>>>>>>>>> Aries JPA 2 only supports the annotations. You can install Aries
>>>>>>>>>> JPA 1.x into karaf 4.0.5 if you want the old xml style.
>>>>>>>>>>
>>>>>>>>>> Christian
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 06.07.2016 09:58, Bengt Rodehav wrote:
>>>>>>>>>>
>>>>>>>>>> I'm migrating from Karaf 2.4.1 to 4.0.5. I also go from JPA 1.0
>>>>>>>>>> to 2.0.
>>>>>>>>>>
>>>>>>>>>> Previously my Blueprint XML looked like this:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *<?xml version="1.0" encoding="UTF-8"?>*
>>>>>>>>>> *<blueprint xmlns="
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>http://www.osgi.org/xmlns/blueprint/v1.0.0
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>" xmlns:xsi="
>>>>>>>>>> <http://www.w3.org/2001/XMLSchema-instance>http://www.w3.org/2001/XMLSchema-instance
>>>>>>>>>> <http://www.w3.org/2001/XMLSchema-instance>"*
>>>>>>>>>> *  xsi:schemaLocation="
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>http://www.osgi.org/xmlns/blueprint/v1.0.0
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>" xmlns:tx="
>>>>>>>>>> <http://aries.apache.org/xmlns/transactions/v1.0.0>http://aries.apache.org/xmlns/transactions/v1.0.0
>>>>>>>>>> <http://aries.apache.org/xmlns/transactions/v1.0.0>"*
>>>>>>>>>> *  xmlns:jpa="
>>>>>>>>>> <http://aries.apache.org/xmlns/jpa/v1.0.0>http://aries.apache.org/xmlns/jpa/v1.0.0
>>>>>>>>>> <http://aries.apache.org/xmlns/jpa/v1.0.0>">*
>>>>>>>>>>
>>>>>>>>>> *  <bean id="messageService"
>>>>>>>>>> class="se.digia.connect.iso20022.history.impl.MessageHistoryService">*
>>>>>>>>>> *    <tx:transaction method="*" value="RequiresNew" />*
>>>>>>>>>> *    <jpa:context property="entityManager" unitname="iso20022PU"
>>>>>>>>>> />*
>>>>>>>>>> *  </bean>*
>>>>>>>>>>
>>>>>>>>>> *  <service ref="messageService"
>>>>>>>>>> interface="se.digia.connect.iso20022.history.api.IMessageHistoryService"
>>>>>>>>>>  />
>>>>>>>>>>  *
>>>>>>>>>>
>>>>>>>>>> *</blueprint>*
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I have now changed to:
>>>>>>>>>>
>>>>>>>>>> *<?xml version="1.0" encoding="UTF-8"?>*
>>>>>>>>>> *<blueprint xmlns="
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>http://www.osgi.org/xmlns/blueprint/v1.0.0
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>" xmlns:xsi="
>>>>>>>>>> <http://www.w3.org/2001/XMLSchema-instance>http://www.w3.org/2001/XMLSchema-instance
>>>>>>>>>> <http://www.w3.org/2001/XMLSchema-instance>"*
>>>>>>>>>> *  xsi:schemaLocation="
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>http://www.osgi.org/xmlns/blueprint/v1.0.0
>>>>>>>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>" xmlns:tx="
>>>>>>>>>> <http://aries.apache.org/xmlns/transactions/v1.2.0>http://aries.apache.org/xmlns/transactions/v1.2.0
>>>>>>>>>> <http://aries.apache.org/xmlns/transactions/v1.2.0>"*
>>>>>>>>>> *  xmlns:jpa="
>>>>>>>>>> <http://aries.apache.org/xmlns/jpa/v2.0.0>http://aries.apache.org/xmlns/jpa/v2.0.0
>>>>>>>>>> <http://aries.apache.org/xmlns/jpa/v2.0.0>"> <!-- tjoho -->*
>>>>>>>>>>
>>>>>>>>>> *  <bean id="messageService"
>>>>>>>>>> class="se.digia.connect.iso20022.history.impl.MessageHistoryService">*
>>>>>>>>>> *    <tx:transaction method="*" value="RequiresNew" />*
>>>>>>>>>> *    <jpa:context property="entityManager" unitname="iso20022PU"
>>>>>>>>>> />*
>>>>>>>>>> *  </bean>*
>>>>>>>>>>
>>>>>>>>>> *  <service ref="messageService"
>>>>>>>>>> interface="se.digia.connect.iso20022.history.api.IMessageHistoryService"
>>>>>>>>>>  />*
>>>>>>>>>>
>>>>>>>>>> *</blueprint>*
>>>>>>>>>>
>>>>>>>>>> On Karaf startup I get the following error:
>>>>>>>>>>
>>>>>>>>>> *2016-07-06 09:46:42,154 | ERROR | rint Extender: 2 |
>>>>>>>>>> BlueprintContainerImpl           | container.BlueprintContainerImpl  
>>>>>>>>>> 437 |
>>>>>>>>>> Unable to start blueprint container for bundle
>>>>>>>>>> se.digia.connect.services.filetransfer.history-db/2.8.0.SNAPSHOT*
>>>>>>>>>> *org.osgi.service.blueprint.container.ComponentDefinitionException:
>>>>>>>>>> Unable to validate xml*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.aries.blueprint.parser.Parser.validate(Parser.java:349)[25:org.apache.aries.blueprint.core:1.6.1]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.aries.blueprint.parser.Parser.validate(Parser.java:336)[25:org.apache.aries.blueprint.core:1.6.1]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:343)[25:org.apache.aries.blueprint.core:1.6.1]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[25:org.apache.aries.blueprint.core:1.6.1]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_74]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_74]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[25:org.apache.aries.blueprint.core:1.6.1]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[25:org.apache.aries.blueprint.core:1.6.1]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_74]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_74]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_74]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_74]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_74]*
>>>>>>>>>> * at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_74]*
>>>>>>>>>> * at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]*
>>>>>>>>>> *Caused by: org.xml.sax.SAXParseException:
>>>>>>>>>> cvc-complex-type.2.4.c: The matching wildcard is strict, but no 
>>>>>>>>>> declaration
>>>>>>>>>> can be found for element 'jpa:context'.*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.jaxp.validation.DOMValidatorHelper.beginNode(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown 
>>>>>>>>>> Source)[:]*
>>>>>>>>>> * at javax.xml.validation.Validator.validate(Unknown
>>>>>>>>>> Source)[:2.7.0]*
>>>>>>>>>> * at
>>>>>>>>>> org.apache.aries.blueprint.parser.Parser.validate(Parser.java:346)[25:org.apache.aries.blueprint.core:1.6.1]*
>>>>>>>>>> * ... 14 more*
>>>>>>>>>>
>>>>>>>>>> I read at  <http://aries.apache.org/modules/jpaproject.html>
>>>>>>>>>> http://aries.apache.org/modules/jpaproject.html that annotations
>>>>>>>>>> can now be used for the injection of the perstence unit context. 
>>>>>>>>>> But, is it
>>>>>>>>>> the only way to do it? Is there no way to do it using the jpa:context
>>>>>>>>>> element anymore?
>>>>>>>>>>
>>>>>>>>>> /Bengt
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Christian Schneiderhttp://www.liquid-reality.de
>>>>>>>>>>
>>>>>>>>>> Open Source Architecthttp://www.talend.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Christian Schneiderhttp://www.liquid-reality.de
>>>>>>>>
>>>>>>>> Open Source Architecthttp://www.talend.com
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --
>>>>> Christian Schneider
>>>>> http://www.liquid-reality.de
>>>>> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de>
>>>>>
>>>>> Open Source Architect
>>>>> http://www.talend.com
>>>>> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Christian Schneiderhttp://www.liquid-reality.de
>>>>
>>>> Open Source Architecthttp://www.talend.com
>>>>
>>>>
>>>
>>
>
>
> --
> Charlie Mordant
>
> Full OSGI/EE stack made with Karaf:
> https://github.com/OsgiliathEnterprise/net.osgiliath.parent
>

Reply via email to