You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by Marta Luna Serrano <ma...@gmail.com> on 2009/06/24 10:22:05 UTC
Problems with starting bundles
Hello,
I am trying to embed felix into a Web Page as an applet, but it doesn't run.
I don't have any error in the Java Console, but the cache directory only has
a bundle0 directory and it is empty... so I think that I have a problem with
the auto start properties or something like that.
Any help will be wellcome!!
Regards
Marta
This is the code I use to config felix properties:
* *
*import** java.io.File;*
* *
*import** java.util.ArrayList;*
* *
*import** java.util.List;*
* *
*import** java.util.Map;*
* *
*import** java.util.HashMap;*
**
*import** javax.swing.JApplet;*
**
* *
*import** net.java.sip.communicator.impl.applet.AppletActivator;*
**
* *
*import** org.apache.felix.framework.Felix;*
* *
*import** org.apache.felix.framework.cache.BundleCache;*
* *
*import** org.apache.felix.framework.util.FelixConstants;*
* *
*import** org.apache.felix.framework.util.StringMap;*
* *
*import** org.apache.felix.main.AutoActivator;*
* *
*import** org.osgi.framework.BundleException;*
* *
*import** org.osgi.framework.Constants;*
**
*public** class** SIPCommunicatorApplet extends** JApplet {*
*// the felix cache directory*
*private** static** final** String CACHE_DIR = ".SIPCommDoctorApplet/bin"**;
*
**
*// the old config file - sip-communicator.xml*
**
*private** File oldConfigFile = null**;*
**
*// the old contact list file - contactlist.xml*
**
*private** File oldContactlistFile = null**;*
**
*// the user's home dir*
**
*private** String userHome = null**;*
**
*private** static** final** long** serialVersionUID** =
-2876656913837180952L;*
**
*// the auto-start property for felix 1.4*
*//private static final String AUTO_START = FelixConstants. AUTO_START;*
*private** static** final** String AUTO_START_PROP = AutoActivator.
AUTO_START_PROP**; *
**
*// the felix instance*
*private** Felix felix = null**;*
**
*// private HostActivator m_activator = null;*
**
*// the activator for the applet bundle*
*private** AppletActivator appletActivator = null**;*
**
**
*public** void** init()*
*{*
**
*userHome = System.getProperty("user.home") + File.separator**;*
*System.**out.println("El el user home es: " + userHome);*
**
*// remove the cache dir from a previous startup to make sure that the new
bundles are loaded*
*File existingCacheDir = **new** File(userHome + CACHE_DIR**); *
*System.**out.println("ExistingCacheDir: "**+ existingCacheDir);*
*//rename the config files - maybe there is a local instance of sipCom, we
would otherwise overwrite the config files*
*oldConfigFile = new** File(userHome +
".sip-communicator/sip-communicator.xml"**);*
*if** (oldConfigFile**.exists())*
*{*
*File newFile = **new** File(userHome +
".sip-communicator/sip-communicator.xml."** + System.currentTimeMillis());*
*if** (oldConfigFile**.renameTo(newFile))*
*{*
*oldConfigFile** = newFile;*
*}*
*}*
**
*oldContactlistFile = new** File(userHome +
".sip-communicator/contactlist.xml"**);*
*if** (oldContactlistFile**.exists())*
*{*
*File newFile = **new** File(userHome + ".sip-communicator/contactlist.xml."
** + System.currentTimeMillis());*
*if** (oldContactlistFile**.renameTo(newFile))*
*{*
*oldContactlistFile** = newFile;*
*}*
*}*
**
**
*// use the codeBase as the server we are running on*
*String server = getCodeBase().toString();*
**
*// Print welcome banner.*
*System.**out.println("\nWelcome to Felix."**);*
*System.**out.println("=================\n"**);*
**
*// Create a configuration property map.*
*Map configMap = **new** StringMap(false**);*
**
**
**
*List list = **new** ArrayList();*
*configMap.put(FelixConstants.**SYSTEMBUNDLE_ACTIVATORS_PROP, list)**;*
**
**
**
*configMap.put(Constants.**FRAMEWORK_SYSTEMPACKAGES, *
*"org.osgi.framework; version=1.3.0," + *
*"javax.swing;" + *
*"javax.swing.event;" +*
*"javax.swing.table;" +*
*"javax.swing.text;" +*
*"javax.swing.text.html;" +*
*"javax.accessibility; "+*
*"javax.swing.plaf;" +*
*"javax.swing.plaf.metal;" +*
*"javax.swing.plaf.basic; "+*
*"javax.imageio; "+*
*"javax.swing.tree;" +*
*"javax.swing.undo;" +*
*"javax.swing.event;" +*
*"javax.swing.border;" +*
*"javax.swing.filechooser;" +*
*"org.w3c.dom;" +*
*"org.xml.sax;" +*
*"org.xml.sax.ext;" +*
*"javax.xml.parsers;"+*
*"org.apache.xml.serialize;" +*
*"javax.xml.transform;" +*
*"javax.xml.transform.dom;" +*
*"javax.xml.transform.stream;" +*
*"sun.security.action;" +*
*"sun.misc;" +*
*"javax.net;"+ *
*"javax.net.ssl;" +*
*"javax.naming;" +*
*"javax.naming.directory;" +*
*"javax.sound;"+*
*"javax.sound.sampled;" +*
*"org.jdesktop.jdic.tray;" +*
*"org.jdesktop.jdic.desktop;" +*
*"com.apple.cocoa.application;" +*
*"com.apple.cocoa.foundation;" +*
*"com.apple.eawt;" +*
*"com.apple.eio;" +*
*"quicktime;" +*
*"quicktime.std.sg;" +*
*"quicktime.qd;" +*
*"quicktime.util;" +*
*"quicktime.std.image;" +*
*"org.xml.sax.helpers;" +*
*"javax.crypto;" +*
*"javax.crypto.spec;" +*
*"javax.crypto.interfaces;" +*
*"net.java.sip.communicator.util.launchutils;" +*
*"org.bouncycastle.jce.provider;" +*
*"org.bouncycastle.crypto.digests;" +*
*"org.bouncycastle.crypto.macs;" +*
*"org.bouncycastle.crypto.params;" +*
*"org.bouncycastle.crypto.engines;" +*
*"org.apache.log4j;" +*
*"org.apache.commons.logging;" +*
* *
**
*"javax.xml.messaging;" + *
*"javax.xml.namespace;" +*
*"javax.xml.rpc;" +*
*"javax.xml.rpc.handler;" +*
*"javax.xml.rpc.handler.soap;" +*
*"javax.xml.rpc.holders;" +*
*"javax.xml.soap;" +*
*"net.java.sip.communicator.service.applet;")**;*
**
*// add all the bundles we need to the config map*
**
*configMap.put(**AUTO_START_PROP + ".10",*
*server + "lib/bundle/org.apache.felix.bundlerepository-1.0.0.jar")**;*
*System.**out.println("auto start 10"**);*
*System.**out**.println(server);*
*configMap.put(**AUTO_START_PROP +".20",*
*server + "sc-bundles/util.jar " + *
*server + "lib/bundle/log4j.jar")**;*
*System.**out.println("auto start 20"**);*
**
*configMap.put(**AUTO_START_PROP + ".30",*
*server + "sc-bundles/fileaccess.jar")**;*
*System.**out.println("auto start 30"**);*
**
*configMap.put(**AUTO_START_PROP+ ".40",*
*server + "sc-bundles/configuration.jar " +*
*server + "sc-bundles/resourcemanager.jar " +*
*server + "sc-bundles/jfontchooserlib.jar " +*
*server + "sc-bundles/browserlauncher.jar")**;*
*System.**out.println("auto start 40"**);*
**
*configMap.put(**AUTO_START_PROP+ ".42",*
*server + "sc-bundles/defaultresources.jar")**;*
*System.**out.println("auto start 42"**);*
**
*configMap.put(**AUTO_START_PROP+ ".45",*
*server + "sc-bundles/ui-service.jar " +*
*server + "sc-bundles/argdelegation-service.jar " +*
*server + "sc-bundles/version.jar " +*
*server + "sc-bundles/version-impl.jar " +*
*server + "sc-bundles/branding.jar")**;*
*System.**out.println("auto start 45"**);*
**
*configMap.put(**AUTO_START_PROP +".49",*
*server + "sc-bundles/zrtp4j.jar " +*
*server + "sc-bundles/protocol.jar")**;*
*System.**out.println("auto start 49"**);*
**
*//the contact list service depends on protocol.jar*
*//some protocol implementations however depend on the contact list*
*//so make sure load the procotol service first, the contact list next*
*// and the implementations only after*
*configMap.put(**AUTO_START_PROP+ ".50",*
*server + "sc-bundles/contactlist.jar")**;*
*System.**out.println("auto start 50"**);*
**
*configMap.put(**AUTO_START_PROP+ ".52",*
*server + "sc-bundles/media.jar " +*
*// server + "sc-bundles/protocol-icq.jar" +*
* *
*server + "sc-bundles/protocol-sip.jar " +*
*// server + "sc-bundles/smacklib.jar" +*
* *
*// server + "sc-bundles/protocol-jabber.jar" +*
* *
*// server + "sc-bundles/protocol-msn.jar"+ *
* *
*// server + "sc-bundles/protocol-yahoo.jar" +*
* *
*// server + "sc-bundles/protocol-gibberish.jar" +*
* *
*// server + "sc-bundles/protocol-ssh.jar" +*
* *
*server + "sc-bundles/netaddr.jar " +*
*// server + "sc-bundles/protocol-zeroconf.jar" +*
* *
*// server + "sc-bundles/protocol-irc.jar" +*
* *
*server + "sc-bundles/protocol-dict.jar")**;*
*System.**out.println("auto start 52"**);*
**
*configMap.put(**AUTO_START_PROP+ ".55",*
*server + "sc-bundles/meta-cl.jar")**;*
*System.**out.println("auto start 55"**);*
**
*configMap.put(**AUTO_START_PROP+ ".56",*
*server + "sc-bundles/protocol-rss.jar")**;*
*System.**out.println("auto start 56"**);*
**
*configMap.put(**AUTO_START_PROP+ ".60", *
*server + "sc-bundles/history.jar " +*
*server + "sc-bundles/msghistory.jar " +*
*server + "sc-bundles/callhistory.jar " +*
*server + "sc-bundles/audionotifier.jar " +*
*server + "sc-bundles/keybindings.jar " +*
*server + "sc-bundles/notification.jar")**;*
*System.**out.println("auto start 60"**);*
**
*configMap.put(**AUTO_START_PROP+ ".66",*
*server + "sc-bundles/swing-ui.jar " +*
*server + "sc-bundles/updatechecker.jar " +*
*server + "sc-bundles/systray.jar")**;*
*System.**out.println("auto start 66"**);*
**
*configMap.put(**AUTO_START_PROP + ".67", *
*server + "sc-bundles/pluginmanager.jar " +*
*server + "sc-bundles/whiteboard.jar " +*
*// server + "sc-bundles/icqaccregwizz.jar" +*
* *
*// server + "sc-bundles/aimaccregwizz.jar" +*
* *
*server + "sc-bundles/sipaccregwizz.jar " +*
*// server + "sc-bundles/jabberaccregwizz.jar" +*
* *
*// server + "sc-bundles/googletalkaccregwizz.jar" +*
* *
*// server + "sc-bundles/msnaccregwizz.jar" +*
* *
*// server + "sc-bundles/yahooaccregwizz.jar" +*
* *
*// server + "sc-bundles/gibberishaccregwizz.jar" +*
* *
*// server + "sc-bundles/sshaccregwizz.jar" +*
* *
*server + "sc-bundles/callhistoryform.jar " + *
*// server + "sc-bundles/rssaccregwizz.jar" +*
* *
*// server + "sc-bundles/zeroconfaccregwizz.jar" +*
* *
*// server + "sc-bundles/ircaccregwizz.jar" +*
* *
*server + "sc-bundles/contacteventhandler.jar " +*
*server + "sc-bundles/notificationconfig.jar " +*
*server + "sc-bundles/contactinfo.jar " +*
*server + "sc-bundles/accountinfo.jar " +*
*server + "sc-bundles/chatalerter.jar " +*
*server + "sc-bundles/autoaway.jar " +*
*server + "sc-bundles/keybindingChooser.jar " +*
*server + "sc-bundles/generalconfig.jar " +*
*server + "sc-bundles/dictaccregwizz.jar")**;*
*System.**out.println("auto start 67"**);*
**
*//level 68 is for profiler, don't use it or change the build.xml file
accordingly*
**
*configMap.put(**AUTO_START_PROP + ".70", *
*server + "sc-bundles/simpleaccreg.jar")**;*
*System.**out.println("auto start 70"**);*
**
*configMap.put(**AUTO_START_PROP + ".75",*
*server + "sc-bundles/argdelegation.jar")**;*
*System.**out.println("auto start 75"**);*
**
*configMap.put(**AUTO_START_PROP + ".80", *
*server + "sc-bundles/shutdown.jar")**;*
*System.**out.println("auto start 80"**);*
**
*// Uncomment the following lines if you want to run the architect viewer*
*// bundle.*
*//configMap.put(AUTO_START_PROP + ".100",*
*//server + "lib/bundle/architectureviewer1.1.jar");*
**
*System.**out**.println(configMap);*
**
**
*configMap.put(**"org.osgi.framework.storage",CACHE_DIR)**;*
**
**
**
*configMap.put(**"org.osgi.framework.startlevel", "100")**;*
*configMap.put(**"felix.startlevel.framework", "100")**;*
*configMap.put(**"felix.startlevel", "100")**;*
*configMap.put(**"org.osgi.framework.startlevel.beginning","0")**;*
**
**
*// this prevents felix from loading stream and content factories a second
time*
**
**
**
**
*// create an AppletActivator to make this applet available to the framework
*
*appletActivator = new** AppletActivator(this**);*
**
*// add this appletActivator to the parameter list for felix*
*list.add(**appletActivator)**;*
**
**
*try*
*{*
*// Now create an instance of the framework.*
*felix = new** Felix(configMap);*
*// and start it!*
*felix**.start();*
*System.**out.println("Se crea el framework"**);*
*}*
*catch** (Exception ex)*
*{*
*System.**err.println("Could not create framework: "** + ex);*
*ex.printStackTrace();*
*} *
*}*
**
*public** void** start()*
*{*
*// System.out.println("Entramos en start");*
**
*}*
**
*public** void** stop()*
*{*
**
*}*
**
**
*public** void** destroy()*
*{*
**
*// Shut down the felix framework when stopping the*
*// host application.*
*try*
*{*
*felix**.stop();*
*} **catch** (BundleException e)*
*{*
*e.printStackTrace();*
*}*
**
*//delete the applet config files*
*File configFile = **new** File(userHome +
".SIPCommDoctorApplet/sip-communicator.xml"**);*
*if** (configFile.exists())*
*{*
*configFile.delete();*
*}*
**
*File contactListFile = **new** File(userHome +
".SIPCommDoctorApplet/contactlist.xml"**);*
*if** (contactListFile.exists())*
*{*
*contactListFile.delete();*
*}*
**
*//rename the old config files *
*if** (oldConfigFile**.exists())*
*{*
*oldConfigFile.renameTo(new** File(userHome +
".SIPCommDoctorApplet/sip-communicator.xml"**));*
*}*
**
*if** (oldContactlistFile**.exists())*
*{*
*oldContactlistFile.renameTo(new** File(userHome +
".SIPCommDoctorApplet/contactlist.xml"**));*
*}*
*}*
**
**
*}*