You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Kristian Köhler <kr...@googlemail.com> on 2009/02/20 10:01:54 UTC

Using javax.transaction within Apache Felix

Hi

I encountered problems while deploying an application to Felix 1.4.1 running
within a 1.6 JVM.

Ok, here's the scenario:
My application has a dependency to another library which defines an import
to javax.transaction without a version specified. I also deployed a osgi
version of the jta.jar (com.springsource.javax.transaction-1.1.0.jar) in
version 1.1.0.

Now I see ClassNotFound exceptions:

--- 8< ---
Caused by: java.lang.ClassNotFoundException:
javax.transaction.TransactionManager
...
--- 8< ---

When I'm right this results of the fact that Felix sets the
org.osgi.framework.system.packages property and exports the
javax.transaction package from the system with version 1.6.0 (JVM 1.6) which
is "incomplete" (TransactionManager missing) and the library tries to use
this one.
Right??

When a place the "complete jar" for testing purposes to the lib/ext
directory of the jdk everything works fine.

Now my question is: How can I prevent Felix from exporting this package? Do
I have to define a complete new org.osgi.framework.system.packages property?
Or is there an other option? Is there a property with "excluding
definitions" available?
Other possibilities?

Or I'm completely wrong ;-)

Thanks in advance

Kristian

-- 
http://www.kkoehler.com

Re: Using javax.transaction within Apache Felix

Posted by Jacques-Olivier Goussard <jo...@gmail.com>.
On my side I fixed that exact same problem by exporting jta.jar with a 2.0.0
version tag - and so both packages coexist in the container. Why not make
use of this unique feture of OSGi ?

On Fri, Feb 20, 2009 at 12:22 PM, Kristian Köhler <
kristian.koehler@googlemail.com> wrote:

> You're right ;-)
>
> I wondered why the version for a system package is "sometimes" 1.6.0 and
> "sometimes" 0.0.0. These are the same jars ;-)
>
> Kristian
>
>
> Richard S. Hall wrote:
>
>> Kristian Köhler wrote:
>>
>>> Hi
>>>
>>> funny thing.. I copied the values from the default.properties file and
>>> everything worked fine (I didn't remove the javax.transaction package!).
>>> The
>>> version of the "system packages" is now 0.0.0 instead of 1.6.0
>>>
>>> Not sure if this behaviour is intended... but solved my problem.
>>>
>>>
>>
>> Well, that might make sense if you were specifying a version on your
>> import, but you say below that you are not.
>>
>> -> richard
>>
>>  Kristian
>>>
>>> 2009/2/20 Richard S. Hall <he...@ungoverned.org>
>>>
>>>
>>>
>>>> There is no way to just exclude from packages. The easiest way is to
>>>> just
>>>> set the org.osgi.framework.system.packages property to be the value you
>>>> want
>>>> it to be. To make your life simpler, you can just get the
>>>> default.properties
>>>> file in felix.jar and copy the value out of it and put it into your
>>>> config.properties.
>>>>
>>>> -> richard
>>>>
>>>>
>>>> Kristian Köhler wrote:
>>>>
>>>>
>>>>
>>>>> Hi
>>>>>
>>>>> I encountered problems while deploying an application to Felix 1.4.1
>>>>> running
>>>>> within a 1.6 JVM.
>>>>>
>>>>> Ok, here's the scenario:
>>>>> My application has a dependency to another library which defines an
>>>>> import
>>>>> to javax.transaction without a version specified. I also deployed a
>>>>> osgi
>>>>> version of the jta.jar (com.springsource.javax.transaction-1.1.0.jar)
>>>>> in
>>>>> version 1.1.0.
>>>>>
>>>>> Now I see ClassNotFound exceptions:
>>>>>
>>>>> --- 8< ---
>>>>> Caused by: java.lang.ClassNotFoundException:
>>>>> javax.transaction.TransactionManager
>>>>> ...
>>>>> --- 8< ---
>>>>>
>>>>> When I'm right this results of the fact that Felix sets the
>>>>> org.osgi.framework.system.packages property and exports the
>>>>> javax.transaction package from the system with version 1.6.0 (JVM 1.6)
>>>>> which
>>>>> is "incomplete" (TransactionManager missing) and the library tries to
>>>>> use
>>>>> this one.
>>>>> Right??
>>>>>
>>>>> When a place the "complete jar" for testing purposes to the lib/ext
>>>>> directory of the jdk everything works fine.
>>>>>
>>>>> Now my question is: How can I prevent Felix from exporting this
>>>>> package?
>>>>> Do
>>>>> I have to define a complete new org.osgi.framework.system.packages
>>>>> property?
>>>>> Or is there an other option? Is there a property with "excluding
>>>>> definitions" available?
>>>>> Other possibilities?
>>>>>
>>>>> Or I'm completely wrong ;-)
>>>>>
>>>>> Thanks in advance
>>>>>
>>>>> Kristian
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>

Re: Using javax.transaction within Apache Felix

Posted by Kristian Köhler <kr...@googlemail.com>.
You're right ;-)

I wondered why the version for a system package is "sometimes" 1.6.0 and 
"sometimes" 0.0.0. These are the same jars ;-)

