You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2004/02/14 00:21:39 UTC
cvs commit: incubator-geronimo/modules/system/src/java/org/apache/geronimo/system/serverinfo ServerInfo.java
dain 2004/02/13 15:21:39
Modified: modules/system/src/java/org/apache/geronimo/system/serverinfo
ServerInfo.java
Log:
Addded automatic detection of base directory.
Revision Changes Path
1.2 +18 -3 incubator-geronimo/modules/system/src/java/org/apache/geronimo/system/serverinfo/ServerInfo.java
Index: ServerInfo.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/system/src/java/org/apache/geronimo/system/serverinfo/ServerInfo.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ServerInfo.java 12 Feb 2004 18:12:52 -0000 1.1
+++ ServerInfo.java 13 Feb 2004 23:21:39 -0000 1.2
@@ -58,6 +58,8 @@
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
+import java.net.JarURLConnection;
+import java.net.URL;
import org.apache.geronimo.gbean.GAttributeInfo;
import org.apache.geronimo.gbean.GBeanInfo;
@@ -78,7 +80,7 @@
baseURI = null;
}
- public ServerInfo(String baseDirectory) {
+ public ServerInfo(String baseDirectory) throws Exception {
// force load of server constants
ServerConstants.getVersion();
@@ -94,8 +96,21 @@
this.baseDirectory = baseDirectory;
} else {
// last chance - guess where the base directory shoul be
- throw new IllegalArgumentException("Could not find base directory. Please use the -Dgeronimo.base.dir=<your-directory> command line option.");
+ URL url = getClass().getClassLoader().getResource("META-INF/startup-jar");
+ if(url != null) {
+ try {
+ JarURLConnection jarConnection = (JarURLConnection) url.openConnection();
+ URI uri = new URI(jarConnection.getJarFileURL().toString()).resolve("..");
+ this.baseDirectory = uri.getPath();
+ } catch (Exception e) {
+ // ignore exception is thrown below
+ }
+ }
}
+ }
+
+ if(this.baseDirectory == null) {
+ throw new IllegalArgumentException("Could not find base directory. Please use the -Dgeronimo.base.dir=<your-directory> command line option.");
}
// now that we have the base directory, check that it is a valid directory