You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by lbu <lb...@gmail.com> on 2012/10/19 16:14:57 UTC

Branding the Console issue

Hi,
on Karaf 2.3.0, I've created a simple jar to brand the console according to
the developer guide and what I've just noticed is that:

if in $KARAF_HOME/etc/custom.properties I put a semicolon after
org.apache.karaf.branding as per the documentation, karaf fails to start:

[luca@jupiter bin]# ./karaf 
karaf: Ignoring predefined value for KARAF_HOME
ERROR: Error parsing system bundle export statement:
org.osgi.framework.startlevel;uses:="org.osgi.framework";version="1.0",
org.osgi.framework.wiring;uses:="org.osgi.resource,org.osgi.framework";version="1.1",
org.osgi.framework.hooks.bundle;uses:="org.osgi.framework";version="1.1",
org.osgi.framework.hooks.service;uses:="org.osgi.framework";version="1.1",
org.osgi.framework.hooks.resolver;uses:="org.osgi.framework.wiring";version="1.0",
org.osgi.framework.launch;uses:="org.osgi.framework";version="1.1",
org.osgi.framework.namespace;uses:="org.osgi.resource";version="1.0",
org.osgi.framework;version="1.7",org.osgi.framework.hooks.weaving;uses:="org.osgi.framework.wiring";version="1.0",org.osgi.resource;version="1.0",org.osgi.service.url;version="1.0",org.osgi.service.startlevel;uses:="org.osgi.framework";version="1.1",org.osgi.service.packageadmin;uses:="org.osgi.framework";version="1.2",org.osgi.service.url;version="1.0",
org.osgi.util.tracker;uses:="org.osgi.framework";version="1.5.1",
org.apache.karaf.jaas.boot;version="2.3.0",
org.apache.karaf.jaas.boot.principal;version="2.3.0",
org.apache.karaf.version;version="2.3.0", javax.accessibility,
javax.activation;version="1.1", javax.activity,
javax.annotation;version="1.1", javax.annotation.processing;version="1.1",
javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio,
javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp,
javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream,
javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element,
javax.lang.model.type, javax.lang.model.util, javax.management,
javax.management.loading, javax.management.modelmbean,
javax.management.monitor, javax.management.openmbean,
javax.management.relation, javax.management.remote,
javax.management.remote.rmi, javax.management.timer, javax.naming,
javax.naming.directory, javax.naming.event, javax.naming.ldap,
javax.naming.spi, javax.net, javax.net.ssl, javax.print,
javax.print.attribute, javax.print.attribute.standard, javax.print.event,
javax.rmi, javax.rmi.CORBA, javax.rmi.ssl, javax.script,
javax.security.auth, javax.security.auth.callback,
javax.security.auth.kerberos, javax.security.auth.login,
javax.security.auth.spi, javax.security.auth.x500, javax.security.cert,
javax.security.sasl, javax.sound.midi, javax.sound.midi.spi,
javax.sound.sampled, javax.sound.sampled.spi, javax.sql, javax.sql.rowset,
javax.sql.rowset.serial, javax.sql.rowset.spi, javax.swing,
javax.swing.border, javax.swing.colorchooser, javax.swing.event,
javax.swing.filechooser, javax.swing.plaf, javax.swing.plaf.basic,
javax.swing.plaf.metal, javax.swing.plaf.multi, javax.swing.plaf.synth,
javax.swing.table, javax.swing.text, javax.swing.text.html,
javax.swing.text.html.parser, javax.swing.text.rtf, javax.swing.tree,
javax.swing.undo, javax.tools, javax.transaction; javax.transaction.xa;
partial=true; mandatory:=partial, javax.xml, javax.xml.bind;version="2.2.1",
javax.xml.bind.annotation;version="2.2.1",
javax.xml.bind.annotation.adapters;version="2.2.1",
javax.xml.bind.attachment;version="2.2.1",
javax.xml.bind.helpers;version="2.2.1", javax.xml.bind.util;version="2.2.1",
javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig,
javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo,
javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace,
javax.xml.parsers, javax.xml.soap;version="1.3",
javax.xml.stream;version="1.2", javax.xml.stream.events;version="1.2",
javax.xml.stream.util;version="1.2", javax.xml.transform,
javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stax,
javax.xml.transform.stream, javax.xml.validation,
javax.xml.ws;version="2.2", javax.xml.ws.handler;version="2.2",
javax.xml.ws.handler.soap;version="2.2", javax.xml.ws.http;version="2.2",
javax.xml.ws.soap;version="2.2", javax.xml.ws.spi;version="2.2",
javax.xml.ws.wsaddressing;version="2.2",
javax.xml.ws.spi.http;version="2.2", javax.xml.xpath, org.ietf.jgss,
org.omg.CORBA, org.omg.CORBA_2_3, org.omg.CORBA_2_3.portable,
org.omg.CORBA.DynAnyPackage, org.omg.CORBA.ORBPackage,
org.omg.CORBA.portable, org.omg.CORBA.TypeCodePackage, org.omg.CosNaming,
org.omg.CosNaming.NamingContextExtPackage,
org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic, org.omg.DynamicAny,
org.omg.DynamicAny.DynAnyFactoryPackage, org.omg.DynamicAny.DynAnyPackage,
org.omg.IOP, org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage,
org.omg.Messaging, org.omg.PortableInterceptor,
org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer,
org.omg.PortableServer.CurrentPackage,
org.omg.PortableServer.POAManagerPackage, org.omg.PortableServer.POAPackage,
org.omg.PortableServer.portable,
org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext,
org.omg.stub.java.rmi, org.omg.stub.javax.management.remote.rmi,
org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.css, org.w3c.dom.events,
org.w3c.dom.html, org.w3c.dom.ls, org.w3c.dom.ranges,
org.w3c.dom.stylesheets, org.w3c.dom.traversal, org.w3c.dom.views,
org.w3c.dom.xpath, org.xml.sax, org.xml.sax.ext,
org.xml.sax.helpers,org.apache.karaf.branding;
(org.osgi.framework.BundleException: Exported package names cannot be zero
length.)
org.osgi.framework.BundleException: Exported package names cannot be zero
length.
	at
