]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.osgiboot/src/main/ant/osgiboot.xml
Simplify equinox launching
[gpl/argeo-slc.git] / runtime / org.argeo.slc.osgiboot / src / main / ant / osgiboot.xml
diff --git a/runtime/org.argeo.slc.osgiboot/src/main/ant/osgiboot.xml b/runtime/org.argeo.slc.osgiboot/src/main/ant/osgiboot.xml
new file mode 100644 (file)
index 0000000..3e17370
--- /dev/null
@@ -0,0 +1,84 @@
+<project default="launch">
+       <dirname property="equinoxDir" file="${ant.file}" />
+       <property name="equinoxJar" location="${equinoxDir}/org.eclipse.osgi.jar" />
+       <property name="equinoxArgs" value="-console -clean -noExit" />
+       <property name="osgiBootBundle" value="org.argeo.slc.osgiboot.jar" />
+       <property name="configurationDir" location="${equinoxDir}/configuration" />
+       <property name="configurationFile" location="${configurationDir}/config.ini" />
+
+       <target name="launch" depends="writeConfiguration,start">
+
+       </target>
+
+       <target name="writeConfiguration" description="Generate configuration based on properties">
+               <echo message="equinoxJar=${equinoxJar}" />
+               <echo message="configurationDir=${configurationDir}" />
+               <mkdir dir="${configurationDir}"/>
+               <echo message="osgiBootBundle=${osgiBootBundle}" />
+               <echo file="${configurationFile}">
+                       <![CDATA[
+osgi.bundles=reference:file:${osgiBootBundle}@start
+]]>
+               </echo>
+
+               <addProperty name="slc.osgi.locations" />
+               <addProperty name="slc.osgi.start" />
+               <addProperty name="slc.osgi.devBases" />
+               <addProperty name="slc.osgi.devPatterns" />
+               <addProperty name="slc.maven.dependencyFile" />
+       </target>
+
+       <target name="start.java" description="Start Equinox runtime based on generated config">
+               <java classname="org.eclipse.core.runtime.adaptor.EclipseStarter" fork="true" dir="${equinoxDir}" classpath="${equinoxJar}">
+                       <arg value="-console" />
+                       <arg value="-noExit" />
+                       <arg value="-clean" />
+                       <arg value="-debug" />
+                       <arg value="-configuration" />
+                       <arg value="${configurationDir}" />
+               </java>
+       </target>
+
+       <target name="start">
+               <property name="commandArgs" value="-cp ${equinoxJar} org.eclipse.core.runtime.adaptor.EclipseStarter ${equinoxArgs} -configuration ${configurationDir}" />
+
+               <condition property="starter" value="gnome-terminal">
+                       <and>
+                               <os family="unix" />
+                               <not>
+                                       <os family="mac" />
+                               </not>
+                       </and>
+               </condition>
+               <condition property="starterArgs" value="--maximize -x">
+                       <and>
+                               <os family="unix" />
+                               <not>
+                                       <os family="mac" />
+                               </not>
+                       </and>
+               </condition>
+               <condition property="starter" value="start">
+                       <os family="windows" />
+               </condition>
+               <property name="starterArgs" value="" />
+               <property name="javaCommand" value="java" />
+
+               <echo message="commandArgs=${commandArgs}"/>
+               <exec executable="${starter}" dir="${equinoxDir}">
+                       <arg line="${starterArgs}" />
+                       <arg value="${javaCommand}" />
+                       <arg line="${commandArgs}" />
+               </exec>
+       </target>
+
+       <macrodef name="addProperty">
+               <attribute name="name" />
+               <sequential>
+                       <property name="@{name}" value="" />
+                       <echo message="@{name}=${@{name}}" />
+                       <echo file="${configurationFile}" append="true">
+<![CDATA[@{name}=${@{name}}]]></echo>
+               </sequential>
+       </macrodef>
+</project>
\ No newline at end of file