Kristian

Richard S. Hall wrote:
> Kristian Köhler wrote:
>> Hi
>>
>> funny thing.. I copied the values from the default.properties file and
>> everything worked fine (I didn't remove the javax.transaction 
>> package!). The
>> version of the "system packages" is now 0.0.0 instead of 1.6.0
>>
>> Not sure if this behaviour is intended... but solved my problem.
>>   
> 
> Well, that might make sense if you were specifying a version on your 
> import, but you say below that you are not.
> 
> -> richard
> 
>> Kristian
>>
>> 2009/2/20 Richard S. Hall <he...@ungoverned.org>
>>
>>  
>>> There is no way to just exclude from packages. The easiest way is to 
>>> just
>>> set the org.osgi.framework.system.packages property to be the value 
>>> you want
>>> it to be. To make your life simpler, you can just get the 
>>> default.properties
>>> file in felix.jar and copy the value out of it and put it into your
>>> config.properties.
>>>
>>> -> richard
>>>
>>>
>>> Kristian Köhler wrote:
>>>
>>>    
>>>> Hi
>>>>
>>>> I encountered problems while deploying an application to Felix 1.4.1
>>>> running
>>>> within a 1.6 JVM.
>>>>
>>>> Ok, here's the scenario:
>>>> My application has a dependency to another library which defines an 
>>>> import
>>>> to javax.transaction without a version specified. I also deployed a 
>>>> osgi
>>>> version of the jta.jar 
>>>> (com.springsource.javax.transaction-1.1.0.jar) in
>>>> version 1.1.0.
>>>>
>>>> Now I see ClassNotFound exceptions:
>>>>
>>>> --- 8< ---
>>>> Caused by: java.lang.ClassNotFoundException:
>>>> javax.transaction.TransactionManager
>>>> ...
>>>> --- 8< ---
>>>>
>>>> When I'm right this results of the fact that Felix sets the
>>>> org.osgi.framework.system.packages property and exports the
>>>> javax.transaction package from the system with version 1.6.0 (JVM 1.6)
>>>> which
>>>> is "incomplete" (TransactionManager missing) and the library tries 
>>>> to use
>>>> this one.
>>>> Right??
>>>>
>>>> When a place the "complete jar" for testing purposes to the lib/ext
>>>> directory of the jdk everything works fine.
>>>>
>>>> Now my question is: How can I prevent Felix from exporting this 
>>>> package?
>>>> Do
>>>> I have to define a complete new org.osgi.framework.system.packages
>>>> property?
>>>> Or is there an other option? Is there a property with "excluding
>>>> definitions" available?
>>>> Other possibilities?
>>>>
>>>> Or I'm completely wrong ;-)
>>>>
>>>> Thanks in advance
>>>>
>>>> Kristian
>>>>
>>>>
>>>>
>>>>       
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>>
>>>     
>>
>>
>>   
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Using javax.transaction within Apache Felix