org.apache.felix.framework.util.manifestparser.ManifestParser.normalizeExportClauses(ManifestParser.java:729)
	at
org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(ManifestParser.java:191)
	at
org.apache.felix.framework.ExtensionManager.<init>(ExtensionManager.java:220)
	at org.apache.felix.framework.Felix.<init>(Felix.java:374)
	at
org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:28)
	at org.apache.karaf.main.Main.launch(Main.java:288)
	at org.apache.karaf.main.Main.main(Main.java:497)
ERROR: Bundle org.ops4j.pax.url.mvn [1] Error starting
mvn:org.ops4j.pax.url/pax-url-mvn/1.3.5 (org.osgi.framework.BundleException:
Unresolved constraint in bundle org.ops4j.pax.url.mvn [1]: Unable to resolve
1.0: missing requirement [1.0] osgi.wiring.package;
(osgi.wiring.package=javax.net.ssl))
org.osgi.framework.BundleException: Unresolved constraint in bundle
org.ops4j.pax.url.mvn [1]: Unable to resolve 1.0: missing requirement [1.0]
osgi.wiring.package; (osgi.wiring.package=javax.net.ssl)
	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3826)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:1868)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)
	at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
	at java.lang.Thread.run(Thread.java:680)


If the semicolon is omitted, karaf properly starts.
- OK : org.osgi.framework.system.packages.extra = org.apache.karaf.branding
- KO : org.osgi.framework.system.packages.extra = org.apache.karaf.branding;

Is there a reason?

Regards,
Luca






--
View this message in context: http://karaf.922171.n3.nabble.com/Branding-the-Console-issue-tp4026488.html
Sent from the Karaf - User mailing list archive at Nabble.com.

Re: Branding the Console issue

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

Yeah, we need upgrade the website accordingly, create jira ticket[1] to track it, and the fix is coming soon.
Thanks for pointing out this issue

[1]https://issues.apache.org/jira/browse/KARAF-1963
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042

On 2012-10-22, at 下午2:37, lbu wrote:

