Hi,
Try to export org.junit.internal in the junit4osgi bundle.
Right now is just embeds junit.* packages, not org.junit* packages.
Regards,
Clement
On 10.09.2010, at 13:36, Anna Karina Nava Soriano wrote:
> Good mornign! It's me again!
>
> I tried not to question anything more, I thought your advise would helped me
> but I changed ALL junit dependencies version from 3.8.1 to 4.8.1 in the
> entire ipojo project and all its subprojects (including junit4osgi, handler
> extender, felix-command, swing-gui, and the rest of them) the only places
> where I found junit version where in all pom.xml files, so that is what I
> did.
>
> After that there was the same missing packages problem
> "org.osgi.framework.BundleException: Unresolved constraint in bundle
> org.apache.felix.ipojo.junit4osgi [463]: package;
> (package=org.junit.internal)". Weird since as clement said:
> "junit4osgi embeds junit. So, you can't use a different version. But you can
> easily modify the junit4osgi bundle to expose the missing package / update
> the junit dependency"
> I understood that my junit jar (id 408) is not the one that is providing
> junit packages, this is junit4osgi's labour. So I looked inside the
> manifest of junit4osgi and I am not sure why it is not exporting those
> packages missing packages (likeorg.junit.internal) : legible MANIFEST:
>
> Manifest-Version:1.0
> Export-Package:
>
> org.apache.felix.ipojo.junit4osgi.helpers;uses:=
>
> "org.apache.felix.ipojo.junit4osgi,
>
> org.apache.felix.ipojo.architecture,
> org.apache.felix.ipojo,
> org.osgi.framework,
> org.osgi.service.cm,
>
> org.apache.felix.ipojo.metadata,
>
> org.apache.felix.ipojo.parser",
> junit.framework;uses:=
>
> "org.junit.runner.manipulation,
> org.junit.runner,
>
> org.junit.runner.notification,
> org.junit",
> org.apache.felix.ipojo.junit4osgi;uses:=
> "junit.framework,
> org.osgi.framework,
>
> org.osgi.service.packageadmin",
> junit.runner;uses:=
> "junit.framework",
>
> junit.textui;uses:="junit.framework,
> junit.runner",
> junit.extensions;uses:=
> "junit.framework"
> iPOJO-Components:
> component{
>
> $classname="org.apache.felix.ipojo.junit4osgi.impl.JunitExtender_1"
>
> org.apache.felix.ipojo.extender:extender{
> $extension="Test-Suite"
>
> $onarrival="onBundleArrival"
>
> $ondeparture="onBundleDeparture"
> }
> callback{
> $transition="invalidate"
> $method="stopping"
> }
> callback{
> $transition="validate"
> $method="starting"
> }
> provides{}
> manipulation{
>
> $super="org.apache.felix.ipojo.junit4osgi.impl.JunitExtender"
> field{$name="m_suites"
> $type="java.util.Map"}
> field{$name="m_printer"
> $type="junit.textui.ResultPrinter"}
>
> field{$name="m_log"$type="org.osgi.service.log.LogService"}
> method{$name="$init"}
>
> method{$arguments="{junit.framework.Test}"$name="doRun"$return="junit.framework.TestResult"}
> }
>
> requires{$field="m_log"$default-implementation="org.apache.felix.ipojo.junit4osgi.impl.LogServiceImpl"$optional="true"}
> }
>
> instance{$component="org.apache.felix.ipojo.junit4osgi.impl.JunitExtender_1"}
> Private-Package:
> org.apache.felix.ipojo.junit4osgi.impl,
> org.apache.felix.ipojo.junit4osgi.test
> Built-By:annakarinanavasoriano
> Tool:Bnd-0.0.255
> Bundle-Name:ApacheFelixiPOJOOSGiJunitRunner
> Created-By:ApacheMavenBundlePlugin&iPOJO1.4.0
> Bundle-Vendor:TheApacheSoftwareFoundation
> Build-Jdk:1.6.0_20
> Bundle-Version:1.1.0.SNAPSHOT
> Bnd-LastModified:1284058534606
>
> Bundle-ManifestVersion:2Bundle-License:http://www.apache.org/licenses/LICENSE-2.0.txt
>
> Bundle-Description:ApacheFelixisanOSGiimplementation.
> Import-Package:
>
> org.apache.felix.ipojo.junit4osgi.helpers,
> org.junit.internal,
> junit.runner,
> org.apache.felix.ipojo;version=1.6,
> org.junit.runner.notification,
> javax.xml.parsers,
>
> org.osgi.service.packageadmin;version=1.1,
> org.w3c.dom,
> junit.textui,
>
> org.apache.felix.ipojo.parser;version=1.6,
> org.junit,
> junit.extensions,
> org.junit.runner.manipulation,
> org.osgi.service.log;version=1.2,
> junit.framework,
> org.apache.felix.ipojo.junit4osgi,
>
> org.apache.felix.ipojo.architecture;version=1.6,
> org.junit.runner,
> org.osgi.framework;version=1.2,
> org.osgi.service.cm;version=1.1,
> org.apache.felix.ipojo.metadata
>
> Bundle-SymbolicName:org.apache.felix.ipojo.junit4osgi
> Bundle-DocURL:http://www.apache.org/
>
> Then I decided to include this missing packages to the junit-4.8.1.jar, I did
> that and that Unresolved constraint problem disappeared. But isn't this
> opposed to the previous fact that junit4osgi embed junit? do I need to add
> this missing packages to the junit-4.8.1.jar's MANIFEST? or as it is embedded
> it should act the same than previously when it was not necessary to add
> anything to junit.jar since that wasn't the packages provider (it was
> junit4osgi)?
>
> Well, the thing is that even thinking the previous assumptions. I included
> to the junit-4.8.1.jar the missing packages. But the same problem with junit
> command. I mean junit command is not available in felix ("command not
> found") even having everything installed and activated. Then I did the same
> inspect:
>
> [ 408] [Active ] [ 1]
> file:/Applications/NetBeans/sges-v3/glassfish/modules/junit-4.8.1.jar
> [ 458] [Active ] [ 1] Apache Felix iPOJO (1.7.0.SNAPSHOT)
> [ 459] [Active ] [ 1] Apache Felix iPOJO OSGi Junit Runner - Swing Gui
> (1.1.0.SNAPSHOT)
> [ 462] [Active ] [ 1] Apache Felix iPOJO Extender Pattern Handler
> (1.5.0.SNAPSHOT)
> [ 463] [Active ] [ 1] Apache Felix iPOJO OSGi Junit Runner
> (1.1.0.SNAPSHOT)
> [ 464] [Active ] [ 1] Apache Felix iPOJO OSGi Junit Runner - Felix
> Command (1.1.0.SNAPSHOT)
> -> inspect s c 464
> Apache Felix iPOJO OSGi Junit Runner - Felix Command (464) provides services:
> -----------------------------------------------------------------------------
> component.class = org.apache.felix.ipojo.junit4osgi.command.JunitCommand
> component.description = <unknown value type>
> component.properties = <unknown value type>
> component.providedServiceSpecifications = org.apache.felix.shell.Command
> factory.name = org.apache.felix.ipojo.junit4osgi.command.JunitCommand
> factory.state = 1
> objectClass = org.apache.felix.ipojo.Factory,
> org.osgi.service.cm.ManagedServiceFactory
> service.id = 44
> service.pid = org.apache.felix.ipojo.junit4osgi.command.JunitCommand
> ->
>
>
> I am not sure but I think that there is a problem trying to have packages
> from junit4osgi and also from junit. but the problem is that I don't know
> how to "force" the export of all needed packages from the junit4osgi project.
> I mean, the manifest is created automatically when compiling the maven
> project from the pom.xml and the metadata.xml files. Mi junit4osgi MANIFEST
> is the entire one above. So Do you know if in that resulting manifest file
> are missing exports? what could cause that problem? and how can I add those
> exports?
>
> Thanks again, I just need this working and do not know what else to do.
>
>
>
>
>
>
>
>
> On Sep 9, 2010, at 8:01 PM, Clement Escoffier wrote:
>
>>
>> On 09.09.2010, at 19:32, Anna Karina Nava Soriano wrote:
>>
>>> I know that about annotations, I already solved it in my tests (it is not a
>>> problem anymore), but I need some classes of junit 4.8.
>>>
>>> I can try your advice, I only need to be sure that if I update the junit
>>> dependency it wont break anything from junit4osgi. Let me check if I
>>> caught the idea... for updating the junit dependency I only need to change
>>> the junit version in felix command pom.xml:
>>> <dependency>
>>> <groupId>junit</groupId>
>>> <artifactId>junit</artifactId>
>>> <version>3.8.1</version>
>>> </dependency>
>>>
>>> I noticed that I already changed that version but in junit4osgi jar.
>>>
>>> Then the question is... is there a problem if I change everything to
>>> junit-4.8.1 or what would be the alternative? adapting to 3.8.1? (this last
>>> option will be more difficult for me, trying to find workarounds for
>>> missing classes in junit-3.8.1
>>>
>>> Thank you very very much! this is important for me!
>>
>>
>> You can safely update to 4.8.1. As this version contains the classes from
>> the 3.8.1.
>>
>> Regards,
>>
>> Clement
>>
>>
>>>
>>>
>>> On Sep 9, 2010, at 7:11 PM, Clement Escoffier wrote:
>>>
>>>> Hi,
>>>>
>>>> junit4osgi embeds junit. So, you can't use a different version. But you
>>>> can easily modify the junit4osgi bundle to expose the missing package /
>>>> update the junit dependency. However, the launcher does not support
>>>> annotations, so, you must use the junit 3 development model.
>>>>
>>>> Regards,
>>>>
>>>> Clement
>>>>
>>>>
>>>> On 09.09.2010, at 18:01, Anna Karina Nava Soriano wrote:
>>>>
>>>>> thanks Richard!!!!
>>>>>
>>>>> Now in the junit-4.8.1.jar MANIFEST I included all the missing packages
>>>>> and the result is:
>>>>> Manifest-Version: 1.0
>>>>> Ant-Version: Apache Ant 1.7.1
>>>>> Export-Package: org.junit.runner.notification,org.junit,
>>>>> org.junit.runner.manipulation,org.junit.runner
>>>>> Created-By: 1.5.0_20-141 (Apple Inc.)
>>>>>
>>>>> Now everithing is able to be installed and started:
>>>>> [ 404] [Active ] [ 1] Apache Felix iPOJO Extender Pattern Handler
>>>>> (1.4.0)
>>>>> [ 405] [Active ] [ 1] Apache Felix iPOJO OSGi Junit Runner - Felix
>>>>> Command (1.0.0)
>>>>> [ 408] [Active ] [ 1]
>>>>> file:/Applications/NetBeans/sges-v3/glassfish/modules/junit-4.8.1.jar
>>>>> [ 409] [Active ] [ 1] Apache Felix iPOJO OSGi Junit Runner - Swing
>>>>> Gui (1.0.0)
>>>>> [ 410] [Active ] [ 1] Apache Felix iPOJO OSGi Junit Runner
>>>>> (1.1.0.SNAPSHOT)
>>>>> [ 412] [Active ] [ 1] Apache Felix iPOJO (1.6.4)
>>>>> [ 428] [Active ] [ 1] Broker Project Services TESTS (1.3)
>>>>>
>>>>> but even having the Felix Command bundle installed and active. I got no
>>>>> junit command :( and previously I was. In fact if I type help
>>>>> -> help
>>>>> bundlelevel
>>>>> cd
>>>>> find
>>>>> headers
>>>>> help
>>>>> inspect
>>>>> install
>>>>> log
>>>>> ps
>>>>> refresh
>>>>> resolve
>>>>> scr
>>>>> shutdown
>>>>> start
>>>>> startlevel
>>>>> stop
>>>>> sysprop
>>>>> uninstall
>>>>> update
>>>>> version
>>>>>
>>>>> see? no junit command :( I haven't changed that bundle at all. I don't
>>>>> know what is happening here. I tried uninstall everything from 404 and
>>>>> reinstalling it but having the same result. May be it is there is a
>>>>> problem if some part of the unit test packages are being exported by
>>>>> junit4osgi and other by the junit library? I don't know how to make
>>>>> junit4osgi treat this packages the same way since its manifest is
>>>>> automatically built when I compile the junit4osgi project
>>>>>
>>>>> Thanks for your supor!
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sep 9, 2010, at 3:34 PM, Richard S. Hall wrote:
>>>>>
>>>>>> On 9/9/10 6:28, Anna Karina Nava Soriano wrote:
>>>>>>> Hello everyone!
>>>>>>>
>>>>>>> Nice tool junit4osgi!
>>>>>>>
>>>>>>> I am working with junit4osgi and needed to extend the JunitExtender
>>>>>>> class to run tests in a particular way (the reason is not important).
>>>>>>> MyJunitExtender is the new class and it extends JunitExtender and only
>>>>>>> overrides the run method. I tested it and this was working fine!
>>>>>>> (obviously I changed metadata.xml to tell the new MyJunitExtender
>>>>>>> class) so far so good.
>>>>>>>
>>>>>>> The thing is that I need now org.junit.internal.JUnitSystem. So in
>>>>>>> MyJunitExtender I added "import org.junit.internal.JUnitSystem;" then
>>>>>>> I compile the project again, and the import-Package in my new MANIFEST
>>>>>>> looks like this:
>>>>>>> ....
>>>>>>> Import-Package: org.apache.felix.ipojo.junit4osgi.helpers, org.junit.i
>>>>>>> nternal, junit.runner, org.apache.felix.ipojo;version=1.6, org.junit.
>>>>>>> runner.notification, javax.xml.parsers, org.osgi.service.packageadmin
>>>>>>> ;version=1.1, org.w3c.dom, junit.textui, org.apache.felix.ipojo.parse
>>>>>>> r;version=1.6, org.junit, junit.extensions, org.junit.runner.manipula
>>>>>>> tion, org.osgi.service.log;version=1.2, junit.framework, org.apache.f
>>>>>>> elix.ipojo.junit4osgi, org.apache.felix.ipojo.architecture;version=1.
>>>>>>> 6, org.junit.runner, org.osgi.framework;version=1.2, org.osgi.service
>>>>>>> .cm;version=1.1, org.apache.felix.ipojo.metadata
>>>>>>> ....
>>>>>>>
>>>>>>> as you can see, the org.junit.internal is there. I install this new
>>>>>>> jar in my Felix (see the last line)
>>>>>>> ....
>>>>>>> [ 320] [Active ] [ 1]
>>>>>>> file:/Applications/NetBeans/sges-v3/glassfish/modules/junit-4.8.1.jar
>>>>>>> [ 326] [Active ] [ 1] Apache Felix iPOJO Extender Pattern
>>>>>>> Handler (1.4.0)
>>>>>>> [ 327] [Installed ] [ 1] Apache Felix iPOJO OSGi Junit Runner -
>>>>>>> Felix Command (1.0.0)
>>>>>>> [ 330] [Installed ] [ 1] Apache Felix iPOJO OSGi Junit Runner -
>>>>>>> Swing Gui (1.0.0)
>>>>>>> [ 332] [Active ] [ 1] Apache Felix iPOJO (1.6.4)
>>>>>>> [ 339] [Installed ] [ 1] Broker Project Services TESTS (1.3)
>>>>>>> [ 354] [Installed ] [ 1] Apache Felix iPOJO OSGi Junit Runner
>>>>>>> (1.1.0.SNAPSHOT)
>>>>>>>
>>>>>>> and when I do "start 354" it keeps saying:
>>>>>>> "org.osgi.framework.BundleException: Unresolved constraint in bundle
>>>>>>> org.apache.felix.ipojo.junit4osgi [354]: package;
>>>>>>> (package=org.junit.internal)"
>>>>>>>
>>>>>>> I know probably there is some stupid thing that I am missing. My junit
>>>>>>> file (you can see it with the id "320") has this manifest:
>>>>>>> "Manifest-Version: 1.0
>>>>>>> Ant-Version: Apache Ant 1.7.1
>>>>>>> Created-By: 1.5.0_20-141 (Apple Inc.)"
>>>>>>
>>>>>> If that's all it has, then it is not a bundle. It needs to, at least,
>>>>>> export its packages.
>>>>>>
>>>>>> -> richard
>>>>>>
>>>>>>> So... does somebody knows what am I doing wrong? I am new in the
>>>>>>> junit4osgi world and I always get kind of lost with all dependencies.
>>>>>>>
>>>>>>> Thank you so much in advance!
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]