Avoid OSX specific dependencies (new build property)
Brought to you by:
mguessan
This patch adds a new build property to avoid building against OSX specific dependencies. The syntax used assumes java7 which so the patch also updates associated checks.
--- davmail.git.orig/build.xml 2018-11-22 10:02:57.662998324 +0100
+++ davmail.git/build.xml 2018-11-22 10:02:57.658998263 +0100
@@ -37,9 +37,9 @@
<available classname="javafx.embed.swing.JFXPanel" property="is.javafx"/>^M
</condition>^M
^M
- <condition property="is.java6">^M
+ <condition property="is.java7">^M
<not>^M
- <matches string="${ant.java.version}" pattern="1\.[012345]"/>^M
+ <matches string="${ant.java.version}" pattern="1\.[0123456]"/>^M
</not>^M
</condition>^M
^M
@@ -53,8 +53,8 @@
<equals arg1="${file.encoding}" arg2="UTF-8"/>^M
</condition>^M
^M
- <target name="check-java6" unless="is.java6">^M
- <fail message="Java 6 or later needed to build DavMail, current version is ${ant.java.version}, check JAVA_HOME"/>^M
+ <target name="check-java7" unless="is.java7">^M
+ <fail message="Java 7 or later needed to build DavMail, current version is ${ant.java.version}, check JAVA_HOME"/>^M
</target>^M
^M
<target name="check-encoding" unless="is.utf8">^M
@@ -82,7 +82,7 @@
<property name="release" value="${version}"/>^M
</target>^M
^M
- <target name="init" depends="check-encoding, check-java6, svnrelease, defaultrelease">^M
+ <target name="init" depends="check-encoding, check-java7, svnrelease, defaultrelease">^M
<echo message="Creating DavMail ${release} dist package" level="info"/>^M
<echo message="Java ${ant.java.version} and JavaFX ${is.javafx.message}" level="info"/>^M
<mkdir dir="target/classes"/>^M
@@ -94,6 +94,7 @@
includeantruntime="false">^M
<exclude name="davmail/exchange/auth/*Interactive*" unless="is.javafx"/>^M
<exclude name="davmail/service/DavService.java" if="nowindowsservice"/>^M
+ <exclude name="davmail/ui/tray/OSXAwtGatewayTray.java" if="noosxtray"/>^M
<compilerarg value="--add-exports" />^M
<compilerarg value="java.naming/com.sun.jndi.ldap=ALL-UNNAMED" />^M
<classpath>^M
@@ -104,10 +105,11 @@
^M
<target name="compile-java" depends="init" unless="is.java9">^M
<mkdir dir="target/classes"/>^M
- <javac srcdir="src/java" destdir="target/classes" source="1.6" target="1.6" debug="on" encoding="UTF-8"^M
+ <javac srcdir="src/java" destdir="target/classes" source="1.7" target="1.7" debug="on" encoding="UTF-8"^M
includeantruntime="false">^M
<exclude name="davmail/exchange/auth/*Interactive*" unless="is.javafx"/>^M
<exclude name="davmail/service/DavService.java" if="nowindowsservice"/>^M
+ <exclude name="davmail/ui/tray/OSXAwtGatewayTray.java" if="noosxtray"/>^M
<classpath>^M
<path refid="classpath"/>^M
</classpath>^M
@@ -125,7 +127,7 @@
^M
<target name="test-compile" depends="compile">^M
<mkdir dir="target/test-classes"/>^M
- <javac srcdir="src/test" destdir="target/test-classes" source="1.6" target="1.6" debug="on" encoding="UTF-8"^M
+ <javac srcdir="src/test" destdir="target/test-classes" source="1.7" target="1.7" debug="on" encoding="UTF-8"^M
includeantruntime="false">^M
<classpath>^M
<path refid="classpath"/>^M
@@ -211,7 +213,7 @@
<deb todir="dist"^M
package="davmail"^M
section="mail"^M
- depends="openjdk-11-jre|openjdk-8-jre|openjdk-7-jre|openjdk-6-jre|oracle-java7-jre|sun-java6-jre|default-jre,libswt-gtk-3-java|libswt-gtk-3.6-java|libswt-gtk-3.5-java|libswt-gtk-3.4-java,libswt-cairo-gtk-3-jni|libswt-cairo-gtk-3.5-jni">^M
+ depends="openjdk-11-jre|openjdk-8-jre|openjdk-7-jre|oracle-java7-jre|default-jre,libswt-gtk-3-java|libswt-gtk-3.6-java|libswt-gtk-3.5-java|libswt-gtk-3.4-java,libswt-cairo-gtk-3-jni|libswt-cairo-gtk-3.5-jni">^M
<version upstream="${release-name}"/>^M
<maintainer email="mguessan@free.fr" name="Mickaël Guessant"/>^M
<description synopsis="DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange Gateway">^M
Index: davmail.git/src/java/davmail/ui/tray/DavGatewayTray.java
===================================================================
--- davmail.git.orig/src/java/davmail/ui/tray/DavGatewayTray.java 2018-11-22 10:02:57.662998324 +0100
+++ davmail.git/src/java/davmail/ui/tray/DavGatewayTray.java 2018-11-22 10:03:39.823644387 +0100
@@ -263,26 +263,30 @@
try {
if (SystemTray.isSupported()) {
if (isOSX()) {
- davGatewayTray = new OSXAwtGatewayTray();
+ davGatewayTray = (DavGatewayTrayInterface) Class.forName("OSXAwtGatewayTray").newInstance();
} else {
davGatewayTray = new AwtGatewayTray();
}
davGatewayTray.init();
}
- } catch (NoClassDefFoundError e) {
+ } catch (NoClassDefFoundError | ClassNotFoundException | InstantiationException | IllegalAccessException e) {
DavGatewayTray.info(new BundleMessage("LOG_SYSTEM_TRAY_NOT_AVAILABLE"));
}
}
}
if (davGatewayTray == null) {
- if (isOSX()) {
- // MacOS
- davGatewayTray = new OSXFrameGatewayTray();
- } else {
- davGatewayTray = new FrameGatewayTray();
+ try {
+ if (isOSX()) {
+ // MacOS
+ davGatewayTray = (DavGatewayTrayInterface) Class.forName("OSXAwtGatewayTray").newInstance();
+ } else {
+ davGatewayTray = new FrameGatewayTray();
+ }
+ davGatewayTray.init();
+ } catch (NoClassDefFoundError | ClassNotFoundException | InstantiationException | IllegalAccessException e) {
+ DavGatewayTray.info(new BundleMessage("LOG_SYSTEM_TRAY_NOT_AVAILABLE"));
}
- davGatewayTray.init();
}
}
}
Need to check this again now that I removed OSX Growl support, there shouldn't be any explicit OSX dependency left
davmail now builds find without this patch and without Growl, this patch is now useless. Thank you! This can be closed.
Fixed by removing Growl support