Author: gnodet
Date: Wed Sep  9 10:52:29 2009
New Revision: 812879

URL: http://svn.apache.org/viewvc?rev=812879&view=rev
Log:
FELIX-1574: Some Karaf instances never reach the 'started' state

Modified:
    felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin
    felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin.bat
    
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java
    
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java
    
felix/trunk/karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml

Modified: felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin?rev=812879&r1=812878&r2=812879&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin (original)
+++ felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin Wed Sep  9 
10:52:29 2009
@@ -200,7 +200,7 @@
 }
 
 setupDefaults() {
-    DEFAULT_JAVA_OPTS="-Dstorage.file=${KARAF_HOME}/etc/instances.properties 
-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM "
+    DEFAULT_JAVA_OPTS="-Dstorage.location=${KARAF_HOME}/instances 
-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM "
 
     #Set the JVM_VENDOR specific JVM flags
     if [ "$JVM_VENDOR" = "SUN" ]; then

Modified: felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin.bat
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin.bat?rev=812879&r1=812878&r2=812879&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin.bat 
(original)
+++ felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin.bat Wed 
Sep  9 10:52:29 2009
@@ -54,7 +54,7 @@
   set KARAF_BASE=%KARAF_HOME%
 )
 
-set DEFAULT_JAVA_OPTS=-Dstorage.file="%KARAF_HOME%\etc\instances.properties"
+set DEFAULT_JAVA_OPTS=-Dstorage.location="%KARAF_HOME%\instances"
 set DEFAULT_JAVA_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
 
 rem Support for loading native libraries

Modified: 
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java?rev=812879&r1=812878&r2=812879&view=diff
==============================================================================
--- 
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java
 (original)
+++ 
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/internal/AdminServiceImpl.java
 Wed Sep  9 10:52:29 2009
@@ -37,6 +37,8 @@
 
 public class AdminServiceImpl implements AdminService {
 
+    public static final String STORAGE_FILE = "instance.properties";
+
     private static final Logger LOGGER = 
LoggerFactory.getLogger(AdminServiceImpl.class);
 
     private Map<String, Instance> instances = new HashMap<String, Instance>();
@@ -81,13 +83,14 @@
 
     public synchronized void init() throws Exception {
         try {
-            if (!storageLocation.isFile()) {
-                if (storageLocation.exists()) {
-                    LOGGER.error("Instances storage location should be a file: 
" + storageLocation);
+            File storageFile = new File(storageLocation, STORAGE_FILE);
+            if (!storageFile.isFile()) {
+                if (storageFile.exists()) {
+                    LOGGER.error("Instances storage location should be a file: 
" + storageFile);
                 }
                 return;
             }
-            Properties storage = loadStorage(storageLocation);
+            Properties storage = loadStorage(storageFile);
             int count = Integer.parseInt(storage.getProperty("count", "0"));
             defaultPortStart = Integer.parseInt(storage.getProperty("port", 
Integer.toString(defaultPortStart)));
             Map<String, Instance> newInstances = new HashMap<String, 
Instance>();
@@ -117,7 +120,11 @@
         if (instances.get(name) != null) {
             throw new IllegalArgumentException("Instance '" + name + "' 
already exists");
         }
-        File serviceMixBase = new File(location != null ? location : 
("instances/" + name)).getCanonicalFile();
+        String loc = location != null ? location : name;
+        File serviceMixBase = new File(loc);
+        if (!serviceMixBase.isAbsolute()) {
+            serviceMixBase = new File(storageLocation, loc);
+        }
         int sshPort = port;
         if (sshPort <= 0) {
             sshPort = ++defaultPortStart;
@@ -184,7 +191,7 @@
             storage.setProperty("item." + i + ".loc", data[i].getLocation());
             storage.setProperty("item." + i + ".pid", 
Integer.toString(data[i].getPid()));
         }
-        saveStorage(storage, storageLocation);
+        saveStorage(storage, new File(storageLocation, STORAGE_FILE));
     }
 
     private void copyResourceToDir(File target, String resource, boolean text) 
throws Exception {

Modified: 
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java?rev=812879&r1=812878&r2=812879&view=diff
==============================================================================
--- 
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java
 (original)
+++ 
felix/trunk/karaf/gshell/gshell-admin/src/main/java/org/apache/felix/karaf/gshell/admin/main/Execute.java
 Wed Sep  9 10:52:29 2009
@@ -73,7 +73,7 @@
             exit(-1);
         }
 
-        String storage = System.getProperty("storage.file");
+        String storage = System.getProperty("storage.location");
         if (storage == null) {
             System.err.println("System property 'storage.file' is not set. \n" 
+
                        "This property needs to be set to the full path of the 
instance.properties file.");

Modified: 
felix/trunk/karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml
URL: 
http://svn.apache.org/viewvc/felix/trunk/karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml?rev=812879&r1=812878&r2=812879&view=diff
==============================================================================
--- 
felix/trunk/karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml
 (original)
+++ 
felix/trunk/karaf/gshell/gshell-admin/src/main/resources/OSGI-INF/blueprint/gshell-admin.xml
 Wed Sep  9 10:52:29 2009
@@ -80,7 +80,7 @@
     </command-bundle>
 
     <bean id="adminService" 
class="org.apache.felix.karaf.gshell.admin.internal.AdminServiceImpl" 
init-method="init">
-        <property name="storageLocation" 
value="${karaf.home}/etc/instances.properties" />
+        <property name="storageLocation" value="${karaf.home}/instances" />
     </bean>
 
     <bean id="instanceCompleter" 
class="org.apache.felix.karaf.gshell.admin.internal.completers.InstanceCompleter">


Reply via email to