From: <vam...@us...> - 2014-05-23 01:43:00
|
Revision: 23559 http://sourceforge.net/p/jedit/svn/23559 Author: vampire0 Date: 2014-05-23 01:42:57 +0000 (Fri, 23 May 2014) Log Message: ----------- update JARBundler to the latest version, and add copyright tag and UTI for document type Modified Paths: -------------- jEdit/trunk/build.xml jEdit/trunk/ivy.xml jEdit/trunk/net/sourceforge/jarbundler/AppBundleProperties.java jEdit/trunk/net/sourceforge/jarbundler/DocumentType.java jEdit/trunk/net/sourceforge/jarbundler/HelpBook.java jEdit/trunk/net/sourceforge/jarbundler/JarBundler.java jEdit/trunk/net/sourceforge/jarbundler/JavaProperty.java jEdit/trunk/net/sourceforge/jarbundler/PropertyListWriter.java jEdit/trunk/net/sourceforge/jarbundler/Service.java Modified: jEdit/trunk/build.xml =================================================================== --- jEdit/trunk/build.xml 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/build.xml 2014-05-23 01:42:57 UTC (rev 23559) @@ -1158,15 +1158,11 @@ debuglevel="${config.build.debuglevel}" nowarn="${config.build.nowarn}" deprecation="${config.build.deprecation}" - source="1.4" - target="1.4" + source="1.6" + target="1.6" compiler="modern" encoding="UTF-8" includeAntRuntime="true"> - <classpath> - <fileset dir="${lib.dir}/jarbundler" - includes="*.jar"/> - </classpath> <compilerarg line="${config.build.compilerarg}"/> </javac> </target> @@ -1185,10 +1181,6 @@ classname="net.sourceforge.jarbundler.JarBundler" classpath="${dist.dir}/classes/jarbundler" uri="antlib:net.sourceforge.jarbundler"> - <classpath> - <fileset dir="${lib.dir}/jarbundler" - includes="*.jar"/> - </classpath> </taskdef> <tstamp> <format property="current.year" @@ -1206,6 +1198,7 @@ extraclasspath="/System/Library/Java" icon="icons/icon.icns" infostring="jEdit ${jedit.version}, Copyright © 1998-${current.year} Contributors" + copyright="Copyright © 1998-${current.year} Contributors" jvmversion="${mac.target.java.version}" shortname="jEdit" signature="JESP" @@ -1225,6 +1218,7 @@ <documenttype name="jEdit TEXT Document" extensions="*" ostypes="TEXT ****" + utis="public.text" iconfile="icons/file.icns" role="Editor"/> </jarbundler:create> Modified: jEdit/trunk/ivy.xml =================================================================== --- jEdit/trunk/ivy.xml 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/ivy.xml 2014-05-23 01:42:57 UTC (rev 23559) @@ -48,7 +48,6 @@ <conf name="ant-contrib" description="Dependencies for ant-contrib" visibility="private"/> <conf name="docbook" description="Dependencies for translating DocBook files" visibility="private"/> <conf name="fop" description="Dependencies for FOP" visibility="private"/> - <conf name="jarbundler" description="Dependencies for JarBundler" visibility="private"/> <conf name="launch4j" description="Dependencies for Launch4j" visibility="private"/> <conf name="scripting" description="Dependencies for Scripting" visibility="private"/> <conf name="default-plugins" description="Shipped default plugins" visibility="private"/> @@ -67,7 +66,7 @@ <artifact name="docbook-xsl" e:classifier="resources" type="zip"/> </dependency> <dependency org="net.sf.docbook" name="docbook-xsl-saxon" rev="1.0.0" conf="docbook"/> - <dependency org="xerces" name="xercesImpl" rev="2.10.0" conf="docbook,jarbundler"/> + <dependency org="xerces" name="xercesImpl" rev="2.10.0" conf="docbook"/> <dependency org="org.apache.xmlgraphics" name="fop" rev="1.0" conf="fop"/> Modified: jEdit/trunk/net/sourceforge/jarbundler/AppBundleProperties.java =================================================================== --- jEdit/trunk/net/sourceforge/jarbundler/AppBundleProperties.java 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/net/sourceforge/jarbundler/AppBundleProperties.java 2014-05-23 01:42:57 UTC (rev 23559) @@ -3,19 +3,18 @@ * * Copyright (c) 2003, Seth J. Morabito <se...@lo...> All rights reserved. * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. + * Licensed 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 * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * http://www.apache.org/licenses/LICENSE-2.0 * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307, USA. + * 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. + * */ @@ -26,6 +25,7 @@ import java.util.Hashtable; import java.util.List; import java.util.LinkedList; +// import java.util.Scanner; // Java language imports import java.lang.String; @@ -54,9 +54,19 @@ // Help Book name, optional private String mCFHelpBookName = null; + // StartOnMainThread, optional + private Boolean mStartOnMainThread = null; + + // StartAsAgent, optional (per Michael Bader <nu...@me...>) + private Boolean mLSUIElement = null; + // Explicit default: false private boolean mCFBundleAllowMixedLocalizations = false; + // Copyright, optional + + private String mNSHumanReadableCopyright = null; + // Explicit default: JavaApplicationStub private String mCFBundleExecutable = "JavaApplicationStub"; @@ -78,6 +88,7 @@ // Optional keys, with no defaults. private String mCFBundleIconFile = null; + private String mSplashFile = null; private String mCFBundleIdentifier = null; private String mVMOptions = null; // Java VM options private String mWorkingDirectory = null; // Java Working Dir @@ -87,6 +98,12 @@ private List mClassPath = new ArrayList(); private List mExtraClassPath = new ArrayList(); + // New in JarBundler 2.2.0; Tobias Bley ---------------- + private List mJVMArchs = new ArrayList(); + private List mLSArchitecturePriority = new ArrayList(); + private String mSUFeedURL = null; + // ----------------------------------------------------- + // Java properties private Hashtable mJavaProperties = new Hashtable(); @@ -110,7 +127,20 @@ return mJavaProperties; } - public void addToClassPath(String s) { + // New in JarBundler 2.2.0; Tobias Bley ---------------- + + public void addToJVMArchs(String s) { + mJVMArchs.add(s); + } + + public List getJVMArchs() { + return mJVMArchs; + } + + //------------------------------------------------------ + + public void addToClassPath(String s) + { mClassPath.add("$JAVAROOT/" + s); } @@ -234,6 +264,14 @@ return mCFBundleIconFile; } + public void setSplashFile(String s) { + mSplashFile = s; + } + + public String getSplashFile() { + return mSplashFile; + } + public void setCFBundleAllowMixedLocalizations(boolean b) { mCFBundleAllowMixedLocalizations = b; } @@ -242,6 +280,14 @@ return mCFBundleAllowMixedLocalizations; } + public void setNSHumanReadableCopyright(String s) { + mNSHumanReadableCopyright = s; + } + + public String getNSHumanReadableCopyright() { + return mNSHumanReadableCopyright; + } + public void setCFBundleExecutable(String s) { mCFBundleExecutable = s; } @@ -290,7 +336,30 @@ return mCFHelpBookName; } - public void setMainClass(String s) { + + public void setStartOnMainThread(Boolean b) { + mStartOnMainThread = b; + } + + public Boolean getStartOnMainThread() { + return mStartOnMainThread; + } + + + + public Boolean getLSUIElement() { + return mLSUIElement; + } + + + + public void setLSUIElement( Boolean b ) { + this.mLSUIElement = b; + } + + + + public void setMainClass( String s ) { mMainClass = s; } @@ -334,4 +403,55 @@ return mClassPath; } + // New in JarBundler 2.2.0; Tobias Bley ---------------------------------------------------- + + /** + * @param archs space separated archs, e.g. i386 x64_64 ppc + */ + + public void setJVMArchs(String archs) { + + // Use for 1.4 backwards compatability + String[] tokens = archs.split("\\s+"); + for (int i=0; i<tokens.length; i++) + mJVMArchs.add(tokens[i]); + + // 'java.util.Scanner' is available in JDK 1.5 + // Scanner s = new Scanner(archs); + // s = s.useDelimiter("\\s+"); + // while (s.hasNext()) + // mJVMArchs.add(s.next()); + } + + public List getLSArchitecturePriority() { + return mLSArchitecturePriority; + + } + + /** + * @param lsArchitecturePriority space separated LSArchitecturePriority, e.g. i386 x64_64 ppc + */ + public void setLSArchitecturePriority(String lsArchitecturePriority) { + + // Use for 1.4 backwards compatability + String[] tokens = lsArchitecturePriority.split("\\s+"); + for (int i=0; i<tokens.length; i++) + mLSArchitecturePriority.add(tokens[i]); + + // 'java.util.Scanner' is available in JDK 1.5 + // Scanner s = new Scanner(lsArchitecturePriority); + // s = s.useDelimiter("\\s+"); + // while (s.hasNext()) + // mLSArchitecturePriority.add(s.next()); + } + + public String getSUFeedURL() { + return mSUFeedURL; + } + + public void setSUFeedURL(String suFeedURL) { + this.mSUFeedURL = suFeedURL; + } + + //------------------------------------------------------------------------------------------ } Modified: jEdit/trunk/net/sourceforge/jarbundler/DocumentType.java =================================================================== --- jEdit/trunk/net/sourceforge/jarbundler/DocumentType.java 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/net/sourceforge/jarbundler/DocumentType.java 2014-05-23 01:42:57 UTC (rev 23559) @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2003, Seth J. Morabito <se...@lo...> All rights reserved. + * + * Licensed 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 net.sourceforge.jarbundler; import java.lang.String; @@ -19,7 +35,14 @@ * * Name - The name of the document type. * - * + * UTI - A list of Uniform Type Identifier (UTI) strings for the document. UTIs + * are strings that uniquely identify abstract types. They can be used to + * describe a file format or data type but can also be used to describe type + * information for other sorts of entities, such as directories, volumes, or + * packages. For more information on UTIs, see the header file UTType.h, + * available as part of LaunchServices.framework in Mac OS X v10.3 and later. + * + * * Extensions - A list of the filename extensions for this document type. Don't * include the period in the extension. * @@ -89,6 +112,17 @@ public String[] mimeTypes = null; + /** + * UTI. A list of Uniform Type Identifier (UTI) strings for the document. + * UTIs are strings that uniquely identify abstract types. They can be used + * to describe a file format or data type but can also be used to describe + * type information for other sorts of entities, such as directories, + * volumes, or packages. For more information on UTIs, see the header file + * UTType.h, available as part of LaunchServices.framework in Mac OS X v10.3 + * and later. + */ + public String[] UTIs = null; + /** * Icon File. The name of the file that contains the document types icon. */ @@ -158,6 +192,15 @@ return (mimeTypes == null) ? EMPTYLIST : Arrays.asList(this.mimeTypes); } + // Uniform Type Identifiers + public void setUTIs(String UTIs) { + this.UTIs = UTIs.split("[\\s,]"); + } + + public List getUTIs() { + return this.UTIs == null ? EMPTYLIST : Arrays.asList(this.UTIs); + } + // Document icon file public void setIconFile(File iconFile) { this.iconFile = iconFile; Modified: jEdit/trunk/net/sourceforge/jarbundler/HelpBook.java =================================================================== --- jEdit/trunk/net/sourceforge/jarbundler/HelpBook.java 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/net/sourceforge/jarbundler/HelpBook.java 2014-05-23 01:42:57 UTC (rev 23559) @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2003, Seth J. Morabito <se...@lo...> All rights reserved. + * + * Licensed 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 net.sourceforge.jarbundler; import java.util.ArrayList; Modified: jEdit/trunk/net/sourceforge/jarbundler/JarBundler.java =================================================================== --- jEdit/trunk/net/sourceforge/jarbundler/JarBundler.java 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/net/sourceforge/jarbundler/JarBundler.java 2014-05-23 01:42:57 UTC (rev 23559) @@ -1,21 +1,20 @@ /* * A Mac OS X Jar Bundler Ant Task. * + * * Copyright (c) 2003, Seth J. Morabito <se...@lo...> All rights reserved. * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. + * Licensed 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 * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * http://www.apache.org/licenses/LICENSE-2.0 * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307, USA. + * 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 net.sourceforge.jarbundler; @@ -406,6 +405,16 @@ } /** + * Setter for the "splashfile" attribute (optional). If it is somewhere + * in a jar file, which contains a Splash-Screen manifest entry, + * use "$JAVAROOT/myjar.jar" + */ + + public void setSplashFile(String s) { + bundleProperties.setSplashFile(s); + } + + /** * Setter for the "bundleid" attribute (optional) This key specifies a * unique identifier string for the bundle. This identifier should be in the * form of a Java-style package name, for example com.mycompany.myapp. The @@ -419,16 +428,32 @@ } /** - * Setter for the "developmentregion" attribute(optional) Default "English". + * Setter for the "developmentregion" attribute (optional) Default "English". */ public void setDevelopmentregion(String s) { bundleProperties.setCFBundleDevelopmentRegion(s); } + /** Tobias Fischer, v2.3.0 + * Setter for the "allowmixedlocalizations" attribute (optional) Default "false". + */ + public void setAllowMixedLocalizations(boolean b) { + bundleProperties.setCFBundleAllowMixedLocalizations(b); + } + + /** Tobias Fisher, v2.3.1 + * Setter for the "NSHumanReadableCopyright" attribute (optional) + */ + + public void setCopyright(String s) { + bundleProperties.setNSHumanReadableCopyright(s); + } + /** - * Setter for the "aboutmenuname" attribute (optional) + * Setter for the deprecated "aboutmenuname" attribute (optional) */ public void setAboutmenuname(String s) { + System.err.println("WARNING: 'aboutmenuname' is deprecated! Use JarBundler attribute 'shortname' instead!"); bundleProperties.setCFBundleName(s); } @@ -510,7 +535,41 @@ bundleProperties.setJVMVersion(s); } + // New in JarBundler 2.2.0; Tobias Bley ---------------- + /** + * Setter for the "JVMArchs" attribute (optional) + */ + public void setJvmArchs(String s) { + bundleProperties.setJVMArchs(s); + } + + /** Michael Bader <nu...@me...> -------------------- + * Setter for the "LSArchitecturePriority" attribute (optional) + */ + public void setLSArchitecturePriority(String s) { + bundleProperties.setLSArchitecturePriority(s); + } + + //------------------------------------------------------- + + /** + * Setter for the "startonmainthread" attribute (optional) + */ + public void setStartonmainthread(boolean b) { + bundleProperties.setStartOnMainThread(new Boolean(b)); + } + + + /** + * Setter for the "startasagent" attribute (optional) + */ + public void setIsAgent( boolean b ) { + bundleProperties.setLSUIElement( new Boolean( b ) ); + } + + + /** * Setter for the "infostring" attribute (optional) This key identifies a * human-readable plain text string displaying the copyright information for * the bundle. The Finder displays this information in the Info window of @@ -540,6 +599,7 @@ * build. */ public void setShortInfoString(String s) { + System.err.println("WARNING: 'shortinfostring' is deprecated! Use JarBundler attribute 'infostring' instead!"); setVersion(s); } @@ -597,6 +657,7 @@ bundleProperties.setCFBundleHelpBookName(s); } + /** * Setter for the "jars" attribute (required if no "jarfileset" is present) */ @@ -636,6 +697,7 @@ * Setter for the "extraclasspath" attribute (optional) */ public void setExtraclasspath(String s) { + if (s == null || s.trim().equals("")) return; PatternSet patset = new PatternSet(); patset.setIncludes(s); @@ -1159,7 +1221,8 @@ for (Iterator jarIter = mExtraClassPathAttrs.iterator(); jarIter .hasNext();) { File src = (File) jarIter.next(); - bundleProperties.addToExtraClassPath(src.getPath()); + String path = src.getPath().replace(File.separatorChar, '/'); + bundleProperties.addToExtraClassPath(path); } } @@ -1178,7 +1241,8 @@ for (int i = 0; i < files.length; i++) { File f = new File(srcDir, files[i]); - bundleProperties.addToExtraClassPath(f.getPath()); + String path = f.getPath().replace(File.separatorChar, '/'); + bundleProperties.addToExtraClassPath(path); } } } @@ -1194,7 +1258,8 @@ for (int i = 0; i < files.length; i++) { File f = new File(srcDir, files[i]); - bundleProperties.addToExtraClassPath(f.getPath()); + String path = f.getPath().replace(File.separatorChar, '/'); + bundleProperties.addToExtraClassPath(path); } } } Modified: jEdit/trunk/net/sourceforge/jarbundler/JavaProperty.java =================================================================== --- jEdit/trunk/net/sourceforge/jarbundler/JavaProperty.java 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/net/sourceforge/jarbundler/JavaProperty.java 2014-05-23 01:42:57 UTC (rev 23559) @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2003, Seth J. Morabito <se...@lo...> All rights reserved. + * + * Licensed 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 net.sourceforge.jarbundler; public class JavaProperty { Modified: jEdit/trunk/net/sourceforge/jarbundler/PropertyListWriter.java =================================================================== --- jEdit/trunk/net/sourceforge/jarbundler/PropertyListWriter.java 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/net/sourceforge/jarbundler/PropertyListWriter.java 2014-05-23 01:42:57 UTC (rev 23559) @@ -1,26 +1,32 @@ /* * Write the application bundle file: Info.plist * - * Copyright (c) 2006, William A. Gilbert <gi...@in...> All rights reserved. * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. + * Copyright (c) 2003, Seth J. Morabito <se...@lo...> All rights reserved. * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. + * Licensed 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 * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307, USA. + * 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 net.sourceforge.jarbundler; // This package's imports +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; import net.sourceforge.jarbundler.AppBundleProperties; // Java I/O @@ -60,13 +66,7 @@ import org.w3c.dom.Attr; -// Xerces serializer -import org.apache.xml.serialize.OutputFormat; -import org.apache.xml.serialize.XMLSerializer; -import org.apache.xml.serialize.LineSeparator; - - /** * Write out a Java application bundle property list file. For descriptions of * the property list keys, see <a @@ -114,31 +114,24 @@ this.document = createDOM(); buildDOM(); - - // Serialize the DOM into the writer - writer = new BufferedWriter(new OutputStreamWriter( - new FileOutputStream(fileName), "UTF-8")); - // Prettify the XML Two space indenting, no line wrapping - OutputFormat outputFormat = new OutputFormat(); - outputFormat.setMethod("xml"); - outputFormat.setIndenting(true); - outputFormat.setIndent(2); - outputFormat.setLineWidth(0); - - // Create a DOM serlializer and write the XML - XMLSerializer serializer = new XMLSerializer(writer, outputFormat); - serializer.asDOMSerializer(); - serializer.serialize(this.document); - - } catch (ParserConfigurationException pce) { + + TransformerFactory transFactory = TransformerFactory.newInstance(); + Transformer trans = transFactory.newTransformer(); + trans.setOutputProperty(OutputKeys.INDENT, "yes"); + trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","2" ); + writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8")); + trans.transform(new DOMSource(document), new StreamResult(writer)); + } catch (TransformerConfigurationException tce) { + throw new BuildException(tce); + } catch (TransformerException te) { + throw new BuildException(te); + } catch (ParserConfigurationException pce) { throw new BuildException(pce); } catch (IOException ex) { throw new BuildException("Unable to write \"" + fileName + "\""); } finally { fileUtils.close(writer); } - - } private Document createDOM() throws ParserConfigurationException { @@ -179,8 +172,7 @@ // Mac OS X required key, defaults to "false" writeKeyStringPair("CFBundleAllowMixedLocalizations", - (bundleProperties.getCFBundleAllowMixedLocalizations() ? "true" : "false"), - dict); + (bundleProperties.getCFBundleAllowMixedLocalizations() ? "true" : "false"), dict); // Mac OS X required, defaults to "6.0" writeKeyStringPair("CFBundleInfoDictionaryVersion", @@ -218,6 +210,14 @@ if (bundleProperties.getCFBundleHelpBookName() != null) writeKeyStringPair("CFBundleHelpBookName", bundleProperties.getCFBundleHelpBookName(), dict); + // Copyright, optional + if(bundleProperties.getNSHumanReadableCopyright() != null) + writeKeyStringPair("NSHumanReadableCopyright", bundleProperties.getNSHumanReadableCopyright(), dict); + + // IsAgent, optional + if ( bundleProperties.getLSUIElement() != null ) + writeKeyBooleanPair( "LSUIElement", bundleProperties.getLSUIElement(), dict ); + // Document Types, optional List documentTypes = bundleProperties.getDocumentTypes(); @@ -234,8 +234,24 @@ // Target JVM version, optional but recommended if (bundleProperties.getJVMVersion() != null) writeKeyStringPair("JVMVersion", bundleProperties.getJVMVersion(), javaDict); + + // New in JarBundler 2.2.0; Tobias Bley --------------------------------- + // JVMArchs, optional + List jvmArchs = bundleProperties.getJVMArchs(); + + if (jvmArchs != null && !jvmArchs.isEmpty()) + writeJVMArchs(jvmArchs, javaDict); + // lsArchitecturePriority, optional + List lsArchitecturePriority = bundleProperties.getLSArchitecturePriority(); + + if (lsArchitecturePriority != null && !lsArchitecturePriority.isEmpty()) + writeLSArchitecturePriority(lsArchitecturePriority, javaDict); + + //----------------------------------------------------------------------- + + // Classpath is composed of two types, required // 1: Jars bundled into the JAVA_ROOT of the application // 2: External directories or files with an absolute path @@ -255,6 +271,16 @@ if (bundleProperties.getWorkingDirectory() != null) writeKeyStringPair("WorkingDirectory", bundleProperties.getWorkingDirectory(), javaDict); + // StartOnMainThread, optional + if (bundleProperties.getStartOnMainThread() != null) { + writeKey("StartOnMainThread", javaDict); + createNode(bundleProperties.getStartOnMainThread().toString(), javaDict); + } + + // SplashFile, optional + if (bundleProperties.getSplashFile() != null) + writeKeyStringPair("SplashFile", bundleProperties.getSplashFile(), javaDict); + // Main class arguments, optional if (bundleProperties.getArguments() != null) writeKeyStringPair("Arguments", bundleProperties.getArguments(), javaDict); @@ -319,6 +345,13 @@ writeArray(mimeTypes, documentDict); } + List UTIs = documentType.getUTIs(); + + if (UTIs.isEmpty() == false) { + writeKey("LSItemContentTypes", documentDict); + writeArray(UTIs, documentDict); + } + // Only write this key if true if (documentType.isBundle()) writeKeyStringPair("LSTypeIsPackage", "true", documentDict); @@ -400,7 +433,24 @@ } } - private Node createNode(String tag, Node appendTo) { + // New in JarBundler 2.2.0; Tobias Bley --------------------------------- + + private void writeJVMArchs(List jvmArchs, Node appendTo) + { + writeKey("JVMArchs", appendTo); + writeArray(jvmArchs, appendTo); + } + + private void writeLSArchitecturePriority(List lsArchitecturePriority, Node appendTo) + { + writeKey("LSArchitecturePriority", appendTo); + writeArray(lsArchitecturePriority, appendTo); + } + + //---------------------------------------------------------------------- + + private Node createNode(String tag, Node appendTo) + { Node node = this.document.createElement(tag); appendTo.appendChild(node); return node; @@ -417,6 +467,16 @@ } + private void writeKeyBooleanPair(String key, Boolean b, Node appendTo) { + + if ( b == null ) + return; + + writeKey( key, appendTo ); + writeBoolean( b, appendTo ); + } + + private void writeKey(String key, Node appendTo) { Element keyNode = this.document.createElement("key"); appendTo.appendChild(keyNode); @@ -438,5 +498,17 @@ writeString((String)it.next(), arrayNode); } + + private void writeBoolean( Boolean b, Node appendTo ) { + Element booleanNode = null; + if ( b.booleanValue() ) { + booleanNode = this.document.createElement( "true" ); + } + else { + booleanNode = this.document.createElement( "false" ); + + } + appendTo.appendChild( booleanNode ); + } } Modified: jEdit/trunk/net/sourceforge/jarbundler/Service.java =================================================================== --- jEdit/trunk/net/sourceforge/jarbundler/Service.java 2014-05-22 06:13:44 UTC (rev 23558) +++ jEdit/trunk/net/sourceforge/jarbundler/Service.java 2014-05-23 01:42:57 UTC (rev 23559) @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2003, Seth J. Morabito <se...@lo...> All rights reserved. + * + * Licensed 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 net.sourceforge.jarbundler; import java.util.ArrayList; @@ -11,7 +27,7 @@ * * Port Name - The name of the port the application monitors for incoming service requests. * - + * * Message - The name of the instance method to invoke for the service. * In Objective-C, the instance method must be of the form messageName:userData:error:. * In Java, the instance method must be of the form messageName(NSPasteBoard,String). @@ -65,30 +81,30 @@ /** - + * * The name of the instance method to invoke for the service. * In Objective-C, the instance method must be of the form messageName:userData:error:. - + * * In Java, the instance method must be of the form messageName(NSPasteBoard,String). */ private String message = null; /** - + * * The text to add to the Services menu. The value must be unique. - + * * You can use a slash character "/" to specify a submenu. For example, Mail/Send - + * * would appear in the Services Menu as a menu named Mail with an item named Send. */ private String menuItem = null; /** * A list of the data type names that can be read by the service. - + * * The NSPasteboard class description lists several common data types. - + * * You must specify either Send Types, Return Types or both. */ private String[] sendTypes = null; @@ -96,9 +112,9 @@ /** * A list of the data type names that can be returned by the service. - + * * The NSPasteboard class description lists several common data types. - + * * You must specify either Return Types, Send Types or both. */ private String[] returnTypes = null; @@ -106,33 +122,33 @@ /** * This attribute is optional. The keyboard equivalent used to invoke - + * * the service menu command. The value has to be a single character. Users invoke this - + * * keyboard equivalent by pressing the Command and Shift key modifiers along with the character. - + * */ private String keyEquivalent = null; /** - + * * This attribute is optional. The value is free choosable and is passed - + * * to the method as second parameter. - + * */ private String userData = null; /** - + * * This attribute is optional. It indicates the number of milliseconds - + * * Services should wait for a response from the application providing - + * * a service when a respond is required. - + * */ private String timeout = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |