I opened bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=306010 to
discuss the issue some more.

I am not sure if it is possible, but you could try to use the
org.eclipse.pde.junit.runtime.coretestapplicationnonmain application
instead.  The problem is I don't know how you use that application when
launching a Junit Plug-in Test from eclipse.  I use the
org.eclipse.pde.junit.runtime.coretestapplicationnonmain to start session
tests for the Eclipse Application container.  But I would hope there is a
more simple way to do this if you do not want to or need to use session
tests.

For now you may still need to mock up an IApplicationContext.  I have heard
that this can be done easily by using easy mock instead of implementing the
interface yourself.

Tom




|------------>
| From:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |zhu kane <kane...@gmail.com>                                                 
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| To:        |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |"General development mailing list of the Eclipse project." 
<eclipse-...@eclipse.org>                                                       
       |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Cc:        |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |equinox-dev@eclipse.org, Cross project issues 
<cross-project-issues-...@eclipse.org>                                          
                    |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Date:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |03/15/2010 10:31 PM                                                          
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Subject:   |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |[equinox-dev] Re: [eclipse-dev] New API on IApplicationContext               
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|





Hi Thomas,

We used to mock a context object to start the application in the junit
test. I tried to migrate the code using ApplicationDescriptor to avoid
break caused by the changes of IApplicationContext.
However, the ApplicationDescriptor.launch always fails due to the built-in
application 'org.eclipse.pde.junit.runtime.coretestapplication' is
LOCKED_SINGLETON_GLOBAL_RUNNING. It doesn't allow running other app in the
same time.
Any idea for it?

org.osgi.service.application.ApplicationException: A singleton application
instance is already running:
org.eclipse.pde.junit.runtime.coretestapplication.0
    at org.eclipse.equinox.internal.app.EclipseAppContainer.lock
(EclipseAppContainer.java:481)
    at
org.eclipse.equinox.internal.app.EclipseAppDescriptor.createAppHandle
(EclipseAppDescriptor.java:190)
    at org.eclipse.equinox.internal.app.EclipseAppDescriptor.launchSpecific
(EclipseAppDescriptor.java:90)
    at org.osgi.service.application.ApplicationDescriptor.launch
(ApplicationDescriptor.java:315)

Best Regards
Kane


On Wed, Mar 3, 2010 at 11:19 PM, Thomas Watson <tjwat...@us.ibm.com> wrote:
  Implementers of org.eclipse.equinox.app.IApplicationContext interface
  please read on. Otherwise you can safely ignore this message.

  First of all, what are you doing implementing an interface that has the
  @noimplement javadoc tag? It appears there are some cases where clients
  have found reasons to implement this interface. In most all cases I think
  it can be avoided by proper usage of the
  org.osgi.service.application.ApplicationDescriptor service to launch
  other applications instead of mocking up a context and calling an
  application implementation directly.

  If you find you are mocking up an IApplicationContext then you will be
  affected by the changes in bug
  https://bugs.eclipse.org/bugs/show_bug.cgi?id=304361 where new API was
  added to IApplicaitonContext. You will need to start implementing the new
  methods on this interface.

  Let me know if you have any questions.

  Tom


  _______________________________________________
  eclipse-dev mailing list
  eclipse-...@eclipse.org
  To change your delivery options, retrieve your password, or unsubscribe
  from this list, visit
  https://dev.eclipse.org/mailman/listinfo/eclipse-dev

_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

<<inline: graycol.gif>>

<<inline: ecblank.gif>>

_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to