You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2006/06/09 03:03:26 UTC

svn commit: r412895 - in /incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher: LauncherSupport.java MainLauncher.java

Author: kentam
Date: Thu Jun  8 18:03:26 2006
New Revision: 412895

URL: http://svn.apache.org/viewvc?rev=412895&view=rev
Log:
Surfing the code and ran into some bugs:

Fix resource package name.
Clarify precedence of "--main" param in conjunction with Main-Class manifest entries; whatever is specified with "--main" should take priority.


Modified:
    incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/LauncherSupport.java
    incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/MainLauncher.java

Modified: incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/LauncherSupport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/LauncherSupport.java?rev=412895&r1=412894&r2=412895&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/LauncherSupport.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/LauncherSupport.java Thu Jun  8 18:03:26 2006
@@ -28,8 +28,8 @@
  */
 public abstract class LauncherSupport {
     private ClassLoader applicationLoader = ClassLoader.getSystemClassLoader();
-    protected String className;
-    protected String[] args;
+    private String className;
+    private String[] args;
 
     /**
      * Returns the classloader for application classes.

Modified: incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/MainLauncher.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/MainLauncher.java?rev=412895&r1=412894&r2=412895&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/MainLauncher.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/commands/launcher/src/main/java/org/apache/tuscany/launcher/MainLauncher.java Thu Jun  8 18:03:26 2006
@@ -83,21 +83,21 @@
         ClassLoader cl = Thread.currentThread().getContextClassLoader();
         Thread.currentThread().setContextClassLoader(getApplicationLoader());
         try {
-            if (className == null) {
+            if (getClassName() == null) {
                 throw new InvalidMainException("Main-Class not specified");
             }
-            Class<?> mainClass = Class.forName(className, true, getApplicationLoader());
+            Class<?> mainClass = Class.forName(getClassName(), true, getApplicationLoader());
             Method main;
             try {
                 main = mainClass.getMethod("main", String[].class);
             } catch (NoSuchMethodException e) {
-                throw new InvalidMainException(className);
+                throw new InvalidMainException(getClassName());
             }
             if (!Modifier.isStatic(main.getModifiers())) {
                 throw new InvalidMainException(main.toString());
             }
             try {
-                main.invoke(null, (Object) args);
+                main.invoke(null, (Object) getArgs());
             } catch (IllegalAccessException e) {
                 // assertion as getMethod() should not have returned a method that is not accessible
                 throw new AssertionError();
@@ -130,6 +130,7 @@
     }
 
     protected void parseArguments(String... args) {
+    	String specifiedMain = null;
         int i = 0;
         while (i < args.length) {
             int left = args.length - i;
@@ -138,7 +139,7 @@
                 setClassPath(args[i + 1]);
                 i += 2;
             } else if ("--main".equals(arg) && left > 1) {
-                setClassName(args[i + 1]);
+                specifiedMain = args[i + 1];
                 i += 2;
             } else if (arg.startsWith("--")) {
                 usage();
@@ -146,6 +147,11 @@
                 break;
             }
         }
+        
+        // Specified main-class overrides anything found on classpath
+        if (specifiedMain != null)
+        	setClassName(specifiedMain);
+        
         String[] mainArgs = new String[args.length - i];
         System.arraycopy(args, i, mainArgs, 0, mainArgs.length);
         setArgs(mainArgs);
@@ -153,7 +159,7 @@
 
     protected void usage() {
         ResourceBundle bundle = ResourceBundle.getBundle(MainLauncher.class.getName());
-        System.err.print(bundle.getString("org.apache.tuscany.standalone.Usage"));
+        System.err.print(bundle.getString("org.apache.tuscany.launcher.Usage"));
         System.exit(1);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org