You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2009/10/16 18:07:14 UTC

svn commit: r825975 - in /felix/trunk/karaf: assembly/src/main/distribution/unix-shell/bin/ assembly/src/main/distribution/windows-text/bin/ assembly/src/main/filtered-resources/bin/ main/src/main/java/org/apache/felix/karaf/main/ shell/admin/src/main/...

Author: gnodet
Date: Fri Oct 16 16:07:12 2009
New Revision: 825975

URL: http://svn.apache.org/viewvc?rev=825975&view=rev
Log:
FELIX-1620: Script for running the created Karaf instances with a console

Added:
    felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf
      - copied, changed from r825845, felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop
    felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf.bat
Modified:
    felix/trunk/karaf/assembly/src/main/distribution/unix-shell/bin/karaf
    felix/trunk/karaf/assembly/src/main/distribution/windows-text/bin/karaf.bat
    felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin
    felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin.bat
    felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
    felix/trunk/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java
    felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start
    felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop

Modified: felix/trunk/karaf/assembly/src/main/distribution/unix-shell/bin/karaf
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/distribution/unix-shell/bin/karaf?rev=825975&r1=825974&r2=825975&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/distribution/unix-shell/bin/karaf (original)
+++ felix/trunk/karaf/assembly/src/main/distribution/unix-shell/bin/karaf Fri Oct 16 16:07:12 2009
@@ -285,7 +285,7 @@
         KARAF_BASE=`cygpath --path --windows "$KARAF_BASE"`
         CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
     fi
-    exec $JAVA $JAVA_OPTS -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Djava.util.logging.config.file=$KARAF_BASE/etc/java.util.logging.properties $OPTS -classpath "$CLASSPATH" org.apache.felix.karaf.main.Bootstrap "$@"
+    exec $JAVA $JAVA_OPTS -Dstorage.location="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Djava.util.logging.config.file=$KARAF_BASE/etc/java.util.logging.properties $OPTS -classpath "$CLASSPATH" org.apache.felix.karaf.main.Bootstrap "$@"
 }
 
 main() {

Modified: felix/trunk/karaf/assembly/src/main/distribution/windows-text/bin/karaf.bat
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/distribution/windows-text/bin/karaf.bat?rev=825975&r1=825974&r2=825975&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/distribution/windows-text/bin/karaf.bat (original)
+++ felix/trunk/karaf/assembly/src/main/distribution/windows-text/bin/karaf.bat Fri Oct 16 16:07:12 2009
@@ -152,7 +152,7 @@
     if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8
     if not "%SHIFT%" == "true" SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8    
     rem Execute the Java Virtual Machine
-    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" org.apache.felix.karaf.main.Bootstrap %ARGS%
+    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dstorage.location="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" org.apache.felix.karaf.main.Bootstrap %ARGS%
 
 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 

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=825975&r1=825974&r2=825975&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin (original)
+++ felix/trunk/karaf/assembly/src/main/filtered-resources/bin/admin Fri Oct 16 16:07:12 2009
@@ -200,7 +200,7 @@
 }
 
 setupDefaults() {
-    DEFAULT_JAVA_OPTS="-Dstorage.location=${KARAF_HOME}/instances -Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM "
+    DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM "
 
     #Set the JVM_VENDOR specific JVM flags
     if [ "$JVM_VENDOR" = "SUN" ]; then
@@ -273,7 +273,7 @@
 
     CLASSPATH=${KARAF_HOME}/system/org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.admin/${project.version}/org.apache.felix.karaf.shell.admin-${project.version}.jar:${KARAF_HOME}/system/org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.console/${project.version}/org.apache.felix.karaf.shell.console-${project.version}.jar:${KARAF_HOME}/system/org/apache/felix/gogo/org.apache.felix.gogo.runtime/${felix.gogo.version}/org.apache.felix.gogo.runtime-${felix.gogo.version}.jar:${KARAF_HOME}/system/org/apache/geronimo/blueprint/geronimo-blueprint/${geronimo.blueprint.version}/geronimo-blueprint-${geronimo.blueprint.version}.jar:${KARAF_HOME}/system/org/ops4j/pax/logging/pax-logging-api/${pax.logging.version}/pax-logging-api-${pax.logging.version}.jar:${KARAF_HOME}/system/org/apache/felix/org.apache.felix.framework/${felix.framework.version}/org.apache.felix.framework-${felix.framework.version}.jar
 
-    exec $JAVA $JAVA_OPTS -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Djava.util.logging.config.file=$KARAF_BASE/etc/java.util.logging.properties $OPTS -classpath "$CLASSPATH" org.apache.felix.karaf.shell.admin.main.Execute "$@"
+    exec $JAVA $JAVA_OPTS -Dstorage.location="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Djava.util.logging.config.file=$KARAF_BASE/etc/java.util.logging.properties $OPTS -classpath "$CLASSPATH" org.apache.felix.karaf.shell.admin.main.Execute "$@"
 }
 
 main() {

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=825975&r1=825974&r2=825975&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 Fri Oct 16 16:07:12 2009
@@ -54,7 +54,7 @@
   set KARAF_BASE=%KARAF_HOME%
 )
 