> Hi,
> yes the solution is quite simple so I guess that the Karaf documentation
> should be amended, here what I can found in the console's branding guid
> (http://karaf.apache.org/manual/latest-2.3.x/developers-guide/branding-console.html):
> 
> /In order for Karaf to pick up the branding jar please edit the
> $KARAF_HOME/etc/custom.properties file to include the following:
> 
> org.osgi.framework.system.packages.extra = \
> org.apache.karaf.branding;/
> 
> 
> 
> 
> 
> 
> --
> View this message in context: http://karaf.922171.n3.nabble.com/Branding-the-Console-issue-tp4026488p4026498.html
> Sent from the Karaf - User mailing list archive at Nabble.com.


Re: Branding the Console issue

Posted by lbu <lb...@gmail.com>.
Hi,
yes the solution is quite simple so I guess that the Karaf documentation
should be amended, here what I can found in the console's branding guid
(http://karaf.apache.org/manual/latest-2.3.x/developers-guide/branding-console.html):

/In order for Karaf to pick up the branding jar please edit the
$KARAF_HOME/etc/custom.properties file to include the following:

org.osgi.framework.system.packages.extra = \
org.apache.karaf.branding;/






--
View this message in context: http://karaf.922171.n3.nabble.com/Branding-the-Console-issue-tp4026488p4026498.html
Sent from the Karaf - User mailing list archive at Nabble.com.

Re: Branding the Console issue

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

Just don't don't put a unneeded separator ";" at the end, otherwise felix code will assume there's still another package after the separator, which is empty, which cause such error.

Actually maven-bundle-plugin from felix also has same behavior, if your Export-Package like
x1.y1.z1, 
x2.y2.z2,
x3.y3.z3,

then you run into similar error, the last  unneeded ","   is the cause.
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042

On 2012-10-19, at 下午10:14, lbu wrote:

> Hi,
> on Karaf 2.3.0, I've created a simple jar to brand the console according to
> the developer guide and what I've just noticed is that:
> 
> if in $KARAF_HOME/etc/custom.properties I put a semicolon after
> org.apache.karaf.branding as per the documentation, karaf fails to start:
> 
> [luca@jupiter bin]# ./karaf 
> karaf: Ignoring predefined value for KARAF_HOME
> ERROR: Error parsing system bundle export statement:
> org.osgi.framework.startlevel;uses:="org.osgi.framework";version="1.0",
> org.osgi.framework.wiring;uses:="org.osgi.resource,org.osgi.framework";version="1.1",
> org.osgi.framework.hooks.bundle;uses:="org.osgi.framework";version="1.1",
> org.osgi.framework.hooks.service;uses:="org.osgi.framework";version="1.1",
> org.osgi.framework.hooks.resolver;uses:="org.osgi.framework.wiring";version="1.0",
> org.osgi.framework.launch;uses:="org.osgi.framework";version="1.1",
> org.osgi.framework.namespace;uses:="org.osgi.resource";version="1.0",
> org.osgi.framework;version="1.7",org.osgi.framework.hooks.weaving;uses:="org.osgi.framework.wiring";version="1.0",org.osgi.resource;version="1.0",org.osgi.service.url;version="1.0",org.osgi.service.startlevel;uses:="org.osgi.framework";version="1.1",org.osgi.service.packageadmin;uses:="org.osgi.framework";version="1.2",org.osgi.service.url;version="1.0",
> org.osgi.util.tracker;uses:="org.osgi.framework";version="1.5.1",
> org.apache.karaf.jaas.boot;version="2.3.0",
> org.apache.karaf.jaas.boot.principal;version="2.3.0",
> org.apache.karaf.version;version="2.3.0", javax.accessibility,
> javax.activation;version="1.1", javax.activity,
> javax.annotation;version="1.1", javax.annotation.processing;version="1.1",
> javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio,
> javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp,
> javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream,
> javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element,
> javax.lang.model.type, javax.lang.model.util, javax.management,
> javax.management.loading, javax.management.modelmbean,
> javax.management.monitor, javax.management.openmbean,
> javax.management.relation, javax.management.remote,
> javax.management.remote.rmi, javax.management.timer, javax.naming,
> javax.naming.directory, javax.naming.event, javax.naming.ldap,
> javax.naming.spi, javax.net, javax.net.ssl, javax.print,
> javax.print.attribute, javax.print.attribute.standard, javax.print.event,
> javax.rmi, javax.rmi.CORBA, javax.rmi.ssl, javax.script,
> javax.security.auth, javax.security.auth.callback,
> javax.security.auth.kerberos, javax.security.auth.login,
> javax.security.auth.spi, javax.security.auth.x500, javax.security.cert,
> javax.security.sasl, javax.sound.midi, javax.sound.midi.spi,
> javax.sound.sampled, javax.sound.sampled.spi, javax.sql, javax.sql.rowset,
> javax.sql.rowset.serial, javax.sql.rowset.spi, javax.swing,
> javax.swing.border, javax.swing.colorchooser, javax.swing.event,
> javax.swing.filechooser, javax.swing.plaf, javax.swing.plaf.basic,
> javax.swing.plaf.metal, javax.swing.plaf.multi, javax.swing.plaf.synth,
> javax.swing.table, javax.swing.text, javax.swing.text.html,
> javax.swing.text.html.parser, javax.swing.text.rtf, javax.swing.tree,
> javax.swing.undo, javax.tools, javax.transaction; javax.transaction.xa;
> partial=true; mandatory:=partial, javax.xml, javax.xml.bind;version="2.2.1",
> javax.xml.bind.annotation;version="2.2.1",
> javax.xml.bind.annotation.adapters;version="2.2.1",
> javax.xml.bind.attachment;version="2.2.1",
> javax.xml.bind.helpers;version="2.2.1", javax.xml.bind.util;version="2.2.1",
> javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig,
> javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo,
> javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace,
> javax.xml.parsers, javax.xml.soap;version="1.3",
> javax.xml.stream;version="1.2", javax.xml.stream.events;version="1.2",
> javax.xml.stream.util;version="1.2", javax.xml.transform,
> javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stax,
> javax.xml.transform.stream, javax.xml.validation,
> javax.xml.ws;version="2.2", javax.xml.ws.handler;version="2.2",
> javax.xml.ws.handler.soap;version="2.2", javax.xml.ws.http;version="2.2",
> javax.xml.ws.soap;version="2.2", javax.xml.ws.spi;version="2.2",
> javax.xml.ws.wsaddressing;version="2.2",
> javax.xml.ws.spi.http;version="2.2", javax.xml.xpath, org.ietf.jgss,
> org.omg.CORBA, org.omg.CORBA_2_3, org.omg.CORBA_2_3.portable,
> org.omg.CORBA.DynAnyPackage, org.omg.CORBA.ORBPackage,
> org.omg.CORBA.portable, org.omg.CORBA.TypeCodePackage, org.omg.CosNaming,
> org.omg.CosNaming.NamingContextExtPackage,
> org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic, org.omg.DynamicAny,
> org.omg.DynamicAny.DynAnyFactoryPackage, org.omg.DynamicAny.DynAnyPackage,
> org.omg.IOP, org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage,
> org.omg.Messaging, org.omg.PortableInterceptor,
> org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer,
> org.omg.PortableServer.CurrentPackage,
> org.omg.PortableServer.POAManagerPackage, org.omg.PortableServer.POAPackage,
> org.omg.PortableServer.portable,
> org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext,
> org.omg.stub.java.rmi, org.omg.stub.javax.management.remote.rmi,
> org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.css, org.w3c.dom.events,
> org.w3c.dom.html, org.w3c.dom.ls, org.w3c.dom.ranges,
> org.w3c.dom.stylesheets, org.w3c.dom.traversal, org.w3c.dom.views,
> org.w3c.dom.xpath, org.xml.sax, org.xml.sax.ext,
> org.xml.sax.helpers,org.apache.karaf.branding;
> (org.osgi.framework.BundleException: Exported package names cannot be zero
> length.)
> org.osgi.framework.BundleException: Exported package names cannot be zero
> length.
> 	at
> org.apache.felix.framework.util.manifestparser.ManifestParser.normalizeExportClauses(ManifestParser.java:729)
> 	at
> org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(ManifestParser.java:191)
> 	at
> org.apache.felix.framework.ExtensionManager.<init>(ExtensionManager.java:220)
> 	at org.apache.felix.framework.Felix.<init>(Felix.java:374)
> 	at
> org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:28)
> 	at org.apache.karaf.main.Main.launch(Main.java:288)
> 	at org.apache.karaf.main.Main.main(Main.java:497)
> ERROR: Bundle org.ops4j.pax.url.mvn [1] Error starting
> mvn:org.ops4j.pax.url/pax-url-mvn/1.3.5 (org.osgi.framework.BundleException:
> Unresolved constraint in bundle org.ops4j.pax.url.mvn [1]: Unable to resolve
> 1.0: missing requirement [1.0] osgi.wiring.package;
> (osgi.wiring.package=javax.net.ssl))
> org.osgi.framework.BundleException: Unresolved constraint in bundle
> org.ops4j.pax.url.mvn [1]: Unable to resolve 1.0: missing requirement [1.0]
> osgi.wiring.package; (osgi.wiring.package=javax.net.ssl)
> 	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3826)
> 	at org.apache.felix.framework.Felix.startBundle(Felix.java:1868)
> 	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)
> 	at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
> 	at java.lang.Thread.run(Thread.java:680)
> 
> 
> If the semicolon is omitted, karaf properly starts.
> - OK : org.osgi.framework.system.packages.extra = org.apache.karaf.branding
> - KO : org.osgi.framework.system.packages.extra = org.apache.karaf.branding;
> 
> Is there a reason?
> 
> Regards,
> Luca
> 
> 
> 
> 
> 
> 
> --
> View this message in context: http://karaf.922171.n3.nabble.com/Branding-the-Console-issue-tp4026488.html
> Sent from the Karaf - User mailing list archive at Nabble.com.