You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/01/18 10:28:43 UTC
svn commit: r613113 [2/3] - in /servicemix/smx4: kernel/
kernel/tags/runtime-1.0-m1/ kernel/trunk/ kernel/trunk/assembly/
kernel/trunk/assembly/src/main/descriptors/
kernel/trunk/assembly/src/main/distribution/text/etc/
kernel/trunk/assembly/src/main/f...
Modified: servicemix/smx4/kernel/trunk/gshell/gshell-features/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-features/pom.xml?rev=613113&r1=611587&r2=613113&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-features/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-features/pom.xml Fri Jan 18 01:28:33 2008
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
<artifactId>gshell</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <version>1.0-m1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.features</artifactId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.features</artifactId>
<packaging>bundle</packaging>
- <version>1.0-m2-SNAPSHOT</version>
- <name>ServiceMix Runtime :: GShell Features</name>
+ <version>1.0-m1-SNAPSHOT</version>
+ <name>ServiceMix Kernel :: GShell Features</name>
<description>
Provides Features in GShell
@@ -52,15 +52,15 @@
</dependency>
<dependency>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.core</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.core</artifactId>
+ <version>1.0-m1-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.obr</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.obr</artifactId>
+ <version>1.0-m1-SNAPSHOT</version>
</dependency>
<dependency>
Modified: servicemix/smx4/kernel/trunk/gshell/gshell-obr/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-obr/pom.xml?rev=613113&r1=611587&r2=613113&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-obr/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-obr/pom.xml Fri Jan 18 01:28:33 2008
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
<artifactId>gshell</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <version>1.0-m1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.obr</artifactId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.obr</artifactId>
<packaging>bundle</packaging>
- <version>1.0-m2-SNAPSHOT</version>
- <name>ServiceMix Runtime :: GShell OBR Commands</name>
+ <version>1.0-m1-SNAPSHOT</version>
+ <name>ServiceMix Kernel :: GShell OBR Commands</name>
<description>
Provides the OBR GShell commands
@@ -52,9 +52,9 @@
</dependency>
<dependency>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.core</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.core</artifactId>
+ <version>1.0-m1-SNAPSHOT</version>
</dependency>
<dependency>
Modified: servicemix/smx4/kernel/trunk/gshell/gshell-osgi/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-osgi/pom.xml?rev=613113&r1=611587&r2=613113&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-osgi/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-osgi/pom.xml Fri Jan 18 01:28:33 2008
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
<artifactId>gshell</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <version>1.0-m1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.osgi</artifactId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.osgi</artifactId>
<packaging>bundle</packaging>
- <version>1.0-m2-SNAPSHOT</version>
- <name>ServiceMix Runtime :: GShell OSGi Commands</name>
+ <version>1.0-m1-SNAPSHOT</version>
+ <name>ServiceMix Kernel :: GShell OSGi Commands</name>
<description>
Provides the OSGi GShell commands
@@ -39,9 +39,9 @@
<dependencies>
<dependency>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.core</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.core</artifactId>
+ <version>1.0-m1-SNAPSHOT</version>
</dependency>
<dependency>
Modified: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/pom.xml?rev=613113&r1=611587&r2=613113&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/pom.xml Fri Jan 18 01:28:33 2008
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
<artifactId>gshell</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <version>1.0-m1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.wrapper</artifactId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.wrapper</artifactId>
<packaging>bundle</packaging>
- <version>1.0-m2-SNAPSHOT</version>
- <name>ServiceMix Runtime :: GShell Service Wrapper</name>
+ <version>1.0-m1-SNAPSHOT</version>
+ <name>ServiceMix Kernel :: GShell Service Wrapper</name>
<description>
Provides the Service Wrapper GShell integration
@@ -39,21 +39,21 @@
<properties>
<gshell.osgi.import>
- org.apache.servicemix.runtime.main.spi.*;resolution:=optional,
+ org.apache.servicemix.kernel.main.spi.*;resolution:=optional,
org.apache.geronimo.gshell*,
</gshell.osgi.import>
<gshell.osgi.export>
</gshell.osgi.export>
<gshell.osgi.private>
- org.apache.servicemix.runtime.gshell.wrapper.*,
+ org.apache.servicemix.kernel.gshell.wrapper.*,
</gshell.osgi.private>
</properties>
<dependencies>
<dependency>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
- <artifactId>org.apache.servicemix.runtime.gshell.core</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
+ <artifactId>org.apache.servicemix.kernel.gshell.core</artifactId>
+ <version>1.0-m1-SNAPSHOT</version>
</dependency>
<dependency>
@@ -100,7 +100,7 @@
<configuration>
<instructions>
<Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
- <Export-Package>org.apache.servicemix.runtime.gshell.wrapper.*;version=${project.version}</Export-Package>
+ <Export-Package>org.apache.servicemix.kernel.gshell.wrapper.*;version=${project.version}</Export-Package>
<Import-Package>*</Import-Package>
<Private-Package>!*</Private-Package>
<Spring-Context>*;publish-context:=false;create-asynchronously:=false</Spring-Context>
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/java/org/apache/servicemix/kernel/gshell/wrapper/InstallCommand.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/java/org/apache/servicemix/kernel/gshell/wrapper/InstallCommand.java?rev=613113&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/java/org/apache/servicemix/kernel/gshell/wrapper/InstallCommand.java (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/java/org/apache/servicemix/kernel/gshell/wrapper/InstallCommand.java Fri Jan 18 01:28:33 2008
@@ -0,0 +1,363 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.servicemix.kernel.gshell.wrapper;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Scanner;
+
+import org.apache.geronimo.gshell.clp.Option;
+import org.apache.geronimo.gshell.command.annotation.CommandComponent;
+import org.apache.geronimo.gshell.common.io.PumpStreamHandler;
+import org.apache.geronimo.gshell.support.OsgiCommandSupport;
+
+/**
+ * Installs this ServiceMix instance as a service in your operating systems.
+ *
+ * @version $Rev: 603634 $ $Date: 2007-12-12 16:07:16 +0100 (Wed, 12 Dec 2007) $
+ */
+@CommandComponent(id="wrapper:install", description="Installs this ServiceMix instance as a service in your operating systems.")
+public class InstallCommand
+ extends OsgiCommandSupport
+{
+
+ @Option(name="-n", aliases={"--name"}, description="The service name that will be used when installing the service.")
+ private String name="servicemix";
+ @Option(name="-d", aliases={"--display"}, description="The display name of the service.")
+ private String displayName;
+ @Option(name="-D", aliases={"--description"}, description="The description of the service.")
+ private String description="";
+ @Option(name="-s", aliases={"--start-type"}, description="Mode in which the service is installed. AUTO_START or DEMAND_START")
+ private String startType="AUTO_START";
+
+ protected Object doExecute() throws Exception {
+
+ try {
+ String name = getName();
+ File base = new File(System.getProperty("servicemix.base"));
+ File bin = new File(base, "bin");
+ File etc = new File(base, "etc");
+ File lib = new File(base, "lib");
+
+ HashMap<String, String> props = new HashMap<String, String>();
+ props.put("${servicemix.home}", System.getProperty("servicemix.home"));
+ props.put("${servicemix.base}", base.getPath());
+ props.put("${name}", name);
+ props.put("${displayName}", getDisplayName());
+ props.put("${description}", getDescription());
+ props.put("${startType}", getStartType());
+
+ String os = System.getProperty("os.name", "Unknown");
+ File serviceFile=null;
+ if( os.startsWith("Win") ) {
+ mkdir(bin);
+ copyResourceTo(new File(bin, name+"-wrapper.exe"), "windows/servicemix-wrapper.exe", false);
+ serviceFile = new File(bin,name+"-service.bat");
+ copyFilteredResourceTo(serviceFile, "windows/servicemix-service.bat", props);
+ mkdir(lib);
+ copyResourceTo(new File(bin, "wrapper.dll"), "windows/wrapper.dll", false);
+ } else if( os.startsWith("Mac OS X") ) {
+ mkdir(bin);
+
+ File file = new File(bin, name+"-wrapper");
+ copyResourceTo(file, "macosx/servicemix-wrapper", false);
+ chmod(file, "a+x");
+
+ serviceFile = new File(bin,name+"-service");
+ copyFilteredResourceTo(serviceFile, "unix/servicemix-service", props);
+ chmod(serviceFile, "a+x");
+
+ mkdir(lib);
+ copyResourceTo(new File(lib, "libwrapper.jnilib"), "macosx/libwrapper.jnilib", false);
+
+ // TODO: figure out how to hook in the service that it starts up
+ // when the machine boots up.
+ } else if( os.startsWith("Linux") ) {
+ mkdir(bin);
+
+ File file = new File(bin, name+"-wrapper");
+ copyResourceTo(file, "linux/servicemix-wrapper", false);
+ chmod(file, "a+x");
+
+ serviceFile = new File(bin,name+"-service");
+ copyFilteredResourceTo(serviceFile, "unix/servicemix-service", props);
+ chmod(serviceFile, "a+x");
+
+ mkdir(lib);
+ copyResourceTo(new File(lib, "libwrapper.so"), "linux/libwrapper.so", false);
+
+ // TODO: figure out how to hook in the service that it starts up
+ // when the machine boots up.
+ } else {
+ io.out.println("Your operating system '"+os+"' is not currently supported.");
+ return 1;
+ }
+
+ // Install the wrapper jar to the lib directory..
+ mkdir(lib);
+ copyResourceTo(new File(lib, "servicemix-wrapper.jar"), "all/servicemix-wrapper.jar", false);
+ mkdir(etc);
+ File wrapperConf = new File(etc,name+"-wrapper.conf");
+ copyFilteredResourceTo(wrapperConf, "all/servicemix-wrapper.conf", props);
+
+ io.out.println("");
+ io.out.println("Setup complete. You may want to tweak the JVM properties in the wrapper configuration file: "+wrapperConf.getPath());
+ io.out.println("before installing and starting the service.");
+ io.out.println("");
+ if( os.startsWith("Win") ) {
+ io.out.println("");
+ io.out.println("To install the service, run: ");
+ io.out.println(" C:> "+serviceFile.getPath()+" install");
+ io.out.println("");
+ io.out.println("Once installed, to start the service run: ");
+ io.out.println(" C:> net start \""+name+"\"");
+ io.out.println("");
+ io.out.println("Once running, to stop the service run: ");
+ io.out.println(" C:> net stop \""+name+"\"");
+ io.out.println("");
+ io.out.println("Once stopped, to remove the installed the service run: ");
+ io.out.println(" C:> "+serviceFile.getPath()+" remove");
+ io.out.println("");
+ } else if( os.startsWith("Mac OS X") ) {
+ io.out.println("");
+ io.out.println("At this time it is not known how to get this service to start when the machine is rebooted.");
+ io.out.println("If you know how to install the following service script so that it gets started");
+ io.out.println("when OS X starts, please email dev@servicemix.apache.org and let us know how so");
+ io.out.println("we can update this message.");
+ io.out.println(" ");
+ io.out.println(" To start the service:");
+ io.out.println(" $ "+serviceFile.getPath()+" start");
+ io.out.println("");
+ io.out.println(" To stop the service:");
+ io.out.println(" $ "+serviceFile.getPath()+" stop");
+ io.out.println("");
+ } else if( os.startsWith("Linux") ) {
+ io.out.println("The way the service is installed depends upon your flavor of Linux.");
+
+ // TODO: figure out if we can detect the Linux flavor
+
+ io.out.println("");
+ io.out.println("@|cyan On Redhat/Fedora/CentOS Systems:|");
+ io.out.println(" To install the service:");
+ io.out.println(" $ ln -s "+serviceFile.getPath()+" /etc/init.d/");
+ io.out.println(" $ chkconfig "+serviceFile.getName()+" --add");
+ io.out.println("");
+ io.out.println(" To start the service when the machine is rebooted:");
+ io.out.println(" $ chkconfig "+serviceFile.getName()+" on");
+ io.out.println("");
+ io.out.println(" To disable starting the service when the machine is rebooted:");
+ io.out.println(" $ chkconfig "+serviceFile.getName()+" off");
+ io.out.println("");
+ io.out.println(" To start the service:");
+ io.out.println(" $ service "+serviceFile.getName()+" start");
+ io.out.println("");
+ io.out.println(" To stop the service:");
+ io.out.println(" $ service "+serviceFile.getName()+" stop");
+ io.out.println("");
+ io.out.println(" To uninstall the service :");
+ io.out.println(" $ chkconfig "+serviceFile.getName()+" --del");
+ io.out.println(" $ rm /etc/init.d/"+serviceFile.getName());
+
+ io.out.println("");
+ io.out.println("@|cyan On Ubuntu/Debian Systems:|");
+ io.out.println(" To install the service:");
+ io.out.println(" $ ln -s "+serviceFile.getPath()+" /etc/init.d/");
+ io.out.println("");
+ io.out.println(" To start the service when the machine is rebooted:");
+ io.out.println(" $ update-rc.d "+serviceFile.getName()+" defaults");
+ io.out.println("");
+ io.out.println(" To disable starting the service when the machine is rebooted:");
+ io.out.println(" $ update-rc.d -f "+serviceFile.getName()+" remove");
+ io.out.println("");
+ io.out.println(" To start the service:");
+ io.out.println(" $ /etc/init.d/"+serviceFile.getName()+" start");
+ io.out.println("");
+ io.out.println(" To stop the service:");
+ io.out.println(" $ /etc/init.d/"+serviceFile.getName()+" stop");
+ io.out.println("");
+ io.out.println(" To uninstall the service :");
+ io.out.println(" $ rm /etc/init.d/"+serviceFile.getName());
+
+ }
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw e;
+ }
+
+ return 0;
+ }
+
+ private int chmod(File serviceFile, String mode) throws Exception {
+ ProcessBuilder builder = new ProcessBuilder();
+ builder.command("chmod", mode, serviceFile.getCanonicalPath());
+ Process p = builder.start();
+
+ PumpStreamHandler handler = new PumpStreamHandler(io.inputStream, io.outputStream, io.errorStream);
+ handler.attach(p);
+ handler.start();
+ int status = p.waitFor();
+ handler.stop();
+ return status;
+ }
+
+ private void copyResourceTo(File outFile, String resource, boolean text) throws Exception {
+ if( !outFile.exists() ) {
+ io.out.println("Creating file: @|green "+outFile.getPath()+"|");
+ InputStream is = InstallCommand.class.getResourceAsStream(resource);
+ try {
+ if( text ) {
+ // Read it line at a time so that we can use the platform line ending when we write it out.
+ PrintStream out = new PrintStream(new FileOutputStream(outFile));
+ try {
+ Scanner scanner = new Scanner(is);
+ while (scanner.hasNextLine() ) {
+ String line = scanner.nextLine();
+ io.out.println("writing: "+line);
+ out.println(line);
+ }
+ } finally {
+ safeClose(out);
+ }
+ } else {
+ // Binary so just write it out the way it came in.
+ FileOutputStream out = new FileOutputStream(outFile);
+ try {
+ int c=0;
+ while((c=is.read())>=0) {
+ out.write(c);
+ }
+ } finally {
+ safeClose(out);
+ }
+ }
+ } finally {
+ safeClose(is);
+ }
+ } else {
+ io.out.println("@|red File allready exists|. Move it out of the way if you want it re-created: "+outFile.getPath()+"");
+ }
+ }
+
+ private void copyFilteredResourceTo(File outFile, String resource, HashMap<String, String> props) throws Exception {
+ if( !outFile.exists() ) {
+ io.out.println("Creating file: @|green "+outFile.getPath()+"|");
+ InputStream is = InstallCommand.class.getResourceAsStream(resource);
+ try {
+ // Read it line at a time so that we can use the platform line ending when we write it out.
+ PrintStream out = new PrintStream(new FileOutputStream(outFile));
+ try {
+ Scanner scanner = new Scanner(is);
+ while (scanner.hasNextLine() ) {
+ String line = scanner.nextLine();
+ line = filter(line, props);
+ out.println(line);
+ }
+ } finally {
+ safeClose(out);
+ }
+ } finally {
+ safeClose(is);
+ }
+ } else {
+ io.out.println("@|red File allready exists|. Move it out of the way if you want it re-created: "+outFile.getPath()+"");
+ }
+ }
+
+ private void safeClose(InputStream is) throws IOException {
+ if( is==null)
+ return;
+ try {
+ is.close();
+ } catch (Throwable ignore) {
+ }
+ }
+
+ private void safeClose(OutputStream is) throws IOException {
+ if( is==null)
+ return;
+ try {
+ is.close();
+ } catch (Throwable ignore) {
+ }
+ }
+
+ private String filter(String line, HashMap<String, String> props) {
+ for (Map.Entry<String, String> i : props.entrySet()) {
+ int p1 = line.indexOf(i.getKey());
+ if( p1 >= 0 ) {
+ String l1 = line.substring(0, p1);
+ String l2 = line.substring(p1+i.getKey().length());
+ line = l1+i.getValue()+l2;
+ }
+ }
+ return line;
+ }
+
+ private void mkdir(File file) {
+ if( !file.exists() ) {
+ io.out.println("Creating missing directory: @|green "+file.getPath()+"|");
+ file.mkdirs();
+ }
+ }
+
+ public String getName() {
+ if( name == null ) {
+ File base = new File(System.getProperty("servicemix.base"));
+ name = base.getName();
+ }
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDisplayName() {
+ if( displayName == null ) {
+ displayName = getName();
+ }
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getStartType() {
+ return startType;
+ }
+
+ public void setStartType(String startType) {
+ this.startType = startType;
+ }
+}
Modified: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/META-INF/spring/gshell-osgi.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/META-INF/spring/gshell-osgi.xml?rev=613113&r1=611587&r2=613113&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/META-INF/spring/gshell-osgi.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/META-INF/spring/gshell-osgi.xml Fri Jan 18 01:28:33 2008
@@ -30,7 +30,7 @@
http://www.springframework.org/schema/osgi/spring-osgi.xsd">
<!-- wrapper commands -->
- <bean id="install" class="org.apache.servicemix.runtime.gshell.wrapper.InstallCommand" />
+ <bean id="install" class="org.apache.servicemix.kernel.gshell.wrapper.InstallCommand" />
<osgi:service ref="install" interface="org.apache.geronimo.gshell.command.Command">
<osgi:service-properties>
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf?rev=613113&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.conf Fri Jan 18 01:28:33 2008
@@ -0,0 +1,123 @@
+# ------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+# ------------------------------------------------------------------------
+
+#********************************************************************
+# Wrapper Properties
+#********************************************************************
+set.default.SERVICEMIX_HOME=${servicemix.home}
+set.default.SERVICEMIX_BASE=${servicemix.base}
+
+# Java Application
+wrapper.working.dir=%SERVICEMIX_BASE%
+wrapper.java.command=java
+wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
+wrapper.java.classpath.1=%SERVICEMIX_BASE%/lib/servicemix-wrapper.jar
+wrapper.java.classpath.2=%SERVICEMIX_HOME%/lib/servicemix.jar
+wrapper.java.library.path.1=%SERVICEMIX_BASE%/lib/
+
+# Application Parameters. Add parameters as needed starting from 1
+wrapper.app.parameter.1=org.apache.servicemix.kernel.main.Main
+
+# JVM Parameters
+# note that n is the parameter number starting from 1.
+wrapper.java.additional.1=-Dservicemix.home=%SERVICEMIX_HOME%
+wrapper.java.additional.2=-Dservicemix.base=%SERVICEMIX_BASE%
+wrapper.java.additional.3=-Dcom.sun.management.jmxremote
+wrapper.java.additional.4=-Dservicemix.startLocalConsole=false
+wrapper.java.additional.5=-Dservicemix.startRemoteShell=true
+
+# Uncomment to enable jmx
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false
+
+# Uncomment to enable YourKit profiling
+#wrapper.java.additional.n=-Xrunyjpagent
+
+# Uncomment to enable remote debugging
+#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
+#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
+
+# Initial Java Heap Size (in MB)
+#wrapper.java.initmemory=3
+
+# Maximum Java Heap Size (in MB)
+wrapper.java.maxmemory=512
+
+
+#********************************************************************
+# Wrapper Logging Properties
+#********************************************************************
+# Format of output for the console. (See docs for formats)
+wrapper.console.format=PM
+
+# Log Level for console output. (See docs for log levels)
+wrapper.console.loglevel=INFO
+
+# Log file to use for wrapper output logging.
+wrapper.logfile=%SERVICEMIX_BASE%/data/log/wrapper.log
+
+# Format of output for the log file. (See docs for formats)
+wrapper.logfile.format=LPTM
+
+# Log Level for log file output. (See docs for log levels)
+wrapper.logfile.loglevel=INFO
+
+# Maximum size that the log file will be allowed to grow to before
+# the log is rolled. Size is specified in bytes. The default value
+# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
+# 'm' (mb) suffix. For example: 10m = 10 megabytes.
+wrapper.logfile.maxsize=10m
+
+# Maximum number of rolled log files which will be allowed before old
+# files are deleted. The default value of 0 implies no limit.
+wrapper.logfile.maxfiles=5
+
+# Log Level for sys/event log output. (See docs for log levels)
+wrapper.syslog.loglevel=NONE
+
+#********************************************************************
+# Wrapper Windows Properties
+#********************************************************************
+# Title to use when running as a console
+wrapper.console.title=${name}
+
+#********************************************************************
+# Wrapper Windows NT/2000/XP Service Properties
+#********************************************************************
+# WARNING - Do not modify any of these properties when an application
+# using this configuration file has been installed as a service.
+# Please uninstall the service before modifying this section. The
+# service can then be reinstalled.
+
+# Name of the service
+wrapper.ntservice.name=${name}
+
+# Display name of the service
+wrapper.ntservice.displayname=${displayName}
+
+# Description of the service
+wrapper.ntservice.description=${description}
+
+# Service dependencies. Add dependencies as needed starting from 1
+wrapper.ntservice.dependency.1=
+
+# Mode in which the service is installed. AUTO_START or DEMAND_START
+wrapper.ntservice.starttype=${startType}
+
+# Allow the service to interact with the desktop.
+wrapper.ntservice.interactive=false
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.jar
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.jar?rev=613113&view=auto
==============================================================================
Binary file - no diff available.
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.jar
------------------------------------------------------------------------------
svn:executable = *
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/all/servicemix-wrapper.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/linux/libwrapper.so
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/linux/libwrapper.so?rev=613113&view=auto
==============================================================================
Binary file - no diff available.
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/linux/libwrapper.so
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/linux/servicemix-wrapper
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/linux/servicemix-wrapper?rev=613113&view=auto
==============================================================================
Binary file - no diff available.
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/linux/servicemix-wrapper
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/macosx/libwrapper.jnilib
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/macosx/libwrapper.jnilib?rev=613113&view=auto
==============================================================================
Binary file - no diff available.
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/macosx/libwrapper.jnilib
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/macosx/servicemix-wrapper
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/macosx/servicemix-wrapper?rev=613113&view=auto
==============================================================================
Binary file - no diff available.
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/macosx/servicemix-wrapper
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/unix/servicemix-service
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/unix/servicemix-service?rev=613113&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/unix/servicemix-service (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/unix/servicemix-service Fri Jan 18 01:28:33 2008
@@ -0,0 +1,543 @@
+#! /bin/sh
+
+# ------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+# ------------------------------------------------------------------------
+
+# Application
+APP_NAME="${name}"
+APP_LONG_NAME="${displayName}"
+
+# Wrapper
+WRAPPER_CMD="${servicemix.base}/bin/${APP_NAME}-wrapper"
+WRAPPER_CONF="${servicemix.base}/etc/${APP_NAME}-wrapper.conf"
+
+# Priority at which to run the wrapper. See "man nice" for valid priorities.
+# nice is only used if a priority is specified.
+PRIORITY=
+
+# Location of the pid file.
+PIDDIR="${servicemix.base}/data"
+
+# If uncommented, causes the Wrapper to be shutdown using an anchor file.
+# When launched with the 'start' command, it will also ignore all INT and
+# TERM signals.
+#IGNORE_SIGNALS=true
+
+# If specified, the Wrapper will be run as the specified user.
+# IMPORTANT - Make sure that the user has the required privileges to write
+# the PID file and wrapper.log files. Failure to be able to write the log
+# file will cause the Wrapper to exit without any way to write out an error
+# message.
+# NOTE - This will set the user which is used to run the Wrapper as well as
+# the JVM and is not useful in situations where a privileged resource or
+# port needs to be allocated prior to the user being changed.
+#RUN_AS_USER=
+
+# The following two lines are used by the chkconfig command. Change as is
+# appropriate for your application. They should remain commented.
+# chkconfig: 2345 20 80
+# description: ${displayName}
+
+# Do not modify anything beyond this point
+#-----------------------------------------------------------------------------
+
+# Get the fully qualified path to the script
+case $0 in
+ /*)
+ SCRIPT="$0"
+ ;;
+ *)
+ PWD=`pwd`
+ SCRIPT="$PWD/$0"
+ ;;
+esac
+
+# Resolve the true real path without any sym links.
+CHANGED=true
+while [ "X$CHANGED" != "X" ]
+do
+ # Change spaces to ":" so the tokens can be parsed.
+ SCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
+ # Get the real path to this script, resolving any symbolic links
+ TOKENS=`echo $SCRIPT | sed -e 's;/; ;g'`
+ REALPATH=
+ for C in $TOKENS; do
+ REALPATH="$REALPATH/$C"
+ while [ -h "$REALPATH" ] ; do
+ LS="`ls -ld "$REALPATH"`"
+ LINK="`expr "$LS" : '.*-> \(.*\)$'`"
+ if expr "$LINK" : '/.*' > /dev/null; then
+ REALPATH="$LINK"
+ else
+ REALPATH="`dirname "$REALPATH"`""/$LINK"
+ fi
+ done
+ done
+ # Change ":" chars back to spaces.
+ REALPATH=`echo $REALPATH | sed -e 's;:; ;g'`
+
+ if [ "$REALPATH" = "$SCRIPT" ]
+ then
+ CHANGED=""
+ else
+ SCRIPT="$REALPATH"
+ fi
+done
+
+# Change the current directory to the location of the script
+cd "`dirname "$REALPATH"`"
+REALDIR=`pwd`
+
+# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if
+# the working directory is later changed.
+FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
+if [ "$FIRST_CHAR" != "/" ]
+then
+ PIDDIR=$REALDIR/$PIDDIR
+fi
+# Same test for WRAPPER_CMD
+FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1`
+if [ "$FIRST_CHAR" != "/" ]
+then
+ WRAPPER_CMD=$REALDIR/$WRAPPER_CMD
+fi
+# Same test for WRAPPER_CONF
+FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1`
+if [ "$FIRST_CHAR" != "/" ]
+then
+ WRAPPER_CONF=$REALDIR/$WRAPPER_CONF
+fi
+
+# Process ID
+ANCHORFILE="$PIDDIR/$APP_NAME.anchor"
+PIDFILE="$PIDDIR/$APP_NAME.pid"
+LOCKDIR="/var/lock/subsys"
+LOCKFILE="$LOCKDIR/$APP_NAME"
+pid=""
+
+# Resolve the location of the 'ps' command
+PSEXE="/usr/bin/ps"
+if [ ! -x $PSEXE ]
+then
+ PSEXE="/bin/ps"
+ if [ ! -x $PSEXE ]
+ then
+ echo "Unable to locate 'ps'."
+ echo "Please report this message along with the location of the command on your system."
+ exit 1
+ fi
+fi
+
+# Resolve the os
+DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
+case "$DIST_OS" in
+ 'sunos')
+ DIST_OS="solaris"
+ ;;
+ 'hp-ux' | 'hp-ux64')
+ DIST_OS="hpux"
+ ;;
+ 'darwin')
+ DIST_OS="macosx"
+ ;;
+ 'unix_sv')
+ DIST_OS="unixware"
+ ;;
+esac
+
+# Resolve the architecture
+DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
+if [ "$DIST_ARCH" = "unknown" ]
+then
+ DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
+fi
+case "$DIST_ARCH" in
+ 'amd64' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64')
+ DIST_ARCH="x86"
+ ;;
+ 'ip27')
+ DIST_ARCH="mips"
+ ;;
+ 'power' | 'powerpc' | 'power_pc' | 'ppc64')
+ DIST_ARCH="ppc"
+ ;;
+ 'pa_risc' | 'pa-risc')
+ DIST_ARCH="parisc"
+ ;;
+ 'sun4u' | 'sparcv9')
+ DIST_ARCH="sparc"
+ ;;
+ '9000/800')
+ DIST_ARCH="parisc"
+ ;;
+esac
+
+# Decide on the wrapper binary to use.
+# If a 32-bit wrapper binary exists then it will work on 32 or 64 bit
+# platforms, if the 64-bit binary exists then the distribution most
+# likely wants to use long names. Otherwise, look for the default.
+# For macosx, we also want to look for universal binaries.
+WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
+if [ -x $WRAPPER_TEST_CMD ]
+then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+else
+ if [ "$DIST_OS" = "macosx" ]
+ then
+ WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-32"
+ if [ -x $WRAPPER_TEST_CMD ]
+ then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+ else
+ WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
+ if [ -x $WRAPPER_TEST_CMD ]
+ then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+ else
+ WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-64"
+ if [ -x $WRAPPER_TEST_CMD ]
+ then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+ else
+ if [ ! -x $WRAPPER_CMD ]
+ then
+ echo "Unable to locate any of the following binaries:"
+ echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
+ echo " $WRAPPER_CMD-$DIST_OS-universal-32"
+ echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
+ echo " $WRAPPER_CMD-$DIST_OS-universal-64"
+ echo " $WRAPPER_CMD"
+ exit 1
+ fi
+ fi
+ fi
+ fi
+ else
+ WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
+ if [ -x $WRAPPER_TEST_CMD ]
+ then
+ WRAPPER_CMD="$WRAPPER_TEST_CMD"
+ else
+ if [ ! -x $WRAPPER_CMD ]
+ then
+ echo "Unable to locate any of the following binaries:"
+ echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
+ echo " $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
+ echo " $WRAPPER_CMD"
+ exit 1
+ fi
+ fi
+ fi
+fi
+
+# Build the nice clause
+if [ "X$PRIORITY" = "X" ]
+then
+ CMDNICE=""
+else
+ CMDNICE="nice -$PRIORITY"
+fi
+
+# Build the anchor file clause.
+if [ "X$IGNORE_SIGNALS" = "X" ]
+then
+ ANCHORPROP=
+ IGNOREPROP=
+else
+ ANCHORPROP=wrapper.anchorfile=$ANCHORFILE
+ IGNOREPROP=wrapper.ignore_signals=TRUE
+fi
+
+# Build the lock file clause. Only create a lock file if the lock directory exists on this platform.
+if [ -d $LOCKDIR ]
+then
+ LOCKPROP=wrapper.lockfile=$LOCKFILE
+else
+ LOCKPROP=
+fi
+
+checkUser() {
+ # Check the configured user. If necessary rerun this script as the desired user.
+ if [ "X$RUN_AS_USER" != "X" ]
+ then
+ # Resolve the location of the 'id' command
+ IDEXE="/usr/xpg4/bin/id"
+ if [ ! -x $IDEXE ]
+ then
+ IDEXE="/usr/bin/id"
+ if [ ! -x $IDEXE ]
+ then
+ echo "Unable to locate 'id'."
+ echo "Please report this message along with the location of the command on your system."
+ exit 1
+ fi
+ fi
+
+ if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
+ then
+ # Already running as the configured user. Avoid password prompts by not calling su.
+ RUN_AS_USER=""
+ fi
+ fi
+ if [ "X$RUN_AS_USER" != "X" ]
+ then
+ # If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
+ # able to create the lock file. The Wrapper will be able to update this file once it
+ # is created but will not be able to delete it on shutdown. If $2 is defined then
+ # the lock file should be created for the current command
+ if [ "X$LOCKPROP" != "X" ]
+ then
+ if [ "X$2" != "X" ]
+ then
+ # Resolve the primary group
+ RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
+ if [ "X$RUN_AS_GROUP" = "X" ]
+ then
+ RUN_AS_GROUP=RUN_AS_USER
+ fi
+ touch $LOCKFILE
+ chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
+ fi
+ fi
+
+ # Still want to change users, recurse. This means that the user will only be
+ # prompted for a password once.
+ su -m $RUN_AS_USER -c "$REALPATH $1"
+
+ # Now that we are the original user again, we may need to clean up the lock file.
+ if [ "X$LOCKPROP" != "X" ]
+ then
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ # Wrapper is not running so make sure the lock file is deleted.
+ if [ -f $LOCKFILE ]
+ then
+ rm $LOCKFILE
+ fi
+ fi
+ fi
+
+ exit 0
+ fi
+}
+
+getpid() {
+ if [ -f $PIDFILE ]
+ then
+ if [ -r $PIDFILE ]
+ then
+ pid=`cat $PIDFILE`
+ if [ "X$pid" != "X" ]
+ then
+ # It is possible that 'a' process with the pid exists but that it is not the
+ # correct process. This can happen in a number of cases, but the most
+ # common is during system startup after an unclean shutdown.
+ # The ps statement below looks for the specific wrapper command running as
+ # the pid. If it is not found then the pid file is considered to be stale.
+ pidtest=`$PSEXE -p $pid -o command | grep $WRAPPER_CMD | tail -1`
+ if [ "X$pidtest" = "X" ]
+ then
+ # This is a stale pid file.
+ rm -f $PIDFILE
+ echo "Removed stale pid file: $PIDFILE"
+ pid=""
+ fi
+ fi
+ else
+ echo "Cannot read $PIDFILE."
+ exit 1
+ fi
+ fi
+}
+
+testpid() {
+ pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
+ if [ "X$pid" = "X" ]
+ then
+ # Process is gone so remove the pid file.
+ rm -f $PIDFILE
+ pid=""
+ fi
+}
+
+console() {
+ echo "Running $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE $ANCHORPROP $LOCKPROP"
+ exec $COMMAND_LINE
+ else
+ echo "$APP_LONG_NAME is already running."
+ exit 1
+ fi
+}
+
+start() {
+ echo "Starting $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ if [ ! -d ../../data ]; then
+ mkdir ../../data
+ fi
+ if [ ! -d ../../data/log ]; then
+ mkdir ../../data/log
+ fi
+ COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
+ exec $COMMAND_LINE
+ else
+ echo "$APP_LONG_NAME is already running."
+ exit 1
+ fi
+}
+
+stopit() {
+ echo "Stopping $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ echo "$APP_LONG_NAME was not running."
+ else
+ if [ "X$IGNORE_SIGNALS" = "X" ]
+ then
+ # Running so try to stop it.
+ kill $pid
+ if [ $? -ne 0 ]
+ then
+ # An explanation for the failure should have been given
+ echo "Unable to stop $APP_LONG_NAME."
+ exit 1
+ fi
+ else
+ rm -f $ANCHORFILE
+ if [ -f $ANCHORFILE ]
+ then
+ # An explanation for the failure should have been given
+ echo "Unable to stop $APP_LONG_NAME."
+ exit 1
+ fi
+ fi
+
+ # We can not predict how long it will take for the wrapper to
+ # actually stop as it depends on settings in wrapper.conf.
+ # Loop until it does.
+ savepid=$pid
+ CNT=0
+ TOTCNT=0
+ while [ "X$pid" != "X" ]
+ do
+ # Show a waiting message every 5 seconds.
+ if [ "$CNT" -lt "5" ]
+ then
+ CNT=`expr $CNT + 1`
+ else
+ echo "Waiting for $APP_LONG_NAME to exit..."
+ CNT=0
+ fi
+ TOTCNT=`expr $TOTCNT + 1`
+
+ sleep 1
+
+ testpid
+ done
+
+ pid=$savepid
+ testpid
+ if [ "X$pid" != "X" ]
+ then
+ echo "Failed to stop $APP_LONG_NAME."
+ exit 1
+ else
+ echo "Stopped $APP_LONG_NAME."
+ fi
+ fi
+}
+
+status() {
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ echo "$APP_LONG_NAME is not running."
+ exit 1
+ else
+ echo "$APP_LONG_NAME is running ($pid)."
+ exit 0
+ fi
+}
+
+dump() {
+ echo "Dumping $APP_LONG_NAME..."
+ getpid
+ if [ "X$pid" = "X" ]
+ then
+ echo "$APP_LONG_NAME was not running."
+
+ else
+ kill -3 $pid
+
+ if [ $? -ne 0 ]
+ then
+ echo "Failed to dump $APP_LONG_NAME."
+ exit 1
+ else
+ echo "Dumped $APP_LONG_NAME."
+ fi
+ fi
+}
+
+case "$1" in
+
+ 'console')
+ checkUser $1 touchlock
+ console
+ ;;
+
+ 'start')
+ checkUser $1 touchlock
+ start
+ ;;
+
+ 'stop')
+ checkUser $1
+ stopit
+ ;;
+
+ 'restart')
+ checkUser $1 touchlock
+ stopit
+ start
+ ;;
+
+ 'status')
+ checkUser $1
+ status
+ ;;
+
+ 'dump')
+ checkUser $1
+ dump
+ ;;
+
+ *)
+ echo "Usage: $0 { console | start | stop | restart | status | dump }"
+ exit 1
+ ;;
+esac
+
+exit 0
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/unix/servicemix-service
------------------------------------------------------------------------------
svn:executable = *
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/servicemix-service.bat
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/servicemix-service.bat?rev=613113&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/servicemix-service.bat (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/servicemix-service.bat Fri Jan 18 01:28:33 2008
@@ -0,0 +1,50 @@
+@echo off
+
+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 ------------------------------------------------------------------------
+
+setlocal
+
+set APP_NAME=${name}
+set APP_LONG_NAME=${displayName}
+set APP_BASE=${servicemix.base}
+
+if ""%1"" == ""run"" goto doRun
+if ""%1"" == ""install"" goto doInstall
+if ""%1"" == ""remove"" goto doRemove
+
+echo Usage: servicemix-service ( commands ... )
+echo commands:
+echo run Start %APP_NAME% in the current console
+echo install Install %APP_NAME% as a Windows service
+echo remove Remove the %APP_NAME% Windows service
+goto end
+
+:doRun
+"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -c "%APP_BASE%\etc\%APP_NAME%-wrapper.conf"
+goto end
+
+:doInstall
+"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -i "%APP_BASE%\etc\%APP_NAME%-wrapper.conf"
+goto end
+
+:doRemove
+"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -r "%APP_BASE%\etc\%APP_NAME%-wrapper.conf"
+goto end
+
+:end
+if not "%PAUSE%" == "" pause
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/servicemix-wrapper.exe
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/servicemix-wrapper.exe?rev=613113&view=auto
==============================================================================
Binary file - no diff available.
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/servicemix-wrapper.exe
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/wrapper.dll
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/wrapper.dll?rev=613113&view=auto
==============================================================================
Binary file - no diff available.
Propchange: servicemix/smx4/kernel/trunk/gshell/gshell-wrapper/src/main/resources/org/apache/servicemix/kernel/gshell/wrapper/windows/wrapper.dll
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: servicemix/smx4/kernel/trunk/gshell/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/pom.xml?rev=613113&r1=611587&r2=613113&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/pom.xml Fri Jan 18 01:28:33 2008
@@ -22,16 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.servicemix.runtime</groupId>
- <artifactId>runtime</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <groupId>org.apache.servicemix.kernel</groupId>
+ <artifactId>kernel</artifactId>
+ <version>1.0-m1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.servicemix.runtime.gshell</groupId>
+ <groupId>org.apache.servicemix.kernel.gshell</groupId>
<artifactId>gshell</artifactId>
<packaging>pom</packaging>
- <version>1.0-m2-SNAPSHOT</version>
- <name>ServiceMix Runtime :: GShell</name>
+ <version>1.0-m1-SNAPSHOT</version>
+ <name>ServiceMix Kernel :: GShell</name>
<modules>
<module>gshell-core</module>
Copied: servicemix/smx4/kernel/trunk/main/pom.xml (from r611617, servicemix/smx4/runtime/trunk/main/pom.xml)
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/main/pom.xml?p2=servicemix/smx4/kernel/trunk/main/pom.xml&p1=servicemix/smx4/runtime/trunk/main/pom.xml&r1=611617&r2=613113&rev=613113&view=diff
==============================================================================
--- servicemix/smx4/runtime/trunk/main/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/main/pom.xml Fri Jan 18 01:28:33 2008
@@ -22,15 +22,15 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.servicemix.runtime</groupId>
- <artifactId>runtime</artifactId>
- <version>1.0-m2-SNAPSHOT</version>
+ <groupId>org.apache.servicemix.kernel</groupId>
+ <artifactId>kernel</artifactId>
+ <version>1.0-m1-SNAPSHOT</version>
</parent>
- <artifactId>org.apache.servicemix.runtime.main</artifactId>
+ <artifactId>org.apache.servicemix.kernel.main</artifactId>
<packaging>bundle</packaging>
- <version>1.0-m2-SNAPSHOT</version>
- <name>ServiceMix Runtime :: Main</name>
+ <version>1.0-m1-SNAPSHOT</version>
+ <name>ServiceMix Kernel :: Main</name>
<dependencies>
<dependency>
@@ -82,13 +82,13 @@
<configuration>
<instructions>
<_donotcopy>(CVS|.svn|config.properties)</_donotcopy>
- <Main-Class>org.apache.servicemix.runtime.main.Main</Main-Class>
+ <Main-Class>org.apache.servicemix.kernel.main.Main</Main-Class>
<Bundle-Name>Apache ServiceMix</Bundle-Name>
<Bundle-Description>OSGi R4 framework.</Bundle-Description>
<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
- <Export-Package>org.apache.servicemix.runtime.main.spi.*;version=${pom.version}</Export-Package>
+ <Export-Package>org.apache.servicemix.kernel.main.spi.*;version=${pom.version}</Export-Package>
<Private-Package>
- org.apache.servicemix.runtime.main,
+ org.apache.servicemix.kernel.main,
org.apache.felix.moduleloader.*,
org.apache.felix.framework.*,
org.osgi.framework,