You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Charles Moulliard <ch...@gmail.com> on 2016/02/26 18:05:13 UTC

Use @RunWith(PaxExam.class) with a ParentRunner

Hi,

I'm developing a Test Case where the Junit ParentRunner is used to setup a
server, load test info, ... before to execute the test case but I'm faced
to the problem that I don't see how to launch the PAx Exam OSGI Container.

Ideally, my class should be designed as such

@RunWith(PaxExam.class)
public class GatewayRestOSGITester extends ParentRunner<TestInfo> {

but of course, the OSGI container will not be created

Is there a workaround that I could use to launch the OSGI Karaf container
even if we don't use @RunWith(PaxExam.class) ?

FYI, I have tried to use the ExamSystem but unfortunately @Inject doesn't
work in this case

Option[] opts = options.toArray(new Option[options.size()]);
        ExamSystem system = PaxExamRuntime.createServerSystem(opts);

Any ideas are welcome ;-)

Regards,
-- 
Charles Moulliard
Apache Committer & PMC / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io

Re: Use @RunWith(PaxExam.class) with a ParentRunner

Posted by Charles Moulliard <ch...@gmail.com>.
Is it possible to retrieve the BundleContext without @Inject annotation
when we launch the Pax Exam server as such in a class ?

public class GatewayRestOSGITester extends ParentRunner<TestInfo> {

    @Inject
    protected BundleContext bundleContext;

   ...

    private void startServer() {
        try {
            Option[] options = KarafConfiguration.config();
            ExamSystem system = DefaultExamSystem.create(options);
            testContainer = PaxExamRuntime.createContainer(system);
            testContainer.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

       protected void initWebListener() {
        webListener = new WebListenerImpl();
        bundleContext.registerService(WebListener.class, webListener,
null); ///////////// BundleContext is NULL
    }



On Fri, Feb 26, 2016 at 6:05 PM, Charles Moulliard <ch...@gmail.com> wrote:

> Hi,
>
> I'm developing a Test Case where the Junit ParentRunner is used to setup a
> server, load test info, ... before to execute the test case but I'm faced
> to the problem that I don't see how to launch the PAx Exam OSGI Container.
>
> Ideally, my class should be designed as such
>
> @RunWith(PaxExam.class)
> public class GatewayRestOSGITester extends ParentRunner<TestInfo> {
>
> but of course, the OSGI container will not be created
>
> Is there a workaround that I could use to launch the OSGI Karaf container
> even if we don't use @RunWith(PaxExam.class) ?
>
> FYI, I have tried to use the ExamSystem but unfortunately @Inject doesn't
> work in this case
>
> Option[] opts = options.toArray(new Option[options.size()]);
>         ExamSystem system = PaxExamRuntime.createServerSystem(opts);
>
> Any ideas are welcome ;-)
>
> Regards,
> --
> Charles Moulliard
> Apache Committer & PMC / Architect @RedHat
> Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io
>
>


-- 
Charles Moulliard
Apache Committer & PMC / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io