From 0b4183e6839a4a3b913608b820c9726cce1ec520 Mon Sep 17 00:00:00 2001 From: aschwinn <al.schwinn@gsi.de> Date: Thu, 1 Sep 2016 16:10:06 +0200 Subject: [PATCH] removed plugin from gsi -branch --- silecs-eclipse-plugin-update-site/.gitignore | 2 - .../artifacts.jar | Bin 703 -> 0 bytes silecs-eclipse-plugin-update-site/content.jar | Bin 79343 -> 0 bytes silecs-eclipse-plugin-update-site/install.sh | 10 - silecs-eclipse-plugin-update-site/site.xml | 18 - silecs-eclipse-plugin/.classpath | 10 - silecs-eclipse-plugin/.gitignore | 4 - silecs-eclipse-plugin/.project | 36 -- .../.settings/org.eclipse.jdt.core.prefs | 13 - silecs-eclipse-plugin/META-INF/MANIFEST.MF | 114 ---- silecs-eclipse-plugin/build.properties | 18 - silecs-eclipse-plugin/build.xml | 527 ------------------ silecs-eclipse-plugin/pom.xml | 136 ----- .../cern/silecs/utils/SilecsConstants.java | 97 ---- .../java/cern/silecs/utils/SilecsUtils.java | 311 ----------- .../view/ApplicationWorkbenchAdvisor.java | 74 --- .../ApplicationWorkbenchWindowAdvisor.java | 179 ------ .../view/explorer/SilecsProjectExplorer.java | 199 ------- 18 files changed, 1748 deletions(-) delete mode 100644 silecs-eclipse-plugin-update-site/.gitignore delete mode 100644 silecs-eclipse-plugin-update-site/artifacts.jar delete mode 100644 silecs-eclipse-plugin-update-site/content.jar delete mode 100755 silecs-eclipse-plugin-update-site/install.sh delete mode 100644 silecs-eclipse-plugin-update-site/site.xml delete mode 100644 silecs-eclipse-plugin/.classpath delete mode 100644 silecs-eclipse-plugin/.gitignore delete mode 100644 silecs-eclipse-plugin/.project delete mode 100644 silecs-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 silecs-eclipse-plugin/META-INF/MANIFEST.MF delete mode 100644 silecs-eclipse-plugin/build.properties delete mode 100644 silecs-eclipse-plugin/build.xml delete mode 100644 silecs-eclipse-plugin/pom.xml delete mode 100644 silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsConstants.java delete mode 100644 silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsUtils.java delete mode 100644 silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchAdvisor.java delete mode 100644 silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchWindowAdvisor.java delete mode 100644 silecs-eclipse-plugin/src/java/cern/silecs/view/explorer/SilecsProjectExplorer.java diff --git a/silecs-eclipse-plugin-update-site/.gitignore b/silecs-eclipse-plugin-update-site/.gitignore deleted file mode 100644 index 0d55b7c..0000000 --- a/silecs-eclipse-plugin-update-site/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/features/* -/plugins/* \ No newline at end of file diff --git a/silecs-eclipse-plugin-update-site/artifacts.jar b/silecs-eclipse-plugin-update-site/artifacts.jar deleted file mode 100644 index a87d7ab050a527669b91f8d1c7c95b33f7f74ff4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmWIWW@Zs#;Nak3xLU~Q$$$iS8CVz+i%K%n5|c}c^(u06{+(iAxI67&(Jcdkw)Zxz zd_GfUvb?t$re!_2GRHc%=$*#4gewzOLnqx9Xe(cTfWukZL*t#w<;7)te}&KgKXtCZ zycS<wK<*5Y<PK&QM$uNCnKSwy-hF%aH;<qC-Wsnhsm4J!&WCs&UUQ}U@2b+fzYOoD zv94Tk+i~iVpbxE)T#d0B;*+Z6E;JdZW;pD>?sKBu!L?DG<CZPcVXdQ?+MN7WrL!i> zG3>k)6d3NyYw+fxrpxS#*&okZh@RHU(pfp>cGrhntc6A{83M~A=Ny%2bJymM)b#CL z_;lTsSF_ASD{q)>j0|_tY`;)0^1H9(tmX{Eyp?i?SC_Aw$p2u~gCi1V$$DyM=dga? zs$sczUz@|Vu&ZS}zfYS^wLTlZ@X^;foWkFxuZgLBtH0eP?4bFg^0)Tt#phWrb}MuF ze&TNw&)@gI>Gj#){Ap8eM9EuUGOK>&Q~9DZFYKPqy!>ZBf3e(n%`TVE!4%fFFmaC9 zv*gc5mh;}1o^NjwBcM2E5l`Zr2Pvy7Pc`~iuAE}eI(<n=pU^a}>etJX(lyIH&T%Ep zP5E(RN_t(<{H-b3&m~k>=>EPt<8?=RiBRP0!?kYKJ-yryAIdgJ+Z@(7n%VMC==?i5 z3yZKOx0gQ+9#yn_FnGz}ew;5$fcJkkdud-z%SCCow)pB7dIvv$x$w~B+@#N$F3l!V zDeHS5Phx!ik56jP(Z*d*X8qgFJhhDJ4b%UaZ=LT;=3H7hd)bSg{)pX0FKu%EFIV3i zAK=Z-VYa37pf(c&!+UN9h5&CyCJ_ciT0@otr8QK5k@5n(S=m5J7=h3pNM`|!WncgR D8nY|i diff --git a/silecs-eclipse-plugin-update-site/content.jar b/silecs-eclipse-plugin-update-site/content.jar deleted file mode 100644 index 5d4662ba608c642e81076909afa6682abd697802..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79343 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≥(N8jKbmEPv5U;kgst^e5#f0G=dlPkh`aF)f8ORWHNB_i2}z zX_m9nENf`xA@7Goy2vq+@)ttr%3mDKcZiX%{T*ma5qqYsF`3xm4gtca#B+PQ+iiY4 zKEA)dAKa|>gL->&ERd&TIK^&=Ljc=Ca-gTW0wO6A=NK57QzRN{=z#xrTd#r15Q>}? z8-R9&S$Dnj8*lM*M#joJ$8r(6QbDeOmD=va{|rI_vI1zj$hQF8>^tN$CNgo)rw^28 zKelCuhzY#azw^eo&NbCsz`Yp0oK4QIE=Ok{yg^8;X?!HI-60(K|7l=R?@3+_;&xNv zVGkd^K;;TLB;Rx-OSBad9m-IluAZNK-*b+(xS_d?1CQbDVFNB_jA&<CpE?>jjx27E z&vzp%S&oH*o@P(k-s1_+vdI!PF@<d;@?A!QE#BcC0?Cp18ic0q_0`yF9B}0+9NiwB zMEp(#9WtD^>-tj%V$|JOgrWoJ8V6JcF;gD^=)-{zE8QfeoXhPIA}zuDz_N^L<zh@0 z2>Kksr5r_5h#ldcyFnOeNot<GQbb97Z{ey$^~y<~g&(jNM5WEe8A=SA`frmO<X(P2 zD5{r_aH^geGsv)LdvT4{oRbqC?j2_$p`z%Lyxfyg0Ely2Lqxvh;;RRjsZ4zSm`V=< z1DA<j7liWBh#)#bR2<eT2Qqi;uXa@jxf5|`(v7_rjLtp7Z5DN&3H%Ed=M2!9+lSn~ z0K_XHEuj@Q1YS2xDTEvZ%t-}A+C!VQxvheQQg3b#$M?5~Ct>xUtZp`|!R_vDh5Pph z(ba#Jjs4pnk{>ks6FZ*!ZS~@j>yN{KgK!~_^;3_+$5vnPvA^jcOcXzV`t1AcWHdd; zWBPhF_A==!X;@!PyZSns)o;?OzJ^Bi6||{;Uz7TMTGZFkpuVE^q?bmIHJ$38kN4|J z{tkZ)Cdi9NO)#D2&1k-=Hcff4+TT>`S0z@f87%qFe-_(EvhOb*JsUg?|AR~M^oQr) zKl}dqQ@u4mGp{k2`%U$)^2MX?+>Mgo9?%wg@hFUZP*T4G2y(9LPlL_#0sQh2fCu;C zGcz3B6aLtf4UX>#5A4zLZ*F{1Qq}S>6YFDqHaeMQyaXAo!N1q`AV?c+zeni!p&Xl} zvnBMa3ht%8H6?lk<kZ;&rJ{Fy)&3Dr;A`yp@$Vai{0P)O8IEjc(%*0Df+#Qt+SKPJ z`h}Cj{lLZ7pDZgV31LHf+%XKM!Ia@NF8~d7q;1Ac{0!K)pbqY2gP-{gmR}M>H3a&$ z56}GJOZ~<3)<NlycJ+RKi*6F^qi2Kb=BDc3N!Q3JREF=EaD~`0_SCk2AAbU9Ctp1J zSGC!ci|9i@HMKAOw~pP{TzCG*HrL~LoceQ3&FL7pCd53Tknm?7R!8JRem?&-LhqEk zN2ew{GVoRn{`>zg?TLqLN>uNFA9$wdZ(-CwA8*TGWmN$3{M#S?FHlPd2%5F2v|lv= z0F<``08mQ-0u%rg00;;O0M&5;Nt(5(v|lv=0F<``01E&F0000000000000000001E nZ*FvDZgehqZEXI^002-+1qJ{B000310RTM!005jd0RR91@)lgz diff --git a/silecs-eclipse-plugin-update-site/install.sh b/silecs-eclipse-plugin-update-site/install.sh deleted file mode 100755 index c989b39..0000000 --- a/silecs-eclipse-plugin-update-site/install.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -set -e - -INSTALL_DIR=$1 - -SCRIPT=$(readlink -f "$0") -SCRIPTPATH=$(dirname "$SCRIPT") # path where this script is located in - -mkdir -p ${INSTALL_DIR} -cp -ruv ${SCRIPTPATH}/* ${INSTALL_DIR} \ No newline at end of file diff --git a/silecs-eclipse-plugin-update-site/site.xml b/silecs-eclipse-plugin-update-site/site.xml deleted file mode 100644 index 1989289..0000000 --- a/silecs-eclipse-plugin-update-site/site.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<site> - <feature url="features/silecsEclipsePluginFeature_1.0.0.201602241715.jar" id="silecsEclipsePluginFeature" version="1.0.0.201602241715"> - <category name="0.9.0"/> - </feature> - <feature url="features/silecsEclipsePluginFeature_1.0.0.201604071714.jar" id="silecsEclipsePluginFeature" version="1.0.0.201604071714"> - <category name="0.10.0"/> - </feature> - <feature url="features/silecsEclipsePluginFeature_1.0.0.201607291027.jar" id="silecsEclipsePluginFeature" version="1.0.0.201607291027"> - <category name="1.0.0"/> - </feature> - <feature url="features/silecsEclipsePluginFeature_1.0.0.201608011414.jar" id="silecsEclipsePluginFeature" version="1.0.0.201608011414"> - <category name="1.0.0"/> - </feature> - <category-def name="0.9.0" label="0.9.0"/> - <category-def name="0.10.0" label="0.10.0"/> - <category-def name="1.0.0" label="1.0.0"/> -</site> diff --git a/silecs-eclipse-plugin/.classpath b/silecs-eclipse-plugin/.classpath deleted file mode 100644 index 2dfef36..0000000 --- a/silecs-eclipse-plugin/.classpath +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry exported="true" kind="lib" path="ext-jars/xml-apis-1.3.04.jar"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> - <classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins"/> - <classpathentry kind="src" path="src/java"/> - <classpathentry exported="true" kind="lib" path="jaxen-1.1.6.jar"/> - <classpathentry exported="true" kind="lib" path="xalan-2.7.2.jar"/> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/silecs-eclipse-plugin/.gitignore b/silecs-eclipse-plugin/.gitignore deleted file mode 100644 index 60a467d..0000000 --- a/silecs-eclipse-plugin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/ext-jars/* -/jaxen-1.1.6.jar -/xalan-2.7.2.jar diff --git a/silecs-eclipse-plugin/.project b/silecs-eclipse-plugin/.project deleted file mode 100644 index 5a975ee..0000000 --- a/silecs-eclipse-plugin/.project +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>silecs-eclipse-plugin</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.ManifestBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.SchemaBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.springsource.ide.eclipse.gradle.core.nature</nature> - <nature>org.eclipse.pde.PluginNature</nature> - <nature>org.python.pydev.pythonNature</nature> - </natures> -</projectDescription> diff --git a/silecs-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs b/silecs-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 13b3428..0000000 --- a/silecs-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,13 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/silecs-eclipse-plugin/META-INF/MANIFEST.MF b/silecs-eclipse-plugin/META-INF/MANIFEST.MF deleted file mode 100644 index c498624..0000000 --- a/silecs-eclipse-plugin/META-INF/MANIFEST.MF +++ /dev/null @@ -1,114 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %Bundle-Name -Bundle-SymbolicName: silecs.eclipse.plugin;singleton:=true -Bundle-Version: 1.1.1.qualifier -Bundle-Activator: cern.silecs.activator.Activator -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - org.eclipse.ui.workbench, - org.eclipse.core.resources, - org.eclipse.ui.ide, - org.eclipse.ui.editors, - org.eclipse.wst.xml.core, - org.eclipse.wst.xml.ui, - org.eclipse.ui.navigator.resources, - org.eclipse.core.filesystem, - org.eclipse.ui.console, - org.eclipse.ui.views, - org.eclipse.wst.validation, - org.eclipse.wst.validation.infopop, - org.eclipse.wst.validation.ui, - org.eclipse.jface.text, - org.eclipse.wst.sse.ui, - org.eclipse.ui.workbench.texteditor, - org.eclipse.text, - org.eclipse.wst.sse.core, - org.eclipse.ui.navigator, - org.eclipse.xsd, - org.eclipse.wst.xsd.core, - org.eclipse.core.expressions, - org.eclipse.cdt, - org.eclipse.cdt.core, - org.eclipse.cdt.ui, - org.eclipse.cdt.managedbuilder.ui, - org.eclipse.ltk.core.refactoring, - org.eclipse.ltk.ui.refactoring, - org.eclipse.equinox.launcher, - org.eclipse.cdt.make.core;bundle-version="7.3.0", - org.eclipse.cdt.make.ui;bundle-version="7.2.0", - org.eclipse.cdt.managedbuilder.core;bundle-version="8.3.0" -Bundle-ActivationPolicy: lazy -Bundle-ClassPath: ., - ext-jars/xalan-2.7.2.jar, - ext-jars/jaxen-1.1.6.jar, - ext-jars/xml-apis-1.3.04.jar -Permissions: all-permissions -Codebase: http://abwww.cern.ch/ap/dist/silecs/1.m.p/configuration/ -Application-Name: Silecs-Eclipse-Plugin -Export-Package: org.apache.bcel, - org.apache.bcel.classfile, - org.apache.bcel.generic, - org.apache.bcel.util, - org.apache.bcel.verifier, - org.apache.bcel.verifier.exc, - org.apache.bcel.verifier.statics, - org.apache.bcel.verifier.structurals, - org.apache.regexp, - org.apache.xalan, - org.apache.xalan.client, - org.apache.xalan.extensions, - org.apache.xalan.lib, - org.apache.xalan.lib.sql, - org.apache.xalan.processor, - org.apache.xalan.res, - org.apache.xalan.serialize, - org.apache.xalan.templates, - org.apache.xalan.trace, - org.apache.xalan.transformer, - org.apache.xalan.xslt, - org.apache.xalan.xsltc, - org.apache.xalan.xsltc.cmdline, - org.apache.xalan.xsltc.cmdline.getopt, - org.apache.xalan.xsltc.compiler, - org.apache.xalan.xsltc.compiler.util, - org.apache.xalan.xsltc.dom, - org.apache.xalan.xsltc.runtime, - org.apache.xalan.xsltc.runtime.output, - org.apache.xalan.xsltc.trax, - org.apache.xalan.xsltc.util, - org.apache.xml.dtm, - org.apache.xml.dtm.ref, - org.apache.xml.dtm.ref.dom2dtm, - org.apache.xml.dtm.ref.sax2dtm, - org.apache.xml.res, - org.apache.xml.utils, - org.apache.xml.utils.res, - org.apache.xpath, - org.apache.xpath.axes, - org.apache.xpath.compiler, - org.apache.xpath.domapi, - org.apache.xpath.functions, - org.apache.xpath.jaxp, - org.apache.xpath.objects, - org.apache.xpath.operations, - org.apache.xpath.patterns, - org.apache.xpath.res, - org.jaxen, - org.jaxen.dom, - org.jaxen.dom4j, - org.jaxen.expr, - org.jaxen.expr.iter, - org.jaxen.function, - org.jaxen.function.ext, - org.jaxen.function.xslt, - org.jaxen.javabean, - org.jaxen.jdom, - org.jaxen.pattern, - org.jaxen.saxpath, - org.jaxen.saxpath.base, - org.jaxen.saxpath.helpers, - org.jaxen.util, - org.jaxen.xom, - org.w3c.dom diff --git a/silecs-eclipse-plugin/build.properties b/silecs-eclipse-plugin/build.properties deleted file mode 100644 index eafceb4..0000000 --- a/silecs-eclipse-plugin/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -source.. = src/java/ -output.. = bin/java/,\ - bin/ -bin.includes = plugin.xml,\ - META-INF/,\ - .,\ - icons/,\ - JNLP-INF/,\ - src/java/,\ - OSGI-INF/,\ - ext-jars/xml-apis-1.3.04.jar,\ - ext-jars/xalan-2.7.2.jar,\ - ext-jars/serializer-2.7.2.jar,\ - jaxen-1.1.6.jar,\ - xalan-2.7.2.jar -src.includes = src/ -jars.compile.order = . -qualifier = context diff --git a/silecs-eclipse-plugin/build.xml b/silecs-eclipse-plugin/build.xml deleted file mode 100644 index 223e13e..0000000 --- a/silecs-eclipse-plugin/build.xml +++ /dev/null @@ -1,527 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project name="silecs.eclipse.plugin" default="build.jars" basedir="."> - - <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/> - <property name="basews" value="${ws}"/> - <property name="baseos" value="${os}"/> - <property name="basearch" value="${arch}"/> - <property name="basenl" value="${nl}"/> - <property name="bundleId" value="silecs.eclipse.plugin"/> - <property name="bundleVersion" value="1.1.1.201608011414"/> - <property name="p2.publishonerror" value="false"/> - - <!-- Compiler settings. --> - <property name="javacFailOnError" value="false"/> - <property name="javacDebugInfo" value="on"/> - <property name="javacVerbose" value="false"/> - <property name="logExtension" value=".log"/> - <property name="compilerArg" value=""/> - <property name="compilation.prereq.log" value="${buildDirectory}/prereqErrors.log"/> - <property name="javacSource" value="1.3"/> - <property name="javacTarget" value="1.2"/> - <condition property="dir_bootclasspath" value="${java.home}/../Classes"> - <and> - <os family="mac"/> - <available file="${java.home}/../Classes" type="dir"/> - </and> - </condition> - <property name="dir_bootclasspath" value="${java.home}/lib"/> - <path id="path_bootclasspath"> - <fileset dir="${dir_bootclasspath}"> - <include name="*.jar"/> - </fileset> - </path> - <property name="bootclasspath" refid="path_bootclasspath"/> - <condition property="bundleBootClasspath" value="${JavaSE-1.8}" > - <isset property="JavaSE-1.8"/> - </condition> - <condition property="bundleJavacSource" value="1.8" > - <isset property="JavaSE-1.8"/> - </condition> - <condition property="bundleJavacTarget" value="1.8" > - <isset property="JavaSE-1.8"/> - </condition> - <property name="bundleJavacSource" value="${javacSource}"/> - <property name="bundleJavacTarget" value="${javacTarget}"/> - <property name="bundleBootClasspath" value="${bootclasspath}"/> - - <target name="init" depends="properties"> - <condition property="pluginTemp" value="${buildTempFolder}/plugins" > - <isset property="buildTempFolder"/> - </condition> - <property name="pluginTemp" value="${basedir}"/> - <condition property="build.result.folder" value="${pluginTemp}/silecs.eclipse.plugin_1.1.1.201608011414" > - <isset property="buildTempFolder"/> - </condition> - <property name="build.result.folder" value="${basedir}"/> - <property name="temp.folder" value="${basedir}/temp.folder"/> - <property name="plugin.destination" value="${basedir}"/> - <condition property="p2.publish.parts" value="true" > - <istrue value="${p2.gathering}"/> - </condition> - <property name="compilation.problem.marker" value="${build.result.folder}/compilation.problem"/> - <condition property="compilation.problem.marker.exists" value="true" > - <and> - <available file="${compilation.problem.marker}"/> - <isfalse value="${p2.publishonerror}"/> - </and> - </condition> - </target> - - <target name="properties" if="eclipse.running"> - <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> - - </target> - - <target name="build.update.jar" depends="init" description="Build the plug-in: silecs.eclipse.plugin for an update site."> - <delete dir="${temp.folder}"/> - <mkdir dir="${temp.folder}"/> - <antcall target="build.jars"/> - <antcall target="gather.bin.parts"> - <param name="destination.temp.folder" value="${temp.folder}/"/> - </antcall> - <jar destfile="${plugin.destination}/silecs.eclipse.plugin_1.1.1.201608011414.jar" basedir="${temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414" filesetmanifest="merge"/> - <delete dir="${temp.folder}"/> - </target> - - <target name="@dot.nestedJars"> - <mkdir dir="${buildDirectory}/nestedJars/org.eclipse.equinox.registry_3.6.0.v20150318-1503"/> - <unzip src="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.registry_3.6.0.v20150318-1503.jar" dest="${buildDirectory}/nestedJars/org.eclipse.equinox.registry_3.6.0.v20150318-1503" overwrite="false"> - <patternset includes="runtime_registry_compatibility.jar"/> - </unzip> - <mkdir dir="${buildDirectory}/nestedJars/com.ibm.icu_54.1.1.v201501272100"/> - <unzip src="../../../../../../../../opt/eclipse/mars/plugins/com.ibm.icu_54.1.1.v201501272100.jar" dest="${buildDirectory}/nestedJars/com.ibm.icu_54.1.1.v201501272100" overwrite="false"> - <patternset includes="icu-data.jar"/> - </unzip> - <mkdir dir="${buildDirectory}/nestedJars/org.eclipse.e4.core.services_2.0.0.v20150403-1912"/> - <unzip src="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.core.services_2.0.0.v20150403-1912.jar" dest="${buildDirectory}/nestedJars/org.eclipse.e4.core.services_2.0.0.v20150403-1912" overwrite="false"> - <patternset includes="injection_annotations.jar"/> - </unzip> - </target> - <target name="@dot" depends="init,@dot.nestedJars" unless="@dot" description="Create jar: silecs.eclipse.plugin @dot."> - <delete dir="${build.result.folder}/@dot"/> - <mkdir dir="${build.result.folder}/@dot"/> - <path id="@dot.classpath"> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui_3.107.0.v20150507-1945.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.runtime_3.11.1.v20150903-1804.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/javax.annotation_1.2.0.v201401042248.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/javax.inject_1.0.0.v20091030.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.osgi_3.10.102.v20160118-1700.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.osgi.compatibility.state_1.0.100.v20150402-1551.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.common_3.7.0.v20150402-1709.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.jobs_3.7.0.v20150330-2103.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.runtime.compatibility.registry_3.6.0.v20150318-1505/runtime_registry_compatibility.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.runtime.compatibility.registry_3.6.0.v20150318-1505"/> - <pathelement path="${buildDirectory}/nestedJars/org.eclipse.equinox.registry_3.6.0.v20150318-1503/runtime_registry_compatibility.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.registry_3.6.0.v20150318-1503.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/javax.xml_1.3.4.v201005080400.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.preferences_3.5.300.v20150408-1437.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.contenttype_3.5.0.v20150421-2214.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.app_1.3.300.v20150423-1356.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.osgi.services_3.5.0.v20150519-2006.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/javax.servlet_3.1.0.v201410161800.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.swt_3.104.2.v20160212-1350.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.swt.gtk.linux.x86_64_3.104.2.v20160212-1350.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jface_3.11.1.v20160128-1644.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.commands_3.7.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.bidi_0.10.0.v20130327-1442.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.workbench_3.107.1.v20160120-2131.jar"/> - <pathelement path="${buildDirectory}/nestedJars/com.ibm.icu_54.1.1.v201501272100/icu-data.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/com.ibm.icu_54.1.1.v201501272100.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.core.commands_0.11.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.expressions_3.5.0.v20150421-2214.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.core.contexts_1.4.0.v20150828-0818.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.core.di_1.5.0.v20150421-2214.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.core.di.annotations_1.4.0.v20150528-1451.jar"/> - <pathelement path="${buildDirectory}/nestedJars/org.eclipse.e4.core.services_2.0.0.v20150403-1912/injection_annotations.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.core.services_2.0.0.v20150403-1912.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.workbench_1.3.1.v20160203-0951.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.model.workbench_1.1.100.v20150407-1430.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.emf.ecore_2.11.2.v20160208-0816.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.emf.common_2.11.1.v20160208-0816.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.resources_3.10.1.v20150725-1910.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ant.core_3.4.0.v20150428-1928.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.variables_3.2.800.v20130819-1716.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.filesystem_1.5.0.v20150725-1910.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.filesystem.java7_1.0.100.v20150423-0754.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.filesystem.linux.x86_64_1.2.200.v20140124-1940.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.emf.xpath_0.1.100.v20150513-0856.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.commons.jxpath_1.3.0.v200911051830.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.services_1.2.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.di_1.1.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.core.di.extensions_0.13.0.v20150421-2214.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.emf.ecore.change_2.11.0.v20160208-0816.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.emf.ecore.xmi_2.11.1.v20160208-0816.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.workbench.renderers.swt_0.13.0.v20150901-1347.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.workbench.swt_0.13.0.v20150504-0621.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.databinding_1.5.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.databinding.observable_1.5.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.databinding.property_1.5.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jface.databinding_1.7.0.v20150406-2148.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.css.core_0.11.0.v20150511-1937.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.w3c.css.sac_1.3.1.v200903091627.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.batik.css_1.7.0.v201011041433.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.w3c.dom.events_3.0.0.draft20060413_v201105210656.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.w3c.dom.svg_1.1.0.v201011041433.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.w3c.dom.smil_1.0.1.v200903091627.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.batik.util_1.7.0.v201011041433.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.batik.util.gui_1.7.0.v200903091627.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.css.swt_0.12.0.v20150511-1003.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.bindings_0.11.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.workbench3_0.13.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.css.swt.theme_0.10.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.swt.gtk_1.0.1.v20150708-1529.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.widgets_1.1.0.v20150427-1751.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.ds_1.4.300.v20150423-1356.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.util_1.0.500.v20130404-1337.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.event_1.3.100.v20140115-1647.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.help_3.6.0.v20130326-1254.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.e4.ui.workbench.addons.swt_1.2.0.v20150512-1414.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.ide_3.11.0.v20150825-2158.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.views_3.8.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jface.text_3.10.0.v20150603-1752.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.text_3.5.400.v20150505-1044.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.forms_3.6.200.v20150506-2029.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.p2.engine_2.4.0.v20150511-1532.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.p2.core_2.4.0.v20150527-1706.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.p2.metadata_2.3.0.v20150511-1532.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.p2.metadata.repository_1.2.200.v20150428-1613.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.p2.repository_2.3.100.v20150428-1613.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.security_1.2.100.v20150423-1356.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.tukaani.xz_1.3.0.v201308270617.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.editors_3.9.0.v20150213-1939.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.workbench.texteditor_3.9.100.v20141023-1946.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.compare.core_3.5.500.v20150505-1058.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.filebuffers_3.5.500.v20140723-1040.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.xml.core_1.1.902.v201501211904.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.xerces_2.9.0.v201101211617.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.xml.resolver_1.2.0.v201005080400.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.xml.serializer_2.7.1.v201005080400.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.uriresolver_1.2.200.v201505132009.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.sse.core_1.1.900.v201401092025.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.validation_1.2.700.v201508251749.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.frameworks_1.2.200.v201304241450.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.environment_1.0.400.v200912181831.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.osgi.util_3.3.100.v20150423-1351.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.core_1.2.0.v200908251833.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.project.facet.core_1.4.300.v201111030423.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jem.util_2.1.200.v201404021757.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.emf_1.2.400.v201505132009.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.emfworkbench.integration_1.2.101.v201107081800.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.emf.edit_2.11.1.v20160208-0841.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.xml.ui_1.1.501.v201501212057.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.sse.ui_1.3.400.v201505141512.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.debug.ui_3.11.101.v20160203-1230.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.console_3.6.100.v20150822-1912.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.debug.core_3.10.0.v20150303-1130.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.search_3.10.0.v20150318-0856.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ltk.core.refactoring_3.6.201.v20150819-1034.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ltk.ui.refactoring_3.7.200.v20140625-1835.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.navigator_3.6.0.v20150422-0725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.compare_3.5.600.v20150420-1449.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.team.core_3.7.100.v20150203-1452.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.team.ui_3.7.200.v20150203-1452.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.ui_1.1.500.v200911182011.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.validation.ui_1.2.500.v201310231452.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.common.frameworks.ui_1.2.400.v201504292002.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.navigator.resources_3.5.1.v20160128-1644.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.views.properties.tabbed_3.6.100.v20150423-0822.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.validation.infopop_1.0.300.v201309101952.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.xsd_2.11.0.v20160208-0841.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.wst.xsd.core_1.1.900.v201401141857.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt_8.8.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.intro_3.4.300.v20141007-1449.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.help.base_4.0.301.v20160212-1500.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.http.jetty_3.1.2.v20160115-1350.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.http.servlet_1.2.2.v20160202-2102.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jetty.http_9.2.13.v20150730.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jetty.util_9.2.13.v20150730.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.slf4j.api_1.7.2.v20121108-1250.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/ch.qos.logback.slf4j_1.0.7.v201505121915.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.slf4j.impl.log4j12_1.7.2.v20131105-2200.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.log4j_1.2.15.v201012070815.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/ch.qos.logback.core_1.0.7.v20121108-1250.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/ch.qos.logback.classic_1.0.7.v20121108-1250.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.logback.appender_1.6.2.20150902-0002.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.core.ui_1.6.2.20150902-0002.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.core_1.6.2.20150902-0002.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/takari-local-repository-0.9.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/takari-filemanager-0.7.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-core-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-model-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-settings-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-settings-builder-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-builder-support-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-repository-metadata-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-artifact-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-plugin-api-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-model-builder-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-aether-provider-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/aether-api-1.0.2.v20150114.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/aether-util-1.0.2.v20150114.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/plexus-interpolation-1.21.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/plexus-utils-3.0.20.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/plexus-classworlds-2.5.2.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/plexus-component-annotations-1.5.5.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/plexus-sec-dispatcher-1.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-embedder-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/plexus-cipher-1.7.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/commons-cli-1.2.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/maven-compat-3.3.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/wagon-provider-api-2.9.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/org.eclipse.sisu.plexus-0.3.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/cdi-api-1.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/jsr250-api-1.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/org.eclipse.sisu.inject-0.3.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/sisu-guice-3.2.5-no_aop.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/guava-18.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/plexus-build-api-0.0.7.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/aether-impl-1.0.2.v20150114.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/aether-spi-1.0.2.v20150114.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/aether-connector-okhttp-0.15.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/okhttp-2.3.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/okio-1.3.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/aether-connector-basic-1.0.2.v20150114.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/aether-transport-wagon-1.0.2.v20150114.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/wagon-file-2.9.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime_1.6.2.20150902-0001/jars/commons-lang-2.6.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.6.2.20150902-0001"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.6.2.20150902-0001/jars/slf4j-simple-1.7.5.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/archetype-common-2.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/archetype-catalog-2.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/archetype-descriptor-2.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/archetype-registry-2.3.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/maven-invoker-2.1.1.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/commons-collections-3.1.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/commons-io-2.2.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/commons-lang-2.1.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/dom4j-1.6.1.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/jchardet-1.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/jdom-1.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/oro-2.0.8.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/plexus-velocity-1.1.8.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.archetype.common_1.6.2.20150902-0001/velocity-1.5.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.indexer_1.6.2.20150902-0001"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.indexer_1.6.2.20150902-0001/indexer-core-3.1.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.indexer_1.6.2.20150902-0001/indexer-artifact-3.1.0.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.indexer_1.6.2.20150902-0001/lucene-core-2.4.1.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.maven.indexer_1.6.2.20150902-0001/lucene-highlighter-2.4.1.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.workspace.cli_0.3.1.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/com.google.guava_15.0.0.v201403281430.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.m2e.model.edit_1.6.2.20150902-0002.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.emf.ecore.edit_2.9.0.v20160208-0841.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jetty.server_9.2.13.v20150730.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jetty.io_9.2.13.v20150730.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jetty.servlet_9.2.13.v20150730.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.jetty.security_9.2.13.v20150730.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.lucene.analysis_3.5.0.v20120725-1805.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.apache.lucene.core_3.5.0.v20120725-1805.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.net_1.2.300.v20141118-1725.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.core.net.linux.x86_64_1.1.100.v20140124-2013.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.ui.cheatsheets_3.4.200.v20131227-1524.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.help.ui_4.0.100.v20140401-0608.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.core_5.11.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.core.native_5.8.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.core.linux_5.3.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.core.linux.x86_64_5.3.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.ui_5.11.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.managedbuilder.ui_8.2.2.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.make.core_7.3.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.make.ui_7.2.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.cdt.managedbuilder.core_8.3.0.201509131935.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar"/> - <pathelement path="../../../../../../../../opt/eclipse/mars/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.300.v20150602-1417"/> - <pathelement path="ext-jars/xalan-2.7.2.jar"/> - <pathelement path="${build.result.folder}/../silecs.eclipse.plugin_1.1.1.201608011414/ext-jars/xalan-2.7.2.jar"/> - <pathelement path="ext-jars/jaxen-1.1.6.jar"/> - <pathelement path="${build.result.folder}/../silecs.eclipse.plugin_1.1.1.201608011414/ext-jars/jaxen-1.1.6.jar"/> - <pathelement path="ext-jars/xml-apis-1.3.04.jar"/> - <pathelement path="${build.result.folder}/../silecs.eclipse.plugin_1.1.1.201608011414/ext-jars/xml-apis-1.3.04.jar"/> - </path> - <!-- compile the source code --> - <javac destdir="${build.result.folder}/@dot" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bundleBootClasspath}" source="${bundleJavacSource}" target="${bundleJavacTarget}" > - <compilerarg line="${compilerArg}" compiler="${build.compiler}"/> - <classpath refid="@dot.classpath" /> - <src path="src/java/" /> - <compilerarg value="@${basedir}/javaCompiler...args" compiler="org.eclipse.jdt.core.JDTCompilerAdapter" /> - <compilerarg line="-log '${build.result.folder}/@dot${logExtension}'" compiler="org.eclipse.jdt.core.JDTCompilerAdapter" /> - </javac> - <antcall target="checkCompilationResults"/> - <!-- Copy necessary resources --> - <copy todir="${build.result.folder}/@dot" failonerror="true" overwrite="false"> - <fileset dir="src/java/"> - <exclude name="**/*.java"/> - <exclude name="**/package.htm*"/> - </fileset> - </copy> - </target> - - <target name="src.zip" depends="init" unless="src.zip"> - <mkdir dir="${build.result.folder}"/> - <antcall target="zip.src.zip"/> - </target> - <target name="zip.src.zip"> - <zip destfile="${build.result.folder}/src.zip" filesonly="false" whenempty="skip" update="false"> - <fileset dir="src/java/"> - <include name="**/*.java"/> - </fileset> - </zip> - </target> - <target name="copy.src.zip"> - <copy todir="${source.destination.folder}/" failonerror="true" overwrite="true"> - <fileset dir="src/java/"> - <include name="**/*.java"/> - </fileset> - </copy> - </target> - - <target name="build.jars" depends="init" description="Compile classes and build nested jars for the plug-in: silecs.eclipse.plugin."> - <delete file="${compilation.problem.marker}" quiet="true"/> - <available property="@dot" file="${build.result.folder}/@dot"/> - <antcall target="@dot"/> - </target> - - <target name="checkCompilationResults" if="compilation.error.occured"> - <echo file="${compilation.problem.marker}" message="silecs.eclipse.plugin_1.1.1.201608011414${line.separator}compilation.error.occured=${compilation.error.occured}"/> - <eclipse.logCompileError log="${compilation.prereq.log}" bundle="silecs.eclipse.plugin_1.1.1.201608011414"> - </eclipse.logCompileError> - </target> - - <target name="build.sources" depends="init"> - <available property="src.zip" file="${build.result.folder}/src.zip"/> - <antcall target="src.zip"/> - </target> - - <target name="publish.bin.parts" depends="init" if="p2.publish.parts" unless="compilation.problem.marker.exists"> - <mkdir dir="${build.result.folder}/silecs.eclipse.plugin_1.1.1.201608011414"/> - <copy todir="${build.result.folder}" failonerror="true" overwrite="true"> - <fileset dir="${basedir}"> - <include name="META-INF/MANIFEST.MF"/> - <include name="plugin.xml"/> - <include name="fragment.xml"/> - </fileset> - </copy> - <eclipse.versionReplacer path="${build.result.folder}" version="1.1.1.201608011414"/> - <antcall target="apitools.generation"> - <param name="projectLocation" value="${basedir}"/> - <param name="binary.folders" value="${build.result.folder}/@dot:/common/home/bel/schwinn/lnx/git/git/silecs-eclipse-plugin/ext-jars/xml-apis-1.3.04.jar:/common/home/bel/schwinn/lnx/git/git/silecs-eclipse-plugin/ext-jars/jaxen-1.1.6.jar:/common/home/bel/schwinn/lnx/git/git/silecs-eclipse-plugin/ext-jars/xalan-2.7.2.jar"/> - <param name="projectName" value="${bundleId}_${bundleVersion}"/> - <param name="target.folder" value="${build.result.folder}"/> - </antcall> - <eclipse.gatherBundle - metadataRepository="${p2.build.repo}" - artifactRepository="${p2.build.repo}" - buildResultFolder="${build.result.folder}" - unpack="false" - baseDirectory="${basedir}" - /> - </target> - - <target name="gather.bin.parts" depends="init" if="destination.temp.folder"> - <mkdir dir="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414"/> - <copy todir="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414" failonerror="true" overwrite="false"> - <fileset dir="${build.result.folder}/@dot"> - <include name="**"/> - </fileset> - </copy> - <copy todir="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414" failonerror="true" overwrite="true"> - <fileset dir="${basedir}"> - <include name="plugin.xml"/> - <include name="META-INF/"/> - <include name="icons/"/> - <include name="JNLP-INF/"/> - <include name="src/java/"/> - <include name="OSGI-INF/"/> - <include name="ext-jars/xml-apis-1.3.04.jar"/> - <include name="ext-jars/xalan-2.7.2.jar"/> - <include name="ext-jars/serializer-2.7.2.jar"/> - <include name="jaxen-1.1.6.jar"/> - <include name="xalan-2.7.2.jar"/> - </fileset> - </copy> - <eclipse.versionReplacer path="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414" version="1.1.1.201608011414"/> - <antcall target="apitools.generation"> - <param name="projectLocation" value="${basedir}"/> - <param name="binary.folders" value="${build.result.folder}/@dot:/common/home/bel/schwinn/lnx/git/git/silecs-eclipse-plugin/ext-jars/xml-apis-1.3.04.jar:/common/home/bel/schwinn/lnx/git/git/silecs-eclipse-plugin/ext-jars/jaxen-1.1.6.jar:/common/home/bel/schwinn/lnx/git/git/silecs-eclipse-plugin/ext-jars/xalan-2.7.2.jar"/> - <param name="projectName" value="${bundleId}_${bundleVersion}"/> - <param name="target.folder" value="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414"/> - </antcall> - </target> - - <target name="build.zips" depends="init"> - </target> - - <target name="gather.sources" depends="init" if="destination.temp.folder"> - <mkdir dir="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414"/> - <copy file="${build.result.folder}/src.zip" todir="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414" failonerror="false" overwrite="false"/> - <antcall target="copy.src.includes"> - <param name="source.destination.folder" value="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414"/> - </antcall> - </target> - - <target name="gather.individual.sources" depends="init"> - <antcall target="copy.src.zip"> - <param name="source.destination.folder" value="${destination.temp.folder}"/> - </antcall> - <antcall target="copy.src.includes"> - <param name="source.destination.folder" value="${destination.temp.folder}"/> - </antcall> - </target> - - <target name="copy.src.includes" depends="init"> - <copy todir="${source.destination.folder}" failonerror="false" overwrite="false"> - <fileset dir="${basedir}"> - <include name="src/"/> - </fileset> - </copy> - </target> - - <target name="gather.logs" depends="init" if="destination.temp.folder"> - <mkdir dir="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414"/> - <copy todir="${destination.temp.folder}/silecs.eclipse.plugin_1.1.1.201608011414" failonerror="false" overwrite="false"> - <fileset dir="${build.result.folder}"> - <include name="@dot${logExtension}"/> - </fileset> - </copy> - </target> - - <target name="clean" depends="init" description="Clean the plug-in: silecs.eclipse.plugin of all the zips, jars and logs created."> - <delete dir="${build.result.folder}/@dot"/> - <delete file="${build.result.folder}/src.zip"/> - <delete file="${plugin.destination}/silecs.eclipse.plugin_1.1.1.201608011414.jar"/> - <delete file="${plugin.destination}/silecs.eclipse.plugin_1.1.1.201608011414.zip"/> - <delete dir="${temp.folder}"/> - <delete file="${compilation.problem.marker}" quiet="true"/> - </target> - - <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder."> - <eclipse.convertPath fileSystemPath="/common/home/bel/schwinn/lnx/git/git/silecs-eclipse-plugin" property="resourcePath"/> - <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/> - </target> - - <target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: silecs.eclipse.plugin."> - <delete dir="${temp.folder}"/> - <mkdir dir="${temp.folder}"/> - <antcall target="build.jars"/> - <antcall target="build.sources"/> - <antcall target="gather.bin.parts"> - <param name="destination.temp.folder" value="${temp.folder}/"/> - </antcall> - <antcall target="gather.sources"> - <param name="destination.temp.folder" value="${temp.folder}/"/> - </antcall> - <delete> - <fileset dir="${temp.folder}"> - <include name="**/*.bin${logExtension}"/> - </fileset> - </delete> - <zip destfile="${plugin.destination}/silecs.eclipse.plugin_1.1.1.201608011414.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/> - <delete dir="${temp.folder}"/> - </target> - - <target name="apitools.generation" if="generateAPIDescription"> - <apitooling.apigeneration projectName="${projectName}" project="${projectLocation}" binary="${binary.folders}" target="${target.folder}" extramanifests="${extraManifests}" allownonapiproject="${allowNonApiProject}" /> - </target> - -</project> diff --git a/silecs-eclipse-plugin/pom.xml b/silecs-eclipse-plugin/pom.xml deleted file mode 100644 index e507277..0000000 --- a/silecs-eclipse-plugin/pom.xml +++ /dev/null @@ -1,136 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>de.gsi.cs.co</groupId> - <artifactId>csco-parent</artifactId> - <version>1.0.7</version> - </parent> - <groupId>de.gsi.cs.co.fe</groupId> - <artifactId>silecs.eclipse.plugin</artifactId> - <name>silecs-eclipse-plugin</name> - <packaging>eclipse-plugin</packaging> - <version>1.1.1.qualifier</version> - <description>Management of Silecs projects</description> - <url>https://www-acc.gsi.de/wiki/Frontend/SILECS</url> - - <properties> - <tycho-version>0.21.0</tycho-version> - <platform-version-name>mars</platform-version-name> - <eclipse-site>http://download.eclipse.org/releases/${platform-version-name}</eclipse-site> - </properties> - <profiles> - <profile> - <id>platform-mars</id> - <activation> - <property> - <name>platform-version-name</name> - <value>mars</value> - </property> - </activation> - <properties> - <eclipse-site>http://download.eclipse.org/releases/mars</eclipse-site> - <platform-version>[4.4,4.6)</platform-version> - <swtbot-site>http://download.eclipse.org/technology/swtbot/mars/dev-build/update-site</swtbot-site> - </properties> - </profile> - </profiles> - <repositories> - <repository> - <id>default</id> - <url>https://artifacts.acc.gsi.de/nexus/content/repositories/default</url> - </repository> - <repository> - <id>mars</id> - <layout>p2</layout> - <url>${eclipse-site}</url> - </repository> - </repositories> - <dependencies> - <dependency> - <groupId>xalan</groupId> - <artifactId>xalan</artifactId> - <version>2.7.2</version> - </dependency> - <dependency> - <groupId>jaxen</groupId> - <artifactId>jaxen</artifactId> - <version>1.1.6</version> - </dependency> - </dependencies> - <build> - <plugins> - <plugin> - <artifactId>maven-eclipse-plugin</artifactId> - <version>2.10</version> - <configuration> - <pde>true</pde> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.8</source> - <target>1.8</target> - <compilerVersion>1.8</compilerVersion> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>copy-dependencies</id> - <phase>process-sources</phase> - <goals> - <goal>copy-dependencies</goal> - </goals> - <configuration> - <artifactItems> - <artifactItem> - <groupId>xalan</groupId> - <artifactId>xalan</artifactId> - </artifactItem> - <artifactItem> - <groupId>jaxen</groupId> - <artifactId>jaxen</artifactId> - </artifactItem> - </artifactItems> - <outputDirectory>${basedir}/ext-jars</outputDirectory> - <overWriteReleases>false</overWriteReleases> - <overWriteSnapshots>true</overWriteSnapshots> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <artifactId>maven-clean-plugin</artifactId> - <version>2.3</version> - <configuration> - <filesets> - <fileset> - <directory>${basedir}/ext-jars</directory> - <includes> - <include>*.jar</include> - </includes> - <followSymlinks>false</followSymlinks> - </fileset> - </filesets> - </configuration> - </plugin> - <plugin> - <groupId>org.eclipse.tycho</groupId> - <artifactId>tycho-maven-plugin</artifactId> - <version>${tycho-version}</version> - <extensions>true</extensions> - <configuration> - <pomDependencies>consider</pomDependencies> - <executionEnvironment>JavaSE-1.8</executionEnvironment> - </configuration> - </plugin> - </plugins> - </build> - -</project> diff --git a/silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsConstants.java b/silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsConstants.java deleted file mode 100644 index a9f157a..0000000 --- a/silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsConstants.java +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2016 CERN and GSI -// -// 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 3 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package cern.silecs.utils; - -import java.util.Arrays; -import java.util.List; - -public class SilecsConstants { - - public enum ProjectType { - DESIGN_PROJECT, - DEPLOY_PROJECT - } - - public static final String SILECS_NAME = "Silecs-Eclipse-Plugin"; - - //consistency check - public static final String DESIGN_CLASS_NODE = "SILECS-Class"; - - public static final String DEPLOY_UNIT_NODE = "Deploy-Unit"; - - public static final String NAME = "name"; - - public static final String HOST_NAME = "host-name"; - - // schema files - public static final String DESIGN_SCHEMA_XSD = "DesignSchema.xsd"; - - public static final String DEPLOY_SCHEMA_XSD = "DeploySchema.xsd"; - - //file extensions - public static final String IEDESIGN_FILE = "silecsdesign"; - - public static final String IEDEPLOY_FILE = "silecsdeploy"; - - //name patterns - public static final String DESIGN_PATTERN = "[A-Z][A-Za-z0-9_]*"; - - public static final String DEPLOY_PATTERN = "[A-Z][A-Za-z0-9_]*"; - - public static final int MAX_DESIGN_LENGTH = 20; - - public static final int MAX_DEPLOY_LENGTH = 20; - - // SILECS versions which are supported by this plugin - public static final String[] SUPPORTED_SILECS_MAJOR_VERSIONS = { "1","DEV"}; - public static final List<String> ADDITIONAL_SILECS_TARGET_MIGRATION_VERSIONS = Arrays.asList("0.10.0"); //e.g. in order to allow migration from 0.9.0 to 0.10.0 - public static final int DEFAULT_SILECS_VERSION_INDEX = 0; - - // SILECS Versions which are NOT supported by this plugin - // All other versions foudn in the silecs-search path are supported - public static final String[] SILECS_VERSION_BLACKLIST = { "0.9.0" }; - - //Wizards - //New Design Wizard - public static final String NEW_DESIGN_WIZARD_TITLE = "New Design Wizard"; - public static final String NEW_DESIGN_PAGE_TITLE = "New Design Project"; - - //New Deploy Wizard - public static final String NEW_DEPLOY_WIZARD_TITLE = "New Deploy Wizard"; - public static final String NEW_DEPLOY_PAGE_TITLE = "New Deploy Project"; - - //New Class Wizard Page - - public static final String INVAILD_PROJECT_NAME= "Invaild project name. Project name must follow pattern:"; - - public static final String INITIAL_PROJECT_VERSION = "1.0.0"; - - //Generate Fesa Class Wizard - public static final String GENERATE_FESA_CLASS_WIZARD_TITLE = "Generate Fesa Class Wizard"; - public static final String GENERATE_FESA_CLASS_PAGE_TITLE = "Generate Fesa Class"; - - //Generate Client Resources Wizard - public static final String GENERATE_CLIENT_RESOURCES_WIZARD_TITLE = "Generate Client Resources Wizard"; - public static final String GENERATE_CLIENT_RESOURCES_PAGE_TITLE = "Generate Client Resources"; - - //Deliver Client Resources Wizard - public static final String DELIVER_CLIENT_RESOURCES_WIZARD_TITLE = "Deliver Client Resources Wizard"; - public static final String DELIVER_CLIENT_RESOURCES_PAGE_TITLE = "Deliver Client Resources"; - - //GSI-Hack Use GSI SILECS Wiki - //public static final String SILECS_WIKIS_PATH = "https://wikis.cern.ch/display/SIL"; - public static final String SILECS_WIKIS_PATH = "https://www-acc.gsi.de/wiki/Frontend/SILECS"; -} diff --git a/silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsUtils.java b/silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsUtils.java deleted file mode 100644 index 517c96b..0000000 --- a/silecs-eclipse-plugin/src/java/cern/silecs/utils/SilecsUtils.java +++ /dev/null @@ -1,311 +0,0 @@ -// Copyright 2016 CERN and GSI -// -// 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 3 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package cern.silecs.utils; - -import java.io.File; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ITreeSelection; -import org.eclipse.jface.viewers.TreePath; -import org.eclipse.jface.viewers.TreeSelection; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IEditorDescriptor; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.handlers.HandlerUtil; -import org.eclipse.ui.part.FileEditorInput; -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -import cern.silecs.activator.Activator; -import cern.silecs.control.core.DeployProjectNature; -import cern.silecs.control.core.DesignProjectNature; -import cern.silecs.model.exception.SilecsException; -import cern.silecs.view.console.ConsoleHandler; -import cern.silecs.view.preferences.MainPreferencePage; - -public class SilecsUtils { - - public static final String CLASS_VERSION_MATCHER = "version"; - - static public String userName; - static public boolean isWindows = false; - static { - String system = System.getProperty("os.name"); - isWindows = system.toLowerCase().contains("win"); - userName = System.getProperty("user.name"); - } - - public static String findInBundle(String resourceToLocate) { - try { - URL fileURL = FileLocator.find(Platform.getBundle(Activator.PLUGIN_ID), new Path(resourceToLocate), null); - fileURL = FileLocator.toFileURL(fileURL); - if(isWindows) - return fileURL.getPath().toString().substring(1); - - return fileURL.getPath().toString(); - } catch (Exception e1) { - e1.printStackTrace(); - } - return null; - } - - public static String getSilecsDesignFilePath(String workspacePath, String projectName) { - return workspacePath + "/" + projectName + "/" + getSilecsDesignFilePathRelative(projectName); - } - - public static String getSilecsDeployFilePath(String workspacePath, String projectName) { - return workspacePath + "/" + projectName + "/" + getSilecsDeployFilePathRelative(projectName); - } - - public static String getSilecsDesignFilePathRelative(String projectName) { - return "/src/" + projectName + "." + SilecsConstants.IEDESIGN_FILE; - } - - public static String getSilecsDeployFilePathRelative(String projectName){ - return "/src/" + projectName + "." + SilecsConstants.IEDEPLOY_FILE; - } - - public static Boolean isSilecsDesign(String filePath) - { - String extension = ""; - int i = filePath.lastIndexOf('.'); - if (i > 0) - extension = filePath.substring(i+1); - if(extension.equals(SilecsConstants.IEDESIGN_FILE) ) - return true; - return false; - } - - public static Boolean isSilecsDeploy(String filePath) - { - String extension = ""; - int i = filePath.lastIndexOf('.'); - if (i > 0) - extension = filePath.substring(i+1); - if(extension.equals(SilecsConstants.IEDEPLOY_FILE) ) - return true; - return false; - } - - public static IFile getSilecsDesignFile(IProject project) { - return project.getFile(getSilecsDesignFilePathRelative(project.getName())); - } - - public static IFile getSilecsDeployFile(IProject project) { - return project.getFile(getSilecsDeployFilePathRelative(project.getName())); - } - - public static IFile getSilecsDocument(IProject project) throws Exception - { - if ( project.hasNature(DesignProjectNature.NATURE_ID) ) - { - return SilecsUtils.getSilecsDesignFile(project); - } - else if( project.hasNature(DeployProjectNature.NATURE_ID) ) - { - return SilecsUtils.getSilecsDeployFile(project); - } - else - throw new Exception("The project: " + project.getName() + " is not a silecs-project"); - } - - public static String getSilecsVersion(IProject project) throws SilecsException { - String filePath = ""; - try - { - if( project.hasNature(DeployProjectNature.NATURE_ID) ) - { - filePath = getSilecsDeployFile(project).getRawLocation().makeAbsolute().toOSString(); - } - else if( project.hasNature(DesignProjectNature.NATURE_ID) ) - { - filePath = getSilecsDesignFile(project).getRawLocation().makeAbsolute().toOSString(); - } - else - { - throw new SilecsException("Faild to extract project nature from: " + project.getName()); - } - - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(filePath); - Node root; - if( project.hasNature(DesignProjectNature.NATURE_ID) ) - root = doc.getElementsByTagName("SILECS-Design").item(0); - else - root = doc.getElementsByTagName("SILECS-Deploy").item(0); - return root.getAttributes().getNamedItem("silecs-version").getTextContent(); - } - catch(Exception ex) - { - ConsoleHandler.printError("Faild to extract silecs-version from: " + filePath, true); - - throw new SilecsException("Faild to extract silecs-version from: " + filePath, ex); - } - } - - public static String getSilecsDesignVersion(String filePath) throws SilecsException { - try - { - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(filePath); - Node classNode = doc.getElementsByTagName("SILECS-Class").item(0); - return classNode.getAttributes().getNamedItem(CLASS_VERSION_MATCHER).getNodeValue(); - } - catch(Exception ex) - { - ConsoleHandler.printError("Faild to extract class-version from: " + filePath, true); - throw new SilecsException("Faild to extract class-version from: " + filePath, ex); - } - } - - public static String getDeployVersion(String filePath) throws SilecsException { - try - { - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(filePath); - Node deployNode = doc.getElementsByTagName("Deploy-Unit").item(0); - return deployNode.getAttributes().getNamedItem(CLASS_VERSION_MATCHER).getNodeValue(); - } - catch(Exception ex) - { - ConsoleHandler.printError("Faild to extract deploy-version from: " + filePath, true); - throw new SilecsException("Faild to extract deploy-version from: " + filePath, ex); - } - } - - public static void openInEditor(final IFile file) - { - Display.getDefault().asyncExec(new Runnable() { - @Override - public void run() { - IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(file.getName()); - IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); - try { - page.openEditor(new FileEditorInput(file), desc.getId()); - } catch (Exception e) { - ConsoleHandler.printError("Failed to open file:" + file, true); - e.printStackTrace(); - } - } - }); - } - - - public static void checkSilecsVersion(IProject project) throws SilecsException - { - String version = getSilecsVersion(project); - if( isSilecsVersionSupported(version) == false ) - { - throw new SilecsException("The old silecs version: '" + version + "' is not supported by this silecs-plugin. Please update your SILECS project to a more recent version (right-click --> SILECS Update Project)"); - } - } - - - public static Boolean isSilecsVersionSupported(String version) - { - for(String supportedVersion: SilecsConstants.SUPPORTED_SILECS_MAJOR_VERSIONS) - { - if(version.startsWith(supportedVersion)) - return true; - } - return false; - } - - public static List<String> readOutAvailableSilecsVersions() - { - List<String> silecsVersions = new ArrayList<String>(); - if (MainPreferencePage.isLocalDirectoryUsed()) - { - silecsVersions.add("DEV"); - return silecsVersions; - } - - // We just pick any sub-project - File silecsBaseFolder = new File(MainPreferencePage.getGlobalSilecsDirectory() + "/silecs-model"); - for (final File fileEntry : silecsBaseFolder.listFiles()) - { - silecsVersions.add(fileEntry.getName()); - } - Collections.sort(silecsVersions); - Collections.reverse(silecsVersions); - return silecsVersions; - } - - public static IFile extractSilecsFileFromEvent(ExecutionEvent event) throws Exception - { - String parameter = event.getParameter("silecs-eclipse-plugin.commandParameter"); - if ( parameter.equals("menubar")) - { - IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); - IWorkbenchPage activePage = window.getActivePage(); - - // Get the Selection from the active WorkbenchPage page - ISelection selection = activePage.getSelection(); - if(selection instanceof ITreeSelection) // Event was triggered by right-click on project - { - TreeSelection treeSelection = (TreeSelection) selection; - TreePath[] treePaths = treeSelection.getPaths(); - TreePath treePath = treePaths[0]; - - // The first segment should be a IProject - Object firstSegmentObj = treePath.getFirstSegment(); - IProject theProject = (IProject) ((IAdaptable)firstSegmentObj).getAdapter(IProject.class); - if( theProject == null ) - { - ConsoleHandler.printError("Failed to find the right project", true); - throw new ExecutionException("Failed to find the right project"); - } - return getSilecsDocument(theProject); - } - } - if (parameter.equals("toolbar")) - { - // The default: the toolbar button was pressed - IEditorPart editor = HandlerUtil.getActiveEditor(event); - if (editor == null) - { - ConsoleHandler.printError("Failed to find active SILECS editor", true); - throw new Exception("Failed to find active SILECS editor"); - } - return ((IFileEditorInput) editor.getEditorInput()).getFile(); - } - String message = new String("Failed to find correct silecs-project/file - command: '" + event.getCommand().getName() + "' send with parameter: '" + parameter + "'."); - ConsoleHandler.printError(message, true); - throw new Exception(message); - } -} diff --git a/silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchAdvisor.java b/silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchAdvisor.java deleted file mode 100644 index 6d6f682..0000000 --- a/silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchAdvisor.java +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2016 CERN and GSI -// -// 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 3 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package cern.silecs.view; - -import java.net.URL; -import java.net.URLClassLoader; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IResourceChangeEvent; -import org.eclipse.core.resources.IResourceChangeListener; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.ui.IWorkbenchPreferenceConstants; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.application.IWorkbenchConfigurer; -import org.eclipse.ui.application.IWorkbenchWindowConfigurer; -import org.eclipse.ui.application.WorkbenchAdvisor; -import org.eclipse.ui.application.WorkbenchWindowAdvisor; -import org.eclipse.ui.ide.IDE; - -import cern.silecs.utils.OSExecute; -import cern.silecs.utils.SilecsConstants; -import cern.silecs.utils.XmlUtils; -import cern.silecs.view.console.ConsoleHandler; - -/** - * In this class a lot of initialization takes place because this is the point when workbench is already created. - */ -public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor { - - private static final String PERSPECTIVE_ID = "silecs.eclipse.plugin.perspective"; //$NON-NLS-1$ - - @Override - public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { - return new ApplicationWorkbenchWindowAdvisor(configurer); - } - - @Override - public String getInitialWindowPerspectiveId() { - return PERSPECTIVE_ID; - } - - @Override - public void initialize(IWorkbenchConfigurer configurer) { - super.initialize(configurer); - - configurer.setSaveAndRestore(true); - PlatformUI.getPreferenceStore().setValue(IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, false); - - IDE.registerAdapters(); - } - - @Override - public IAdaptable getDefaultPageInput() { - return ResourcesPlugin.getWorkspace().getRoot(); - } - -} diff --git a/silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchWindowAdvisor.java b/silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchWindowAdvisor.java deleted file mode 100644 index c8de392..0000000 --- a/silecs-eclipse-plugin/src/java/cern/silecs/view/ApplicationWorkbenchWindowAdvisor.java +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2016 CERN and GSI -// -// 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 3 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package cern.silecs.view; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.swt.graphics.Point; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.IPartListener; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.application.ActionBarAdvisor; -import org.eclipse.ui.application.IActionBarConfigurer; -import org.eclipse.ui.application.IWorkbenchWindowConfigurer; -import org.eclipse.ui.application.WorkbenchWindowAdvisor; -import org.eclipse.ui.internal.dialogs.WorkbenchWizardElement; -import org.eclipse.ui.internal.wizards.AbstractExtensionWizardRegistry; -import org.eclipse.ui.wizards.IWizardCategory; -import org.eclipse.ui.wizards.IWizardDescriptor; - -import cern.silecs.utils.SilecsConstants; - -@SuppressWarnings("restriction") -public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor { - - public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) { - super(configurer); - } - - @Override - public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) { - return new ApplicationActionBarAdvisor(configurer); - } - - @Override - public void preWindowOpen() { - IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); - configurer.setInitialSize(new Point(700, 500)); - configurer.setShowCoolBar(true); - configurer.setShowStatusLine(true); - configurer.setTitle(SilecsConstants.SILECS_NAME); //$NON-NLS-1$ - configurer.setShowProgressIndicator(true); - } - - @Override - public void postWindowOpen() { - super.postWindowOpen(); - - addChangedEditorListener(); - - // removing unnecessary wizards from new and import menu. - AbstractExtensionWizardRegistry wizardRegistry = (AbstractExtensionWizardRegistry) PlatformUI.getWorkbench() - .getNewWizardRegistry(); - IWizardCategory[] categories = PlatformUI.getWorkbench().getNewWizardRegistry().getRootCategory() - .getCategories(); - - for (IWizardDescriptor wizard : getAllWizards(categories)) { - if (wizard.getCategory().getId().matches("org.eclipse.ui.Basic")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } else if (wizard.getCategory().getId().matches("org.eclipse.wst.xml.examples")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } else if (wizard.getCategory().getId().matches("org.eclipse.wst.XMLCategory")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } else if (wizard.getCategory().getId().matches("org.eclipse.cdt.ui.newCWizards")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } - - } - - wizardRegistry = (AbstractExtensionWizardRegistry) PlatformUI.getWorkbench().getImportWizardRegistry(); - - categories = PlatformUI.getWorkbench().getImportWizardRegistry().getRootCategory().getCategories(); - - for (IWizardDescriptor wizard : getAllWizards(categories)) { - if (wizard.getCategory().getId().matches("org.eclipse.cdt.ui.importWizardCategory")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } else if (wizard.getCategory().getId().matches("org.eclipse.debug.ui")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } else if (wizard.getCategory().getId().matches("org.eclipse.wst.XMLCategory")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } else if (wizard.getCategory().getId().matches("org.eclipse.team.ui.importWizards")) { - WorkbenchWizardElement wizardElement = (WorkbenchWizardElement) wizard; - wizardRegistry.removeExtension(wizardElement.getConfigurationElement().getDeclaringExtension(), - new Object[] { wizardElement }); - } - } - } - - private IWizardDescriptor[] getAllWizards(IWizardCategory[] categories) { - List<IWizardDescriptor> results = new ArrayList<IWizardDescriptor>(); - for (IWizardCategory wizardCategory : categories) { - results.addAll(Arrays.asList(wizardCategory.getWizards())); - results.addAll(Arrays.asList(getAllWizards(wizardCategory.getCategories()))); - } - return results.toArray(new IWizardDescriptor[0]); - } - - private void addChangedEditorListener() { - IWorkbench workbench = PlatformUI.getWorkbench(); - IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage(); - page.addPartListener(new IPartListener() { - - @Override - public void partOpened(IWorkbenchPart part) { - setApplicationTitle(); - } - - @Override - public void partDeactivated(IWorkbenchPart part) { - setApplicationTitle(); - } - - @Override - public void partClosed(IWorkbenchPart part) { - setApplicationTitle(); - } - - @Override - public void partBroughtToTop(IWorkbenchPart part) { - setApplicationTitle(); - } - - @Override - public void partActivated(IWorkbenchPart part) { - setApplicationTitle(); - } - - private void setApplicationTitle() { -// IEditorPart editorPart = page.getActiveEditor(); -// IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); -// -// if (editorPart != null) { -// IFileEditorInput editorInput = (IFileEditorInput) editorPart.getEditorInput(); -// IFile file = editorInput.getFile(); -// -// configurer.setTitle(file.getFullPath() + " - " + SilecsConstants.SILECS_NAME + " - " -// + ResourcesPlugin.getWorkspace()); -// } else { -// configurer.setTitle(SilecsConstants.SILECS_NAME + " - " + ResourcesPlugin.getWorkspace() ); -// } - } - }); - - } -} diff --git a/silecs-eclipse-plugin/src/java/cern/silecs/view/explorer/SilecsProjectExplorer.java b/silecs-eclipse-plugin/src/java/cern/silecs/view/explorer/SilecsProjectExplorer.java deleted file mode 100644 index 927d650..0000000 --- a/silecs-eclipse-plugin/src/java/cern/silecs/view/explorer/SilecsProjectExplorer.java +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2016 CERN and GSI -// -// 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 3 of the License, or -// (at your option) any later version. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package cern.silecs.view.explorer; - -import java.time.LocalDateTime; -import java.time.ZoneOffset; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IStatusLineManager; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.navigator.CommonNavigator; -import org.eclipse.ui.navigator.CommonViewer; -import org.eclipse.ui.navigator.ICommonActionConstants; - -import cern.silecs.control.core.DeployProjectNature; -import cern.silecs.control.core.DesignProjectNature; -import cern.silecs.utils.SilecsUtils; - -/** - * This class is a subclass of CommonNavigator that provide changes concerning expanding tree. - * - * @see CommonNavigator - */ -public class SilecsProjectExplorer extends CommonNavigator { - - public static final String VIEW_ID = "cern.silecs.view.explorer"; - - @Override - public void createPartControl(Composite aParent) { - super.createPartControl(aParent); - CommonViewer viewer = getCommonViewer(); - - IActionBars bars = getViewSite().getActionBars(); - final IStatusLineManager lineManager = bars.getStatusLineManager(); - - final ILabelProvider labelProvider = (ILabelProvider) viewer.getLabelProvider(); - - viewer.addPostSelectionChangedListener(new ISelectionChangedListener() { - - @Override - public void selectionChanged(SelectionChangedEvent event) { - - ISelection aSelection = event.getSelection(); - if (aSelection != null && !aSelection.isEmpty() && aSelection instanceof IStructuredSelection) { - IStructuredSelection selection = (IStructuredSelection) aSelection; - IResource file = null; - - if (selection.size() == 1 && selection.getFirstElement() instanceof IProject) { - IProject project = (IProject) selection.getFirstElement(); - try { - if (project.hasNature(DesignProjectNature.NATURE_ID)) { - file = SilecsUtils.getSilecsDesignFile(project); - } else if (project.hasNature(DeployProjectNature.NATURE_ID)) { - file = SilecsUtils.getSilecsDeployFile(project); - } - } catch (Exception e) { - e.printStackTrace(); - } - - } else if(selection.size() == 1 && selection.getFirstElement() instanceof IFile) { - file = (IFile) selection.getFirstElement(); - } - - if(file != null) { - Image img = null; - img = labelProvider.getImage(((IStructuredSelection) aSelection).getFirstElement()); - long modificationTime = file.getLocalTimeStamp() / 1000; - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY HH:mm:ss"); - LocalDateTime dateAndTime = LocalDateTime.ofEpochSecond(modificationTime, 0, ZoneOffset.ofHours(2)); - - lineManager.setMessage(img,"Last modfication: " + formatter.format(dateAndTime) + " : " + file.getFullPath()); - } - } - - } - }); - - } - - /** - * This method is responsible for expanding the project tree from the root to the silecs file(*.silecsdesign or - * *.silecsdeploy) - */ - @Override - protected void handleDoubleClick(DoubleClickEvent anEvent) { - - IStructuredSelection selection = (IStructuredSelection) anEvent.getSelection(); - Object element = selection.getFirstElement(); - if (element instanceof IProject && !((IProject) element).isOpen()) { - try { - ((IProject) element).open(new NullProgressMonitor()); - } catch (CoreException e) { - e.printStackTrace(); - } - return; - - } else if (element instanceof IProject && ((IProject) element).isOpen()) { - List<IProject> projectList = new ArrayList<IProject>(); - projectList.add((IProject) element); - - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - - expandHelper(root, projectList); - return; - } - super.handleDoubleClick(anEvent); - } - - /** - * This method expands elements in the tree. Since the tool does not have knowledge about project structure it must - * be done recursively. - * - * @param root {@link WorkspaceRoot} - * @param projects List of projects that need to be expanded - */ - public void expandHelper(IWorkspaceRoot root, List<IProject> projects) { - for (IProject project : projects) { - if (project.isOpen()) { - try { - IFile file = null; - if (project.hasNature(DeployProjectNature.NATURE_ID)) { - file = SilecsUtils.getSilecsDeployFile(project); - } else if (project.hasNature(DesignProjectNature.NATURE_ID)) { - file = SilecsUtils.getSilecsDesignFile(project); - } - if (file == null) - continue; - - IContainer parent = file.getParent(); - List<Object> toExpand = new ArrayList<>(); - - do { - toExpand.add(0, parent); - } while ((parent = parent.getParent()) != root); - boolean expand = !getCommonViewer().getExpandedState(project); - for(Object o: toExpand ) - expand(o, expand); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - - /** - * Expands single element in the viewer - * - * @param element - * @return true if expanded - */ - private boolean expand(Object element, boolean expand) { - IAction openHandler = getViewSite().getActionBars().getGlobalActionHandler(ICommonActionConstants.OPEN); - - if (openHandler == null) { - - TreeViewer viewer = getCommonViewer(); - if (viewer.isExpandable(element)) { - viewer.setExpandedState(element, expand); - return true; - } - } - return false; - } - -} -- GitLab