[ https://issues.apache.org/jira/browse/KARAF-334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13911291#comment-13911291 ]
Jean-Baptiste Onofré commented on KARAF-334: -------------------------------------------- In K3, etc/startup.properties file now contains mvn URL: mvn\:org.ops4j.base/ops4j-base-lang/1.4.0 = 5 mvn\:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/3.8.2_4 = 5 mvn\:biz.aQute.bnd/bndlib/2.1.0 = 5 ... What do we do about this Jira ? > At startup, Karaf does not support urls like mvn:, obr:. > -------------------------------------------------------- > > Key: KARAF-334 > URL: https://issues.apache.org/jira/browse/KARAF-334 > Project: Karaf > Issue Type: Improvement > Components: karaf-core > Affects Versions: 2.1.2 > Reporter: Stephane Chomat > Assignee: Guillaume Nodet > Fix For: 3.1.0 > > Attachments: patch-KARAF-334, patch-KARAF-334-karaf-2.1.x, > test-karaf-home.zip > > Original Estimate: 24h > Remaining Estimate: 24h > > At startup, Karafi does not support urls like mvn:, obr:. > Imagine that at level 5 you install the bundle pax-url-mvn with > karaf.auto.start.5 = "file: pax-url-mvn.jar | pax-url-mvn" > and then at level 10 you install mvn:. ... With karaf.auto.start.10 = "mvn > :....| ...." > At the level 6 the url handler 'mvn' is available and you can use it. > This feature does not work with Karaf > I propose this path : > diff -r f0bb11c3d77c src/main/java/org/apache/karaf/main/Main.java > --- a/src/main/java/org/apache/karaf/main/Main.java Mon Dec 20 11:05:11 > 2010 +0100 > +++ b/src/main/java/org/apache/karaf/main/Main.java Mon Dec 20 11:46:29 > 2010 +0100 > @@ -485,28 +485,20 @@ > // the start level to which the bundles are assigned is specified by > // appending a ".n" to the auto-install property name, where "n" is > // the desired start level for the list of bundles. > - autoInstall(PROPERTY_AUTO_INSTALL, context, sl, convertToMavenUrls); > + autoInstall(PROPERTY_AUTO_INSTALL, context, sl, convertToMavenUrls, > false); > > // The auto-start property specifies a space-delimited list of > // bundle URLs to be automatically installed and started into each > // new profile; the start level to which the bundles are assigned > // is specified by appending a ".n" to the auto-start property name, > // where "n" is the desired start level for the list of bundles. > - // The following code starts bundles in two passes, first it installs > - // them, then it starts them. > - List<Bundle> bundlesToStart = autoInstall(PROPERTY_AUTO_START, > context, sl, convertToMavenUrls); > - // Now loop through and start the installed bundles. > - for (Bundle b : bundlesToStart) { > - try { > - b.start(); > - } > - catch (Exception ex) { > - System.err.println("Auto-properties start: " + ex); > - } > - } > + // The following code starts bundles in one passes, it installs > + // and it starts them by level. > + autoInstall(PROPERTY_AUTO_START, context, sl, convertToMavenUrls, > true); > + > } > > - private List<Bundle> autoInstall(String propertyPrefix, BundleContext > context, StartLevel sl, boolean convertToMavenUrls) { > + private List<Bundle> autoInstall(String propertyPrefix, BundleContext > context, StartLevel sl, boolean convertToMavenUrls, boolean start) { > Map<Integer, String> autoStart = new TreeMap<Integer, String>(); > List<Bundle> bundles = new ArrayList<Bundle>(); > for (Iterator i = configProps.keySet().iterator(); i.hasNext();) { > @@ -531,6 +523,7 @@ > } > for (Integer startLevel : autoStart.keySet()) { > StringTokenizer st = new > StringTokenizer(autoStart.get(startLevel), "\" ", true); > + List<Bundle> bundlesLevel = new ArrayList<Bundle>(); > if (st.countTokens() > 0) { > String location = null; > do { > @@ -541,6 +534,7 @@ > Bundle b = context.installBundle(parts[0], new > URL(parts[1]).openStream()); > sl.setBundleStartLevel(b, startLevel); > bundles.add(b); > + bundlesLevel.add(b); > } > catch (Exception ex) { > System.err.println("Auto-properties install:" + > ex); > @@ -549,6 +543,15 @@ > } > while (location != null); > } > + // Now loop through and start the installed bundles. > + for (Bundle b : bundlesLevel) { > + try { > + b.start(); > + } > + catch (Exception ex) { > + System.err.println("Auto-properties start: " + ex); > + } > + } > } > return bundles; > } -- This message was sent by Atlassian JIRA (v6.1.5#6160)