From fda6e03d9e8af9eda62701cd8288f613abae3143 Mon Sep 17 00:00:00 2001 From: mguessan Date: Sun, 25 Jan 2015 22:23:38 +0000 Subject: [PATCH] OSX: refactor OSX package based on universalJavaApplicationStub git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@2329 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- build.xml | 72 ++++--------------- src/osx-java7/Info.plist | 73 ------------------- src/osx-java7/JavaAppLauncher | Bin 18604 -> 0 bytes src/osx-java7/en.lproj/Localizable.strings | 3 - src/osx/Info.plist | 36 ++++++++++ src/osx/davmail | 80 +++++++-------------- 6 files changed, 78 insertions(+), 186 deletions(-) delete mode 100644 src/osx-java7/Info.plist delete mode 100644 src/osx-java7/JavaAppLauncher delete mode 100644 src/osx-java7/en.lproj/Localizable.strings create mode 100644 src/osx/Info.plist diff --git a/build.xml b/build.xml index 1afb0526..2006b14f 100644 --- a/build.xml +++ b/build.xml @@ -93,75 +93,33 @@ - - - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - + @@ -424,7 +382,7 @@ - + diff --git a/src/osx-java7/Info.plist b/src/osx-java7/Info.plist deleted file mode 100644 index 69090c84..00000000 --- a/src/osx-java7/Info.plist +++ /dev/null @@ -1,73 +0,0 @@ - - - - LSUIElement0 - NSHighResolutionCapable - - CFBundleName - DavMail - CFBundleShortVersionString - ${release} - CFBundleGetInfoString - DavMail Gateway ${release-name} - CFBundleAllowMixedLocalizations - false - CFBundleInfoDictionaryVersion - 6.0 - CFBundleExecutable - davmail - CFBundleDevelopmentRegion - English - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - ${release} - CFBundleIconFile - tray.icns - Java - - MainClass - davmail.DavGateway - JVMVersion - 1.5+ - ClassPath - - $JAVAROOT/davmail.jar - $JAVAROOT/activation-1.1.1.jar - $JAVAROOT/appbundler-1.0.jar - $JAVAROOT/checkstyle-all-5.0.jar - $JAVAROOT/commons-codec-1.3.jar - $JAVAROOT/commons-collections-3.1.jar - $JAVAROOT/commons-httpclient-3.1.jar - $JAVAROOT/commons-logging-1.0.4.jar - $JAVAROOT/htmlcleaner-2.2.jar - $JAVAROOT/jackrabbit-webdav-2.4.3.jar - $JAVAROOT/jcharset-1.3.jar - $JAVAROOT/jcifs-1.3.14.jar - $JAVAROOT/jdom-1.0.jar - $JAVAROOT/libgrowl-0.2.jar - $JAVAROOT/libgrowl.jnilib - $JAVAROOT/log4j-1.2.16.jar - $JAVAROOT/mail-1.4.3.jar - $JAVAROOT/slf4j-api-1.3.1.jar - $JAVAROOT/slf4j-log4j12-1.3.1.jar - $JAVAROOT/stax-api-1.0.1.jar - $JAVAROOT/stax2-api-3.1.1.jar - $JAVAROOT/woodstox-core-asl-4.1.2.jar - $JAVAROOT/xercesImpl-2.8.1.jar - - VMOptions - -Dsun.net.inetaddr.ttl=60 -Xmx512m - WorkingDirectory - $APP_PACKAGE - - JVMMainClassName - davmail.DavGateway - JVMOptions - - -Dsun.net.inetaddr.ttl=60 -Xmx512m -Duser.dir=$APP_ROOT - - - diff --git a/src/osx-java7/JavaAppLauncher b/src/osx-java7/JavaAppLauncher deleted file mode 100644 index 7bddebea273d591f2b2f1185583982ddafb5eee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18604 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 G^7=21{e}$y diff --git a/src/osx-java7/en.lproj/Localizable.strings b/src/osx-java7/en.lproj/Localizable.strings deleted file mode 100644 index cfd612eb..00000000 --- a/src/osx-java7/en.lproj/Localizable.strings +++ /dev/null @@ -1,3 +0,0 @@ -"JRELoadError" = "Java 7 not available, please download and install from http://www.java.com"; -"MainClassNameRequired" = "Main class name is required."; -"JavaDirectoryNotFound" = "Unable to enumerate Java directory contents."; diff --git a/src/osx/Info.plist b/src/osx/Info.plist new file mode 100644 index 00000000..f9fe33cc --- /dev/null +++ b/src/osx/Info.plist @@ -0,0 +1,36 @@ + + + + LSUIElement0 + NSHighResolutionCapable + + CFBundleName + DavMail + CFBundleShortVersionString + ${release} + CFBundleGetInfoString + DavMail Gateway ${release-name} + CFBundleAllowMixedLocalizations + false + CFBundleInfoDictionaryVersion + 6.0 + CFBundleExecutable + davmail + CFBundleDevelopmentRegion + English + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + ${release} + CFBundleIconFile + tray.icns + JVMMainClassName + davmail.DavGateway + JVMOptions + + -Dsun.net.inetaddr.ttl=60 -Xmx512m + + + diff --git a/src/osx/davmail b/src/osx/davmail index 7a390494..8fa69526 100644 --- a/src/osx/davmail +++ b/src/osx/davmail @@ -183,7 +183,7 @@ else # set Working Directory and Java and Resources folder JavaFolder="${OracleJavaFolder}" ResourcesFolder="${OracleResourcesFolder}" - WorkingDirectory="${OracleJavaFolder}" + WorkingDirectory="${AppPackageFolder}" APP_ROOT="${AppPackageFolder}" @@ -222,67 +222,41 @@ elif [ -x /usr/libexec/java_home ] && [ -d "`/usr/libexec/java_home 2> /dev/null JAVACMD="`/usr/libexec/java_home 2> /dev/null`/bin/java" # otherwise check Java standard symlink (old Apple Java) -elif [ -h /Library/Java/Home ]; then +elif [ -x /Library/Java/Home/bin/java ]; then JAVACMD="/Library/Java/Home/bin/java" # fallback: public JRE plugin (Oracle Java) -else +elif [ -x "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" ]; then JAVACMD="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" -fi - +else # fallback fallback: /usr/bin/java -# but this would prompt to install deprecated Apple Java 6 - - - + JAVACMD="/usr/bin/java" +fi # -# execute JAVA commandline and do some pre-checks +# execute JAVA commandline #################################################### -# display error message if MainClassName is empty -if [ -z ${JVMMainClass} ]; then - # display error message with applescript - osascript -e "tell application \"System Events\" to display dialog \"ERROR launching '${CFBundleName}'!\n\n'MainClass' isn't specified!\nJava application cannot be started!\" with title \"${CFBundleName}\" buttons {\" OK \"} default button 1 with icon path to resource \"${CFBundleIconFile}\" in bundle (path to me)" - # exit with error - exit 1 +# enable drag&drop to the dock icon +export CFProcessPath="$0" -# check whether $JAVACMD is a file and executable -elif [ -f "$JAVACMD" ] && [ -x "$JAVACMD" ] ; then +# change to Working Directory based upon Apple/Oracle Plist info +cd "${WorkingDirectory}" - # enable drag&drop to the dock icon - export CFProcessPath="$0" - - # change to Working Directory based upon Apple/Oracle Plist info - cd "${WorkingDirectory}" - - # execute Java and set - # - classpath - # - dock icon - # - application name - # - JVM options - # - JVM default options - # - main class - # - JVM arguments - exec "$JAVACMD" \ - -cp "${JVMClassPath}" \ - -Xdock:icon="${ResourcesFolder}/${CFBundleIconFile}" \ - -Xdock:name="${CFBundleName}" \ - ${JVMOptions:+$JVMOptions }\ - ${JVMDefaultOptions:+$JVMDefaultOptions }\ - ${JVMMainClass}\ - ${JVMArguments:+ $JVMArguments} - - -else - - # display error message with applescript - osascript -e "tell application \"System Events\" to display dialog \"ERROR launching '${CFBundleName}'!\n\nYou need to have JAVA installed on your Mac!\nVisit http://java.com for more information...\" with title \"${CFBundleName}\" buttons {\" OK \"} default button 1 with icon path to resource \"${CFBundleIconFile}\" in bundle (path to me)" - - # and open java.com - open http://java.com - - # exit with error - exit 1 -fi +# execute Java and set +# - classpath +# - dock icon +# - application name +# - JVM options +# - JVM default options +# - main class +# - JVM arguments +exec "$JAVACMD" \ + -cp "${JVMClassPath}" \ + -Xdock:icon="${ResourcesFolder}/${CFBundleIconFile}" \ + -Xdock:name="${CFBundleName}" \ + ${JVMOptions:+$JVMOptions }\ + ${JVMDefaultOptions:+$JVMDefaultOptions }\ + ${JVMMainClass}\ + ${JVMArguments:+ $JVMArguments}