You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Stephane Chomat (JIRA)" <ji...@apache.org> on 2011/01/20 17:05:46 UTC
[jira] Commented: (KARAF-334) At startup, Karaf does not support
urls like mvn:, obr:.
[ https://issues.apache.org/jira/browse/KARAF-334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12984250#action_12984250 ]
Stephane Chomat commented on KARAF-334:
---------------------------------------
I propose another solution see : https://github.com/chomats/karaf/commits/karaf-2.1.x
It resolve all the problems.
> 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: runtime
> Affects Versions: 2.1.2
> Reporter: Stephane Chomat
> Assignee: Guillaume Nodet
> Fix For: 2.2.0
>
> Attachments: 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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.