Remove old license headers
[lgpl/argeo-commons.git] / org.argeo.osgi.boot / src / org / argeo / osgi / boot / OsgiBoot.java
index 8ca9be77bb1d3b26fdb742dda6a2bcf4189dcee3..b49e7200125e72d69cc4666425f5e7e787de79b8 100644 (file)
@@ -1,24 +1,11 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.argeo.osgi.boot;
 
 import static org.argeo.osgi.boot.OsgiBootUtils.debug;
 import static org.argeo.osgi.boot.OsgiBootUtils.warn;
 
 import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -31,7 +18,8 @@ import java.util.SortedMap;
 import java.util.StringTokenizer;
 import java.util.TreeMap;
 
-import org.argeo.osgi.boot.a2.ProvisioningManager;
+import org.argeo.osgi.a2.A2Source;
+import org.argeo.osgi.a2.ProvisioningManager;
 import org.argeo.osgi.boot.internal.springutil.AntPathMatcher;
 import org.argeo.osgi.boot.internal.springutil.PathMatcher;
 import org.argeo.osgi.boot.internal.springutil.SystemPropertyUtils;
@@ -52,7 +40,7 @@ import org.osgi.framework.wiring.FrameworkWiring;
 public class OsgiBoot implements OsgiBootConstants {
        public final static String PROP_ARGEO_OSGI_START = "argeo.osgi.start";
        public final static String PROP_ARGEO_OSGI_SOURCES = "argeo.osgi.sources";
-       
+
        public final static String PROP_ARGEO_OSGI_BUNDLES = "argeo.osgi.bundles";
        public final static String PROP_ARGEO_OSGI_BASE_URL = "argeo.osgi.baseUrl";
        public final static String PROP_ARGEO_OSGI_LOCAL_CACHE = "argeo.osgi.localCache";
@@ -101,7 +89,8 @@ public class OsgiBoot implements OsgiBootConstants {
        /** Constructor */
        public OsgiBoot(BundleContext bundleContext) {
                this.bundleContext = bundleContext;
-               String homeUri = Paths.get(System.getProperty("user.home")).toUri().toString();
+               Path homePath = Paths.get(System.getProperty("user.home")).toAbsolutePath();
+               String homeUri = homePath.toUri().toString();
                localCache = getProperty(PROP_ARGEO_OSGI_LOCAL_CACHE, homeUri + ".m2/repository/");
 
                provisioningManager = new ProvisioningManager(bundleContext);
@@ -110,11 +99,23 @@ public class OsgiBoot implements OsgiBootConstants {
                        provisioningManager.registerDefaultSource();
                } else {
                        for (String source : sources.split(",")) {
-                               provisioningManager.registerSource(source);
+                               if (source.trim().equals(A2Source.DEFAULT_A2_URI)) {
+                                       if (Files.exists(homePath))
+                                               provisioningManager.registerSource(
+                                                               A2Source.SCHEME_A2 + "://" + homePath.toString() + "/.local/share/osgi");
+                                       provisioningManager.registerSource(A2Source.SCHEME_A2 + ":///usr/local/share/osgi");
+                                       provisioningManager.registerSource(A2Source.SCHEME_A2 + ":///usr/share/osgi");
+                               } else {
+                                       provisioningManager.registerSource(source);
+                               }
                        }
                }
        }
 
+       ProvisioningManager getProvisioningManager() {
+               return provisioningManager;
+       }
+
        /*
         * HIGH-LEVEL METHODS
         */
@@ -162,6 +163,7 @@ public class OsgiBoot implements OsgiBootConstants {
        public void update() {
                provisioningManager.update();
        }
+
        /*
         * INSTALLATION
         */