Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [birt-dev] Running BIRT performance tests - how to run the testsoutside Eclipse workbench (resolved)

Thanks for all the debugging pointers.

The problem was caused because I had
ReportEngine\plugins\org.eclipse.core.runtime_3.2.0.v20060601b.jar in
my classpath. This jar is required by the performance test code which
imports "org.eclipse.core.runtime.IPlatformRunnable" class to provide
the entry point to plugin. For running tests outside the Eclipse
workbench, this is not needed. After removing this import and the
eclipse core plugin jar from my classpath, I am able to run the
performance tests from outside the Eclipse workbench.

As a side note, I realized it is this additional plugin jar in the
classpath which is creating problems in report engine startup when I
found that the simple java example which used to work previously was
giving me similar NPE when run in this environment. I plan to add this
piece of classpath setting information to the wiki example at
http://wiki.eclipse.org/index.php/Simple_Execute

I have not understood why having a correct version of a plugin jar in
the classpath creates problems in OSGi loading. I would appreciate if
anyone can give me some pointers to help me understand this better.

From what I have seen, I am assuming the performance tests are meant
to be run only from within the Eclipse workbench. Maybe there is a
better way to do this but if someone else is interested to run the
tests from command-line, here are the steps I followed using BIRT
2.1.1 release:

1. Modify the source file
org.eclipse.birt.test.performance.PerformanceExecutor.java to not
implement org.eclipse.core.runtime.IPlatformRunnable interface and
remove the corresponding import statement.

2. Modify createReportEngine method in
org.eclipse.birt.test.performance.ExecutionContext.java to set the
engine home to the BIRT runtime report engine folder. e.g:

config.setEngineHome("C:/birt-runtime-2_1_1/ReportEngine");
Platform.startup( config );

instead of

Platform.startup( new PlatformConfig( ) );

3. Set the classpath with the following:
* classes from org.eclipse.birt.test.performance (e.g,
C:\birt\src\org.eclipse.birt.test.performance\bin)
* all jars from birt-runtime-2_1_1\ReportEngine\lib folder

4. Copy the iText* jars to com.lowagie.itext\lib folder under
birt-runtime-2_1_1\ReportEngine\plugins folder.

5. Run the test (java org.eclipse.birt.test.performance.PerformanceExecutor).

Thanks,
Deepa

On 1/31/07, Venkateswaran Iyer <viyer@xxxxxxxxxxx> wrote:

Another possibility could be that dependent plugins are not being
loaded. You can check the dependent plugins Eclipse and verifying the
plugin dependencies tab.

-----Original Message-----
From: Deepa Remesh [mailto:dremesh@xxxxxxxxx]
Sent: Tuesday, January 30, 2007 5:22 PM
To: Venkateswaran Iyer
Cc: Sunitha Kambhampati; birt-dev@xxxxxxxxxxx
Subject: Re: [birt-dev] Running BIRT performance tests - how to run the
testsoutside Eclipse workbench?

Thanks for the quick response. I tried after deleting the cached
information from under configuration folder. It still gives me the
same error.

I also see this below the stack trace in the log file:
!ENTRY org.eclipse.osgi 4 0 2007-01-30 16:46:05.002
!MESSAGE Bundle
initial@reference:file:plugins/org.eclipse.birt.core_2.2.0.v20061221.jar
/
[3] is not active.

I have tried this with 2.1.1 as well but get similar errors about
bundle being not active there too. I'll look some more to confirm I do
not have any version mismatches in my environments.

Meanwhile, if there are any other suggestions, please let me know.

Regards,
Deepa

On 1/30/07, Venkateswaran Iyer <viyer@xxxxxxxxxxx> wrote:
>
> This is usually the case if there are incompatible plugins in your
> environment. You can try removing the cached plugins and see if that
> helps. OSGi caches the plugins for reuse. (I am not absolutely sure
but
> I think it is cached under OSGi platform / configuration folder).
>
>
> -----Original Message-----
> From: Deepa Remesh [mailto:dremesh@xxxxxxxxx]
> Sent: Tuesday, January 30, 2007 3:59 PM
> To: Venkateswaran Iyer
> Cc: Sunitha Kambhampati; birt-dev@xxxxxxxxxxx
> Subject: Re: [birt-dev] Running BIRT performance tests - how to run
the
> testsoutside Eclipse workbench?
>
> Thanks a lot for the suggestion. I can see failures in the log files
> in the configuration directory. However, I haven't been able to
> resolve it yet.
>
> The failure stack trace is:
>
> org.osgi.framework.BundleException: The activator
> org.eclipse.birt.core.internal.plugin.CorePlugin for bundle
> org.eclipse.birt.core is invalid
>         at
>
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActiva
> tor(AbstractBundle.java:141)
>         at
>
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleC
> ontextImpl.java:970)
>         at
>
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHo
> st.java:327)
>         at
>
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractB
> undle.java:350)
>         at
>
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framewor
> k.java:1115)
>         at
>
org.eclipse.osgi.framework.internal.core.PackageAdminImpl.resumeBundles(
> PackageAdminImpl.java:255)
>         at
>
org.eclipse.osgi.framework.internal.core.PackageAdminImpl.doResolveBundl
> es(PackageAdminImpl.java:225)
>         at
>
org.eclipse.osgi.framework.internal.core.PackageAdminImpl$1.run(PackageA
> dminImpl.java:164)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NoClassDefFoundError:
> org/osgi/framework/BundleActivator
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>         at
>
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>         ...
>
> I looked through BIRT archives for the above error and saw this post:
> http://dev.eclipse.org/newslists/news.eclipse.birt/msg10840.html
>
> In the post, a similar error was resolved by adding only the jars from
> runtime ReportEngine/lib to the classpath. In my case, I have the jars
> from  runtime ReportEngine/lib and also the following jar
> ReportEngine/plugins/org.eclipse.core.runtime_3.3.100.v20061204.in my
> classpath. If I do not add the eclipse runtime jar, I get a
> "java.lang.NoClassDefFoundError:
> org/eclipse/core/runtime/IPlatformRunnable".
>
> Any other pointers/suggestions to resolve this?
>
> Thanks,
> Deepa
>
>
> On 1/30/07, Venkateswaran Iyer <viyer@xxxxxxxxxxx> wrote:
> >
> > You might want to look at the OSGi platform / configuration
directory
> to
> > see if there is any indication of failure to load extensions.
> >
> > -----Original Message-----
> > From: birt-dev-bounces@xxxxxxxxxxx
> [mailto:birt-dev-bounces@xxxxxxxxxxx]
> > On Behalf Of Deepa Remesh
> > Sent: Tuesday, January 30, 2007 12:25 PM
> > To: Sunitha Kambhampati
> > Cc: birt-dev@xxxxxxxxxxx
> > Subject: Re: [birt-dev] Running BIRT performance tests - how to run
> the
> > testsoutside Eclipse workbench?
> >
> > Thanks for the suggestion Sunitha. I had tried setting the BIRT_HOME
> > but it didn't work for me. I still got the same NPE.
> >
> > The platform startup looks successful. I mean I don't get any
> > exceptions there. But the factory object returned by
> > "Platform.createFactoryObject(
> > IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );" is itself
> > null. And so the createReportEngine method in ExecutionContext
returns
> > null which results in the NPE later.
> >
> > Any help is appreciated.
> >
> > Thanks,
> > Deepa
> >
> > On 1/30/07, Sunitha Kambhampati <ksunithaghm@xxxxxxxxx> wrote:
> > > Thanks Deepa for looking into this.
> > >
> > > Deepa Remesh wrote:
> > >
> > > > Hi,
> > > >
> > > > I have been trying to run the performance tests outside Eclipse
> > using
> > > > the jars and plugins from the 2.2M4 runtime package. I am using
> the
> > > > performance test classes from my 2.2 source build. I have copied
> the
> > > > configuration and plugins folder from my runtime ReportEngine
> folder
> > > > to the folder where I am running the tests.
> > > >
> > > > I get a NullPointerException because the engine creation fails
> > (engine
> > > > is null) in
> org.eclipse.birt.test.performance.ExecutionContext.java.
> > > >
> > > > The exception is
> > > > java.lang.NullPointerException
> > > >        at
> > > >
org.eclipse.birt.test.performance.RunThread.run(RunThread.java:80)
> > > >
> > > Just an idea in case you have not already tried:
> > > can we set the BIRT_HOME using the config.setEngineHome in
> > > ExecutionContext.createReportEngine.
> > >
> > >     IReportEngine createReportEngine( EngineConfig config )
> > >             throws BirtException
> > >     {
> > >         if ( config == null )
> > >             config = new EngineConfig( );
> > >         config.setEngineHome( System.getProperty("BIRT_HOME"));
//
> > SET
> > > ENGINE HOME.
> > >         Platform.startup( new PlatformConfig( ) );
> > > ......
> > >
> > > Thanks,
> > > Sunitha.
> > >
> > > > Has anyone tried to run the performance test outside Eclipse
> > > > workbench? If yes, I would appreciate if you can share the steps
> to
> > > > set this up.
> > > >
> > > > Thanks,
> > > > Deepa
> > > >
> > > >
> > > > On 1/24/07, Deepa Remesh <dremesh@xxxxxxxxx> wrote:
> > > >
> > > >> Hi,
> > > >>
> > > >> I can now run the perf tests successfully using the source from
> > head.
> > > >> I think the problem was the xerces plugin in my environment. I
> had
> > > >> downloaded this plugin project for building BIRT viewer. When I
> > > >> unchecked this plugin (from list of plugins in the Eclipse run
> > > >> application window) and ran the test, all cases passed.
> > > >>
> > > >> I hope this is okay.
> > > >>
> > > >> Thanks,
> > > >> Deepa
> > > >>
> > > >>
> > > >> On 1/22/07, Deepa Remesh <dremesh@xxxxxxxxx> wrote:
> > > >> > Hi,
> > > >> >
> > > >> > I tried to run the performance tests in
> > > >> > org.eclipse.birt.test.performance using the instructions
> > specified in
> > > >> > org.eclipse.birt.test.performance.readme file. I could get
the
> > html
> > > >> > cases (case-1threads-html, case-10threads-html) working but I
> get
> > the
> > > >> > following linkage error for the pdf case:
> > > >> >
> > > >> > Begin, Thread[name="RenderAll", id="0"]
> > report[Corporation.rptdesign]
> > > >> > Exception in thread "RenderAll" java.lang.LinkageError:
loader
> > > >> > constraints violated when linking org/w3c/dom/css/CSSValue
> class
> > > >> >
> > > >> > It looks like I have some mismatch in the jars containing
above
> > class
> > > >> > but I have not been able to figure a way out. I built the
> source
> > and
> > > >> > ran the test from the same Eclipse environment. I am using
BIRT
> > 2.2M4
> > > >> > build and source from the head. From what I see, in the BIRT
> > > >> > environment, this class can be present in xml-apis.jar in
> > > >> > org.apache.xerces plugin and also part of jdk. But so far, I
> have
> > not
> > > >> > been able to sort the jar dependency to get the pdf case
> working.
> > > >> >
> > > >> > I would appreciate if someone can help me to sort this out.
> > > >> >
> > > >> > Thanks,
> > > >> > Deepa
> > > >> >
> > > >> >
> > > >>
> >
>
------------------------------------------------------------------------
> > -----------------------------------------------------------
> > > >>
> > > >> > Stack trace
> > > >> >
> > > >>
> >
>
------------------------------------------------------------------------
> > -----------------------------------------------------------
> > > >>
> > > >> > Begin, Thread[name="RenderAll", id="0"]
> > report[Corporation.rptdesign]
> > > >> > Exception in thread "RenderAll" java.lang.LinkageError:
loader
> > > >> > constraints violated when linking org/w3c/dom/css/CSSValue
> class
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.emitter.pdf.PDFEmitter$PDFRender.newPage(
> > PDFEmitter.java:635)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.emitter.pdf.PDFEmitter$PDFRender.startCon
> > tainer(PDFEmitter.java:569)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.layout.area.impl.ContainerArea.accept(Con
> > tainerArea.java:64)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.emitter.pdf.PDFEmitter.startPage(PDFEmitt
> > er.java:112)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.emitter.CompositeContentEmitter.startPage
> > (CompositeContentEmitter.java:285)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.layout.pdf.PDFPageLM.endPage(PDFPageLM.ja
> > va:281)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.layout.pdf.PDFPageLM.layout(PDFPageLM.jav
> > a:204)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.layout.pdf.PDFReportLayoutEngine.layoutRe
> > port(PDFReportLayoutEngine.java:56)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.layout.pdf.PDFReportLayoutEngine.layout(P
> > DFReportLayoutEngine.java:72)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.api.impl.RenderTask$InnerRender.render(Re
> > nderTask.java:434)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.api.impl.RenderTask$PageRangeRender.rende
> > r(RenderTask.java:540)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.jav
> > a:350)
> > > >>
> > > >> >         at
> > > >>
> >
>
org.eclipse.birt.test.performance.RenderThread.run(RenderThread.java:181
> > )
> > > >>
> > > >> >
> > > >>
> > > > _______________________________________________
> > > > birt-dev mailing list
> > > > birt-dev@xxxxxxxxxxx
> > > > https://dev.eclipse.org/mailman/listinfo/birt-dev
> > > >
> > >
> > > _______________________________________________
> > > birt-dev mailing list
> > > birt-dev@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/birt-dev
> > >
> > _______________________________________________
> > birt-dev mailing list
> > birt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/birt-dev
> >
>



Back to the top