-set DEFAULT_JAVA_OPTS=-Dstorage.location="%KARAF_HOME%\instances"
+set DEFAULT_JAVA_OPTS=
 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
@@ -87,7 +87,7 @@
     if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8
     if not "%SHIFT%" == "true" SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8    
     rem Execute the Java Virtual Machine
-    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" org.apache.felix.karaf.shell.admin.main.Execute %ARGS%
+    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dstorage.location="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" org.apache.felix.karaf.shell.admin.main.Execute %ARGS%
 
 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 

Modified: felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java?rev=825975&r1=825974&r2=825975&view=diff
==============================================================================
--- felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java (original)
+++ felix/trunk/karaf/main/src/main/java/org/apache/felix/karaf/main/Main.java Fri Oct 16 16:07:12 2009
@@ -19,11 +19,14 @@
 package org.apache.felix.karaf.main;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.BufferedReader;
+import java.lang.management.ManagementFactory;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
@@ -165,6 +168,8 @@
         // Load system properties.
         loadSystemProperties();
 
+        updateInstancePid();
+
         // Read configuration properties.
         configProps = loadConfigProperties();
         BootstrapLogManager.setProperties(configProps);
@@ -330,6 +335,41 @@
         }
     }
 
+    private void updateInstancePid() {
+        try {
+            if (!karafHome.equals(karafBase)) {
+                String instanceName = System.getProperty("karaf.name");
+                String pid = ManagementFactory.getRuntimeMXBean().getName();
+                if (pid.indexOf('@') > 0) {
+                    pid = pid.substring(0, pid.indexOf('@'));
+                }
+                if (instanceName != null) {
+                    String storage = System.getProperty("storage.location");
+                    if (storage == null) {
+                        throw new Exception("System property 'storage.location' is not set. \n" +
+                            "This property needs to be set to the full path of the instance.properties file.");
+                    }
+                    File storageFile = new File(storage);
+                    File propertiesFile = new File(storageFile, "instance.properties");
+                    Properties props = new Properties();
+                    props.load(new FileInputStream(propertiesFile));
+                    int count = Integer.parseInt(props.getProperty("count"));
+                    for (int i = 0; i < count; i++) {
+                        String name = props.getProperty("item." + i + ".name");
+                        if (name.equals(instanceName)) {
+                            props.setProperty("item." + i + ".pid", pid);
+                            props.store(new FileOutputStream(propertiesFile), null);
+                            return;
+                        }
+                    }
+                    throw new Exception("Instance " + args[1] + " not found");
+                }
+            }
+        } catch (Exception e) {
+            System.err.println("Unable to update instance pid: " + e.getMessage());
+        }
+    }
+
     /**
      * <p/>
      * Processes the auto-install and auto-start properties from the

Modified: felix/trunk/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java?rev=825975&r1=825974&r2=825975&view=diff
==============================================================================
--- felix/trunk/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java (original)
+++ felix/trunk/karaf/shell/admin/src/main/java/org/apache/felix/karaf/shell/admin/internal/AdminServiceImpl.java Fri Oct 16 16:07:12 2009
@@ -156,11 +156,14 @@
         copyFilteredResourceToDir(karafBase, "etc/system.properties", props);
         copyFilteredResourceToDir(karafBase, "etc/org.apache.felix.karaf.shell.cfg", props);
         if( System.getProperty("os.name").startsWith("Win") ) {
+            copyFilteredResourceToDir(karafBase, "bin/karaf.bat", props);
             copyFilteredResourceToDir(karafBase, "bin/start.bat", props);
             copyFilteredResourceToDir(karafBase, "bin/stop.bat", props);
         } else {
+            copyFilteredResourceToDir(karafBase, "bin/karaf", props);
             copyFilteredResourceToDir(karafBase, "bin/start", props);
             copyFilteredResourceToDir(karafBase, "bin/stop", props);
+            chmod(new File(karafBase, "bin/karaf"), "a+x");
             chmod(new File(karafBase, "bin/start"), "a+x");
             chmod(new File(karafBase, "bin/stop"), "a+x");
         }

Copied: felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf (from r825845, felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf?p2=felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf&p1=felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop&r1=825845&r2=825975&rev=825975&view=diff
==============================================================================
--- felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop (original)
+++ felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf Fri Oct 16 16:07:12 2009
@@ -1,5 +1,4 @@
 #!/bin/sh
-################################################################################
 #
 #    Licensed to the Apache Software Foundation (ASF) under one or more
 #    contributor license agreements.  See the NOTICE file distributed with
@@ -16,9 +15,11 @@
 #    See the License for the specific language governing permissions and
 #    limitations under the License.
 #
-################################################################################
+# $Id: karaf 979 2005-11-30 22:50:55Z bsnyder $
+#
 
 KARAF_HOME=${karaf.home}
+KARAF_BASE=${karaf.base}
 
-${KARAF_HOME}/bin/admin stop ${karaf.name} "$@"
-
+export KARAF_BASE
+exec ${KARAF_HOME}/bin/karaf "$*"

Added: felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf.bat
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf.bat?rev=825975&view=auto
==============================================================================
--- felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf.bat (added)
+++ felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/karaf.bat Fri Oct 16 16:07:12 2009
@@ -0,0 +1,25 @@
+@ECHO OFF
+REM =========================================================================
+REM
+REM Licensed to the Apache Software Foundation (ASF) under one or more
+REM contributor license agreements.  See the NOTICE file distributed with
+REM this work for additional information regarding copyright ownership.
+REM The ASF licenses this file to You under the Apache License, Version 2.0
+REM (the "License"); you may not use this file except in compliance with
+REM the License.  You may obtain a copy of the License at
+REM
+REM    http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing, software
+REM distributed under the License is distributed on an "AS IS" BASIS,
+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM See the License for the specific language governing permissions and
+REM limitations under the License.
+REM
+REM =========================================================================
+
+SET KARAF_BASE=${karaf.base}
+SETLOCAL
+SET KARAF_HOME=${karaf.home}
+
+%KARAF_HOME%\bin\karaf.bat %*

Modified: felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start?rev=825975&r1=825974&r2=825975&view=diff
==============================================================================
--- felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start (original)
+++ felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/start Fri Oct 16 16:07:12 2009
@@ -20,5 +20,5 @@
 
 KARAF_HOME=${karaf.home}
 
-${KARAF_HOME}/bin/admin start ${karaf.name} "$@"
+exec ${KARAF_HOME}/bin/admin start ${karaf.name} "$@"
 

Modified: felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop?rev=825975&r1=825974&r2=825975&view=diff
==============================================================================
--- felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop (original)
+++ felix/trunk/karaf/shell/admin/src/main/resources/org/apache/felix/karaf/shell/admin/bin/stop Fri Oct 16 16:07:12 2009
@@ -20,5 +20,5 @@
 
 KARAF_HOME=${karaf.home}
 
-${KARAF_HOME}/bin/admin stop ${karaf.name} "$@"
+exec ${KARAF_HOME}/bin/admin stop ${karaf.name} "$@"