Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Equinox » Problems when exporting a product.
Problems when exporting a product. [message #521115] Tue, 16 March 2010 13:54 Go to next message
SMaton  is currently offline SMaton Friend
Messages: 6
Registered: March 2010
Junior Member
Hello everyone,

hopefully this is the right forum Smile

I'm currently developing an application using the eclipse framework and osgi. I've created a .product file for my application containing the configuration and dependencies.

During the entire development cycle I used the "Launch an Ecplipse application" and "Launch an Ecplipse application in Debug mode" buttons which are available on the top right corner of the page that opens when you open the .product file. The application always worked as a charm. I didn't encounter any problems and clicking onto the "Validate..." button doesn't show any problem.

The problem arises when I want to launch an exported application. In fact, I just click onto "Export an Eclipse product" and keep the settings "as is". The application is generated and I can find it in the folder as expected.

When I start the application, it doesn't work as expected. Examining the started bundles via the console reveals that some bundles aren't started. Among those is org.springframework.osgi.extender.

Here's a complete list of all bundles and their state just after starting the application:

osgi> ss

Framework is launched.

id State Bundle
0 ACTIVE org.eclipse.osgi_3.5.2.R35x_v20100126
Fragments=1, 2
1 RESOLVED org.eclipse.equinox.weaving.hook_1.0.0.200905031323
Master=0
2 RESOLVED org.eclipse.persistence.jpa.equinox.weaving_1.1.2.v20090612-
r4475
Master=0
3 ACTIVE be.sidema.amplitude.crams.client.core_0.1.0
4 ACTIVE be.sidema.amplitude.crams.client.investors_0.1.0
5 ACTIVE be.sidema.amplitude.crams.client.reports_0.1.0
6 ACTIVE be.sidema.amplitude.crams.client.transactions_0.1.0
7 ACTIVE be.sidema.amplitude.crams.controller_0.1.0
8 RESOLVED be.sidema.amplitude.crams.log4j_1.0.0
Master=30
9 RESOLVED be.sidema.amplitude.crams.model_0.1.0
10 ACTIVE be.sidema.amplitude.crams.model.jpa_0.1.0
11 RESOLVED be.sidema.shared.databinding_1.0.0
12 RESOLVED be.sidema.shared.osgi_1.0.0
13 ACTIVE com.ibm.icu_4.0.1.v20090822
14 RESOLVED com.jasperassistant.swtjasperviewer_1.1.2
15 RESOLVED com.publicobject.glazedlists_1.8.0
16 RESOLVED com.springsource.antlr_2.7.7
17 RESOLVED com.springsource.com.lowagie.text_2.0.8
18 RESOLVED com.springsource.com.mchange.v2.c3p0_0.9.1.2
19 RESOLVED com.springsource.com.mysql.jdbc_5.1.6
20 RESOLVED com.springsource.javassist_3.3.0.ga
21 RESOLVED com.springsource.javax.persistence_1.0.0
22 RESOLVED com.springsource.javax.transaction_1.1.0
23 RESOLVED com.springsource.javax.validation_1.0.0.CR3
24 RESOLVED com.springsource.javax.xml.stream_1.0.1
25 RESOLVED com.springsource.net.sf.cglib_2.1.3
26 RESOLVED com.springsource.net.sf.ehcache_1.6.0
27 RESOLVED com.springsource.org.aopalliance_1.0.0
28 RESOLVED com.springsource.org.apache.commons.collections_3.2.1
29 RESOLVED com.springsource.org.apache.commons.logging_1.1.1
30 RESOLVED com.springsource.org.apache.log4j_1.2.15
Fragments=8
31 RESOLVED com.springsource.org.aspectj.runtime_1.6.5.RELEASE
32 ACTIVE com.springsource.org.aspectj.weaver_1.6.5.RELEASE
33 RESOLVED com.springsource.org.dom4j_1.6.1
34 RESOLVED com.springsource.org.hibernate.validator_4.0.0.Beta2
35 RESOLVED com.springsource.org.jgroups_2.5.1
36 RESOLVED com.springsource.org.objectweb.asm_1.5.3
37 RESOLVED com.springsource.org.objectweb.asm.attrs_1.5.3
38 RESOLVED com.springsource.slf4j.api_1.5.6
Fragments=39, 40
39 RESOLVED com.springsource.slf4j.jcl_1.5.6
Master=38
40 RESOLVED com.springsource.slf4j.log4j_1.5.6
Master=38
41 RESOLVED com.springsource.slf4j.org.apache.commons.logging_1.5.6
42 RESOLVED com.springsource.slf4j.org.apache.log4j_1.5.6
43 RESOLVED freechart_1.0.0
44 RESOLVED javax.persistence_1.99.0.v200906021518
45 RESOLVED opencvs_1.0.0
46 RESOLVED org.apache.poi_3.2.0
47 RESOLVED org.eclipse.core.commands_3.5.0.I20090525-2000
48 <<LAZY>> org.eclipse.core.contenttype_3.4.1.R35x_v20090826-0451
49 <<LAZY>> org.eclipse.core.databinding_1.2.0.M20090819-0800
50 RESOLVED org.eclipse.core.databinding.beans_1.2.0.I20090525-2000
51 ACTIVE org.eclipse.core.databinding.observable_1.2.0.M20090902-0800

52 <<LAZY>> org.eclipse.core.databinding.property_1.2.0.M20090819-0800
53 ACTIVE org.eclipse.core.expressions_3.4.101.R35x_v20100209
54 <<LAZY>> org.eclipse.core.filesystem_1.2.0.v20090507
Fragments=55
55 RESOLVED org.eclipse.core.filesystem.win32.x86_1.1.0.v20080604-1400
Master=54
56 ACTIVE org.eclipse.core.jobs_3.4.100.v20090429-1800
57 <<LAZY>> org.eclipse.core.resources_3.5.0.v20090512
Fragments=58
58 RESOLVED org.eclipse.core.resources.win32.x86_3.5.0.v20081020
Master=57
59 ACTIVE org.eclipse.core.runtime_3.5.0.v20090525
60 ACTIVE org.eclipse.equinox.app_1.2.1.R35x_v20091203
61 ACTIVE org.eclipse.equinox.common_3.5.1.R35x_v20090807-1100
62 RESOLVED org.eclipse.equinox.ds_1.1.1.R35x_v20090806
63 RESOLVED org.eclipse.equinox.launcher_1.0.201.R35x_v20090715
Fragments=64
64 RESOLVED org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v200905
19
Master=63
65 ACTIVE org.eclipse.equinox.preferences_3.2.301.R35x_v20091117
66 ACTIVE org.eclipse.equinox.registry_3.4.100.v20090520-1800
67 <<LAZY>> org.eclipse.equinox.simpleconfigurator_1.0.101.R35x_v2009080
7-1100
68 <<LAZY>> org.eclipse.equinox.util_1.0.100.v20090520-1800
69 ACTIVE org.eclipse.equinox.weaving.aspectj_1.0.0.200905031323
70 ACTIVE org.eclipse.equinox.weaving.caching_1.0.0.200905031323
71 ACTIVE org.eclipse.equinox.weaving.caching.j9_1.0.0.200905031323
72 ACTIVE org.eclipse.equinox.weaving.springweaver_0.1.0
73 ACTIVE org.eclipse.help_3.4.1.v20090805_35x
74 <<LAZY>> org.eclipse.jdt.core_3.5.0.v_963
75 ACTIVE org.eclipse.jface_3.5.2.M20100120-0800
76 RESOLVED org.eclipse.jface.databinding_1.3.1.M20090826-0800
77 RESOLVED org.eclipse.nebula.widgets.calendarcombo_1.0.0
78 RESOLVED org.eclipse.osgi.services_3.2.0.v20090520-1800
79 RESOLVED org.eclipse.persistence.antlr_1.1.2.v20090612-r4475
80 RESOLVED org.eclipse.persistence.asm_1.1.2.v20090612-r4475
81 RESOLVED org.eclipse.persistence.core_1.1.2.v20090612-r4475
82 RESOLVED org.eclipse.persistence.jpa_1.1.2.v20090612-r4475
Fragments=83
83 RESOLVED org.eclipse.persistence.jpa.equinox_1.1.2.v20090612-r4475
Master=82
84 <<LAZY>> org.eclipse.rcp_3.5.0.v201002111343
85 RESOLVED org.eclipse.swt_3.5.2.v3557f
Fragments=86
86 RESOLVED org.eclipse.swt.win32.win32.x86_3.5.2.v3557f
Master=85
87 RESOLVED org.eclipse.text_3.5.0.v20090513-2000
88 ACTIVE org.eclipse.ui_3.5.2.M20100120-0800
89 ACTIVE org.eclipse.ui.forms_3.4.0.v20090526
90 ACTIVE org.eclipse.ui.workbench_3.5.2.M20100113-0800
91 <<LAZY>> org.eclipse.update.configurator_3.3.0.v20090312
92 RESOLVED org.jasperforge.jasperreports_3.6.0
93 RESOLVED org.springframework.aop_2.5.6.SEC01
94 RESOLVED org.springframework.beans_2.5.6.SEC01
95 RESOLVED org.springframework.context_2.5.6.SEC01
96 RESOLVED org.springframework.core_2.5.6.SEC01
97 RESOLVED org.springframework.jdbc_2.5.6.SEC01
98 RESOLVED org.springframework.orm_2.5.6.SEC01
99 RESOLVED org.springframework.osgi.core_1.2.0
100 RESOLVED org.springframework.osgi.extender_1.2.0
101 ACTIVE org.springframework.osgi.extensions.annotations_1.2.0
102 RESOLVED org.springframework.osgi.io_1.2.0
103 RESOLVED org.springframework.transaction_2.5.6.SEC01


I then manually tried to start all bundles. The only ones I couldn't start are these:

id State Bundle
1 RESOLVED org.eclipse.equinox.weaving.hook_1.0.0.200905031323
Master=0
2 RESOLVED org.eclipse.persistence.jpa.equinox.weaving_1.1.2.v20090612- r4475
Master=0
8 RESOLVED be.sidema.amplitude.crams.log4j_1.0.0
Master=30
39 RESOLVED com.springsource.slf4j.jcl_1.5.6
Master=38
40 RESOLVED com.springsource.slf4j.log4j_1.5.6
Master=38
55 RESOLVED org.eclipse.core.filesystem.win32.x86_1.1.0.v20080604-1400
Master=54
58 RESOLVED org.eclipse.core.resources.win32.x86_3.5.0.v20081020
Master=57
64 RESOLVED org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v200905
19
Master=63
83 RESOLVED org.eclipse.persistence.jpa.equinox_1.1.2.v20090612-r4475
Master=82
86 RESOLVED org.eclipse.swt.win32.win32.x86_3.5.2.v3557f
Master=85
100 RESOLVED org.springframework.osgi.extender_1.2.0

When trying to start "be.sidema.amplitude.crams.log4j" I get this exception:

org.osgi.framework.BundleException: A fragment bundle cannot be started: be.side
ma.amplitude.crams.log4j_1.0.0 [8]
at org.eclipse.osgi.framework.internal.core.BundleFragment.star tWorker(B
undleFragment.java:228)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(Abstrac
tBundle.java:280)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(Abstrac
tBundle.java:272)
at org.eclipse.osgi.framework.internal.core.FrameworkCommandPro vider._st
art(FrameworkCommandProvider.java:253)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.osgi.framework.internal.core.FrameworkCommandInt erpreter.
execute(FrameworkCommandInterpreter.java:155)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.do command(F
rameworkConsole.java:303)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.co nsole(Fra
meworkConsole.java:288)
at org.eclipse.osgi.framework.internal.core.FrameworkConsole.ru n(Framewo
rkConsole.java:224)
at java.lang.Thread.run(Unknown Source)

"be.sidema.amplitude.crams.log4j" has plug-in dependencies on com.springsource.org.apache.log4j, org.eclipse.equinox.weaving.hook, org.eclipse.osgi and org.eclipse.persistence.jpa.equinox.weaving

Now what hits me is the fact that the application perfectly starts and works when starting from within the eclipse framework. I was under the impression (and tests seem to confirm that) that the configuration I create within the .product pages, is used to actually handle the application.

Why is there a difference between the application as it is handled within Eclipse and after it has been exported? Normally the same bundles are used and they're started in the same way, aren't they?

So... sorry if I sound stressed... I am Smile I have to deliver an installable version by tomorrow I while it all perfectly works within Eclipse, this is my second day trying to solve this problem.

FYI here's the config.ini file I "hand made":

#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxF wConfigFileParser
#Tue Mar 16 11:35:31 CET 2010
org.eclipse.update.reconcile=false
eclipse.p2.profile=profile
osgi.framework=file\:plugins/org.eclipse.osgi_3.5.2.R35x_v20 100126.jar
osgi.bundles= \
com.springsource.slf4j.log4j@default:false, \
com.springsource.javax.validation@default:default, \
org.eclipse.equinox.simpleconfigurator@1:true, \
com.springsource.com.lowagie.text@default:default, \
org.eclipse.core.resources.win32.x86@default:false, \
org.eclipse.persistence.asm@default:default, \
com.springsource.org.apache.log4j@default:default, \
org.eclipse.core.filesystem.win32.x86@default:false, \
org.springframework.jdbc@default:default, \
org.eclipse.persistence.antlr@default:default, \
com.springsource.org.hibernate@default:default, \
org.eclipse.ui.forms@default:default, \
org.eclipse.equinox.weaving.caching.j9@default:default, \
org.eclipse.core.runtime.compatibility.auth@default:default, \
com.springsource.javassist@default:default, \
com.springsource.com.mchange.v2.c3p0@default:default, \
org.eclipse.equinox.weaving.hook@default:false, \
com.springsource.org.aspectj.runtime@default:default, \
com.springsource.javax.activation@default:default, \
org.eclipse.equinox.ds@1:true,org.eclipse.equinox.registry@default:default, \
com.springsource.org.objectweb.asm@default:default, \
com.springsource.org.objectweb.asm.attrs@default:default, \
org.eclipse.jdt.core@default:default,org.eclipse.jface@default:default, \
org.springframework.context@default:default, \
com.springsource.org.dom4j@default:default, \
com.springsource.org.hibernate.ejb@default:false, \
org.eclipse.equinox.weaving.aspectj@default:default, \
org.eclipse.ui.workbench@default:default, \
org.eclipse.swt.win32.win32.x86@default:false, \
com.springsource.org.aspectj.weaver@default:default, \
org.eclipse.core.databinding.beans@default:default, \
com.springsource.org.hibernate.annotations.common@default:default, \
com.springsource.org.apache.commons.logging@default:default, \
org.eclipse.nebula.widgets.calendarcombo@default:default, \
org.eclipse.persistence.jpa.equinox.weaving@default:false, \
org.springframework.osgi.io@default:default, \
org.eclipse.core.contenttype@default:default, \
org.springframework.osgi.core@default:default, \
com.springsource.javax.xml.stream@default:default, \
org.eclipse.equinox.weaving.caching@default:default, \
org.eclipse.core.runtime@default:true, \
org.eclipse.persistence.jpa.equinox@default:false, \
com.springsource.slf4j.org.apache.commons.logging@default:default, \
org.eclipse.text@default:default, \
com.springsource.net.sf.ehcache@default:default, \
org.eclipse.equinox.app@default:default, \
org.eclipse.equinox.weaving.springweaver@default:default, \
org.eclipse.equinox.common@2:true,org.eclipse.osgi@-1:true, \
org.eclipse.equinox.launcher@default:default, \
com.springsource.slf4j.org.apache.log4j@default:default, \
com.springsource.org.hsqldb@default:default, \
org.eclipse.osgi.services@default:default, \
org.eclipse.equinox.util@default:default, \
org.eclipse.core.databinding.observable@default:default, \
com.springsource.org.aopalliance@default:default, \
org.springframework.osgi.extender@default:default, \
org.eclipse.rcp@default:default, \
org.eclipse.ui@default:default, \
org.eclipse.equinox.preferences@default:default, \
org.eclipse.jface.databinding@default:default, \
org.eclipse.core.filesystem@default:default, \
org.eclipse.update.configurator@3:true, \
com.springsource.net.sf.cglib@default:default, \
org.eclipse.persistence.jpa@default:default, \
org.eclipse.persistence.core@default:default, \
org.eclipse.core.resources@default:default, \
com.springsource.antlr@default:default, \
com.springsource.javax.persistence@default:default, \
org.eclipse.core.jobs@default:default, \
org.eclipse.equinox.launcher.win32.win32.x86@default:false, \
com.springsource.com.mysql.jdbc@default:default, \
com.springsource.org.apache.commons.collections@default:default, \
com.springsource.slf4j.jcl@default:false, \
com.ibm.icu@default:default, \
com.springsource.javax.transaction@default:default, \
org.eclipse.help@default:default, \
org.springframework.core@default:default, \
javax.persistence@default:default, \
com.springsource.org.hibernate.validator@default:default, \
org.eclipse.core.databinding.property@default:default, \
com.springsource.javax.xml.bind@default:default, \
org.eclipse.core.databinding@default:default, \
org.eclipse.core.expressions@default:default, \
org.springframework.osgi.extensions.annotations@default:default, \
org.springframework.aop@default:default, \
org.springframework.orm@default:default, \
org.eclipse.core.commands@default:default, \
com.springsource.slf4j.api@default:default, \
org.springframework.beans@default:default, \
org.springframework.transaction@default:default, \
com.springsource.org.jgroups@default:default, \
org.eclipse.swt@default:default, \
com.springsource.org.hibernate.annotations@default:false, \
be.sidema.amplitude.crams.client.core@default:default, \
be.sidema.amplitude.crams.log4j@default:false, \
be.sidema.amplitude.crams.client.reports.base@default:default, \
be.sidema.amplitude.crams.model@default:default, \
be.sidema.amplitude.crams.controller@default:default, \
com.jasperassistant.swtjasperviewer@default:default, \
be.sidema.amplitude.crams.client.investors@default:default, \
be.sidema.shared.osgi@default:default, \
com.publicobject.glazedlists@default:default, \
be.sidema.shared.databinding@default:default, \
org.jasperforge.jasperreports@default:default, \
be.sidema.amplitude.crams.model.jpa@default:default, \
org.apache.poi@default:default
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.e clipse.equinox.simpleconfigurator/bundles.info
eclipse.product=be.sidema.amplitude.crams.client.core.produc t
osgi.splashPath=platform\:/base/plugins/be.sidema.amplitude. crams.client.core
osgi.bundles.defaultStartLevel=4
osgi.framework.extensions=reference\:file\:org.eclipse.equin ox.weaving.hook_1.0.0.200905031323.jar,reference\:file\:org. eclipse.persistence.jpa.equinox.weaving_1.1.2.v20090612-r447 5.jar
eclipse.p2.data.area=@config.dir/../p2/
eclipse.application=be.sidema.amplitude.crams.client.core.ap plication


Has anyone encountered a similar problem and what can I do to pinpoint down why it doesn't start as expected?

Best regards,
Stefan
Re: Problems when exporting a product. [message #521145 is a reply to message #521115] Tue, 16 March 2010 14:58 Go to previous messageGo to next message
Thomas Watson is currently offline Thomas WatsonFriend
Messages: 503
Registered: July 2009
Senior Member
I think the issue is in your custom config.ini. The following is not supported by the runtime

com.springsource.antlr@default:default,

I think the "default" string is something used by PDE to mark what should be filled in when actually running the application. Also I would not expect you to have to set all these bundles in your osgi.bundles property if you are using simpleconfigurator. I assume you are because you have:

org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.e clipse.equinox.simpleconfigurator/bundles.info

When you launch from Eclipse PDE will general a config.ini for you in your workspace at:

<workspace location>/
.metadata/org.eclipse.core.pde/
<launch config name>/configuration/config.ini

Take a look at this config.ini and see how it is different from the config.ini you generate for the product export.

You may also want to try the PDE forum.

Tom.
Re: Problems when exporting a product. [message #521323 is a reply to message #521115] Wed, 17 March 2010 09:38 Go to previous message
SMaton  is currently offline SMaton Friend
Messages: 6
Registered: March 2010
Junior Member
Hi there,

I'm back just to tell you that the issue has been solved. In fact, I had to do 3 changes to make the application work after exporting (thanks to Marcus who helped me out here):

1. I had to remove the slf4j.jcl bundle. It was creating a stack overflow. I suppose it conflicted with other logging facilities.

2. We turned of the metadata repository upon export.

3. Marcus and I found out that the generated application ini actually contained invalid information. The content of the generated ini-file was:
"-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console"

As you can see, neither the OS nor any other information held valid entries. As Marcus pointed out, this seems to be a known bug under Mac OSX. That's why he checked the file out and discovered the invalid entries.

After having done both of the above mentioned changes, the application ran fine. Unfortunately, I have to re-do the third changement after any product export.

Thanks for helping,
Stefan
Previous Topic:automatic update of workspace bundles
Next Topic:Storing preferences across bundle versions
Goto Forum:
  


Current Time: Fri Apr 19 07:59:04 GMT 2024

Powered by FUDForum. Page generated in 0.01970 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top