Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] tycho-demo pom first: the bundle except test bundle not started

Why do you think Tycho should activate the bundle? The bundle is not
configured to be activated in pom.xml and you do not want to let OSGi
framework to automatically activate the bundle either. As far as I can
tell, the bundle is not expected to be activated.

--
Regards,
Igor

On 12-07-23 2:30 AM, Guofeng Zhang wrote:
I added " tycho.demo.itp02.pomfirst-bundle-impl " to the test bundle's manifest using Require-Bundle and also need to add "tycho.demo.itp02.pomfirst-bundle-impl" to the <bundleStartLevel> of the test bundle. Then the test runs successfully.

For the impl bundle, using "Bundle-ActivationPolicy: lazy" might not be appropriate. So my question is why " Bundle-ActivationPolicy: lazy" is required for tycho to run the tests?

-----Original Message-----
From: tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Guofeng Zhang
Sent: Monday, July 23, 2012 12:40 PM
To: Tycho user list
Subject: Re: [tycho-user] tycho-demo pom first: the bundle except test bundle not started

Igor,

You are right. Adding both both Bundle-Activator and Bundle-ActivationPolicy solve the issue.

But I wonder if it works well for organizing bundles into interfaces-only bundles and implementation bundles, so I refactor pomfirst-bundle into pomfirst-bundle-api (only including PomFirst interface) and pomfirst-bundle-impl (including the implementation of PomFirst interface). The PomFirst service is registered in the implementation bundle. Now the test bundle failed because PomFirst service is not registered (the activator in pomfirst-bundle-impl not started).

This time even I added "tycho.demo.itp02.pomfirst-bundle-impl" to the <bundleStartLevel> of the test bundle, its activator still not started.

Can you check how tycho test works in this case?

https://github.com/guofengzh/tycho-pom-first-test2

Thanks for your help.

Guofeng


-----Original Message-----
From: tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Igor Fedorenko
Sent: Thursday, July 19, 2012 7:19 PM
To: tycho-user@xxxxxxxxxxx
Subject: Re: [tycho-user] tycho-demo pom first: the bundle except test bundle not started

Like I said, you need to specify both Bundle-Activator and Bundle-ActivationPolicy.

http://wiki.osgi.org/wiki/Bundle-ActivationPolicy
http://wiki.eclipse.org/Lazy_Start_Bundles

--
Regards,
Igor

On 12-07-18 10:22 PM, Guofeng Zhang wrote:
Here is the link to my projects:
     https://github.com/guofengzh/tycho-pom-first-test

thanks!

-----Original Message-----
From: tycho-user-bounces@xxxxxxxxxxx
[mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Igor Fedorenko
Sent: Wednesday, July 18, 2012 4:00 PM
To: Tycho user list; Tycho user list
Subject: Re: [tycho-user] tycho-demo pom first: the bundle except test
bundle not started

I'll need a small standalone example project to answer this question.
--
Sent from my SGS

Guofeng Zhang <guofeng@xxxxxxxxx> wrote:

Igor,

Add <bundleStartlevel> to pom.xml of tycho.demo.itp02.bundle.tests as
the following solve the issue, that is, Activators are launched and
the services are registered successfully. Now the test passed.

But I wonder why I have to add them explicitly. I have other similar
projects including a test project that are all developed as Eclipse
Plugin projects, but I don't need to add <bundleStartLevel> to the
test project's pom and the test run successfully.

          <bundleStartLevel>
               <bundle>
                  <id>tycho.demo.itp02.pomfirst-thirdparty</id>
                  <level>4</level>
                  <autoStart>true</autoStart>
               </bundle>
               <bundle>
                  <id>tycho.demo.itp02.pomfirst-bundle</id>
                  <level>4</level>
                  <autoStart>true</autoStart>
               </bundle>
               <bundle>
                  <id>tycho.demo.itp02.bundle</id>
                  <level>4</level>
                  <autoStart>true</autoStart>
               </bundle>
            </bundleStartLevel>		

Thanks for your help.

Guofeng


-----Original Message-----
From: tycho-user-bounces@xxxxxxxxxxx
[mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Igor Fedorenko
Sent: Tuesday, July 17, 2012 6:02 PM
To: tycho-user@xxxxxxxxxxx
Subject: Re: [tycho-user] tycho-demo pom first: the bundle except
test bundle not started

Did you add Bundle-Activator and Bundle-ActivationPolicy to relevant
bundle manifests? For pom-first projects this should be done through
pom.xml configuration, check maven-bundle-plugin documentation for
more details.

If you really need to force start bundles during test execution, you
can do this with <bundleStartLevel> tycho-surefire-plugin
configuration parameter, something like

    ...
    <bundleStartLevel>
      <plugin>
        <id>...</id>
        <level>4</level>
        <autoStart>true</autoStart>
      </plugin>
    </bundleStartLevel>
    ...


--
Regards,
Igor

On 12-07-17 12:05 AM, Guofeng Zhang wrote:
Hi,

I clone the tycho demo application and tried itp02 for pom first
dependency.

The demo works well following the instruction on

http://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts.

Now I make some modification to the demo. I let PomFirst and ITP02
to

be a registered service by its Activator. The IT02Test changed as
the
following:

public class ITP02Test {

       @Test

       public void basic() {

           ITP02 testee = getITP02();

           Assert.assertEquals("maven-bundle-plugin",
testee.getMessage());

       }

               private ITP02 getITP02() {

                               ServiceReference<ITP02> ref =
Activator.getContext().getServiceReference(ITP02.class ) ;

                               return
Activator.getContext().getService(ref );

               }

}

When run the test by Maven, I got the following error:

Tests in error:

     basic(tycho.demo.itp02.bundle.tests.ITP02Test): A null service
reference is not allowed.

I think this is because pomfirst-bundle and tycho.demo.itp02.bundle
are not started (not console output from their activators), so the
required services are not registered.

I cannot figure out why the two bundles are not started, by
analyzing

config.ini, the two bundles are listed in osgi.bundles, but without
@4:start.

How to solve this issue?

Thanks for your help.

Guofeng



_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user


_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user

_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user


_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user



Back to the top