Posted by "Richard S. Hall" <he...@ungoverned.org>.
Kristian Köhler wrote:
> Hi
>
> funny thing.. I copied the values from the default.properties file and
> everything worked fine (I didn't remove the javax.transaction package!). The
> version of the "system packages" is now 0.0.0 instead of 1.6.0
>
> Not sure if this behaviour is intended... but solved my problem.
>   

Well, that might make sense if you were specifying a version on your 
import, but you say below that you are not.

-> richard

> Kristian
>
> 2009/2/20 Richard S. Hall <he...@ungoverned.org>
>
>   
>> There is no way to just exclude from packages. The easiest way is to just
>> set the org.osgi.framework.system.packages property to be the value you want
>> it to be. To make your life simpler, you can just get the default.properties
>> file in felix.jar and copy the value out of it and put it into your
>> config.properties.
>>
>> -> richard
>>
>>
>> Kristian Köhler wrote:
>>
>>     
>>> Hi
>>>
>>> I encountered problems while deploying an application to Felix 1.4.1
>>> running
>>> within a 1.6 JVM.
>>>
>>> Ok, here's the scenario:
>>> My application has a dependency to another library which defines an import
>>> to javax.transaction without a version specified. I also deployed a osgi
>>> version of the jta.jar (com.springsource.javax.transaction-1.1.0.jar) in
>>> version 1.1.0.
>>>
>>> Now I see ClassNotFound exceptions:
>>>
>>> --- 8< ---
>>> Caused by: java.lang.ClassNotFoundException:
>>> javax.transaction.TransactionManager
>>> ...
>>> --- 8< ---
>>>
>>> When I'm right this results of the fact that Felix sets the
>>> org.osgi.framework.system.packages property and exports the
>>> javax.transaction package from the system with version 1.6.0 (JVM 1.6)
>>> which
>>> is "incomplete" (TransactionManager missing) and the library tries to use
>>> this one.
>>> Right??
>>>
>>> When a place the "complete jar" for testing purposes to the lib/ext
>>> directory of the jdk everything works fine.
>>>
>>> Now my question is: How can I prevent Felix from exporting this package?
>>> Do
>>> I have to define a complete new org.osgi.framework.system.packages
>>> property?
>>> Or is there an other option? Is there a property with "excluding
>>> definitions" available?
>>> Other possibilities?
>>>
>>> Or I'm completely wrong ;-)
>>>
>>> Thanks in advance
>>>
>>> Kristian
>>>
>>>
>>>
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
>>     
>
>
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Re: Using javax.transaction within Apache Felix

Posted by Kristian Köhler <kr...@googlemail.com>.
Hi

funny thing.. I copied the values from the default.properties file and
everything worked fine (I didn't remove the javax.transaction package!). The
version of the "system packages" is now 0.0.0 instead of 1.6.0

Not sure if this behaviour is intended... but solved my problem.

Kristian

2009/2/20 Richard S. Hall <he...@ungoverned.org>

> There is no way to just exclude from packages. The easiest way is to just
> set the org.osgi.framework.system.packages property to be the value you want
> it to be. To make your life simpler, you can just get the default.properties
> file in felix.jar and copy the value out of it and put it into your
> config.properties.
>
> -> richard
>
>
> Kristian Köhler wrote:
>
>> Hi
>>
>> I encountered problems while deploying an application to Felix 1.4.1
>> running
>> within a 1.6 JVM.
>>
>> Ok, here's the scenario:
>> My application has a dependency to another library which defines an import
>> to javax.transaction without a version specified. I also deployed a osgi
>> version of the jta.jar (com.springsource.javax.transaction-1.1.0.jar) in
>> version 1.1.0.
>>
>> Now I see ClassNotFound exceptions:
>>
>> --- 8< ---
>> Caused by: java.lang.ClassNotFoundException:
>> javax.transaction.TransactionManager
>> ...
>> --- 8< ---
>>
>> When I'm right this results of the fact that Felix sets the
>> org.osgi.framework.system.packages property and exports the
>> javax.transaction package from the system with version 1.6.0 (JVM 1.6)
>> which
>> is "incomplete" (TransactionManager missing) and the library tries to use
>> this one.
>> Right??
>>
>> When a place the "complete jar" for testing purposes to the lib/ext
>> directory of the jdk everything works fine.
>>
>> Now my question is: How can I prevent Felix from exporting this package?
>> Do
>> I have to define a complete new org.osgi.framework.system.packages
>> property?
>> Or is there an other option? Is there a property with "excluding
>> definitions" available?
>> Other possibilities?
>>
>> Or I'm completely wrong ;-)
>>
>> Thanks in advance
>>
>> Kristian
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>


-- 
http://www.kkoehler.com

Re: Using javax.transaction within Apache Felix

Posted by "Richard S. Hall" <he...@ungoverned.org>.
There is no way to just exclude from packages. The easiest way is to 
just set the org.osgi.framework.system.packages property to be the value 
you want it to be. To make your life simpler, you can just get the 
default.properties file in felix.jar and copy the value out of it and 
put it into your config.properties.

-> richard

Kristian Köhler wrote:
> Hi
>
> I encountered problems while deploying an application to Felix 1.4.1 running
> within a 1.6 JVM.
>
> Ok, here's the scenario:
> My application has a dependency to another library which defines an import
> to javax.transaction without a version specified. I also deployed a osgi
> version of the jta.jar (com.springsource.javax.transaction-1.1.0.jar) in
> version 1.1.0.
>
> Now I see ClassNotFound exceptions:
>
> --- 8< ---
> Caused by: java.lang.ClassNotFoundException:
> javax.transaction.TransactionManager
> ...
> --- 8< ---
>
> When I'm right this results of the fact that Felix sets the
> org.osgi.framework.system.packages property and exports the
> javax.transaction package from the system with version 1.6.0 (JVM 1.6) which
> is "incomplete" (TransactionManager missing) and the library tries to use
> this one.
> Right??
>
> When a place the "complete jar" for testing purposes to the lib/ext
> directory of the jdk everything works fine.
>
> Now my question is: How can I prevent Felix from exporting this package? Do
> I have to define a complete new org.osgi.framework.system.packages property?
> Or is there an other option? Is there a property with "excluding
> definitions" available?
> Other possibilities?
>
> Or I'm completely wrong ;-)
>
> Thanks in advance
>
> Kristian
>
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org