Author: psmith Date: Sun Jan 15 13:18:08 2006 New Revision: 369263 URL: http://svn.apache.org/viewcvs?rev=369263&view=rev Log: After quite a bit of fiddling I realised that Sun is stupid.
The main-class being run under Java Webstart must be in the first jar listed. Changed the script so a sort is used to guarantee that the chainsaw jar is placed ahead of all the others when creating the JNLP file. Modified: logging/chainsaw/trunk/anttasks-src/org/apache/chainsaw/ant/CreateShellScripts.java Modified: logging/chainsaw/trunk/anttasks-src/org/apache/chainsaw/ant/CreateShellScripts.java URL: http://svn.apache.org/viewcvs/logging/chainsaw/trunk/anttasks-src/org/apache/chainsaw/ant/CreateShellScripts.java?rev=369263&r1=369262&r2=369263&view=diff ============================================================================== --- logging/chainsaw/trunk/anttasks-src/org/apache/chainsaw/ant/CreateShellScripts.java (original) +++ logging/chainsaw/trunk/anttasks-src/org/apache/chainsaw/ant/CreateShellScripts.java Sun Jan 15 13:18:08 2006 @@ -5,12 +5,11 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.StringWriter; import java.io.Writer; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Vector; @@ -86,7 +85,27 @@ } StringBuffer jarBuf = new StringBuffer(); - for (Iterator iter = filenames.iterator(); iter.hasNext();) { + +// TODO MUST place chainsaw jar that contains the main class entry as the first jar output... + /** + * Good one Sun! For some stupid reason, we MUST list the jar that contains the main-class + * FIRST. Why? Why? WHYYYYYYYYYYYYYYYYYY? + * + * So, we sort a copied list and make sure that the chainsaw jar is first. + */ + List list = new ArrayList(filenames); + Collections.sort(list, new Comparator() { + + public int compare(Object o1, Object o2) { + if(o1.toString().toLowerCase().indexOf("chainsaw")>-1) { + return -1; + }else if(o2.toString().toLowerCase().indexOf("chainsaw")>-1) { + return 1; + }else { + return 0; + } + }}); + for (Iterator iter = list.iterator(); iter.hasNext();) { String jar = (String) iter.next(); jarBuf.append("\t<jar href=\"lib/"+jar + "\"/>\n"); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]