Skip to content

Commit 7423e6e

Browse files
author
dlsmith
committed
Fixed packaging and added RMI compilation to build script. Plug-in is now buildable from the script, but depends on DrJava sources from revision 3518 (or earlier). Tests do not currently work (they depend on Eclipse classes).
git-svn-id: file:///tmp/test-svn/trunk@4023 fe72c1cf-3628-48e9-8b72-1c46755d3cff
1 parent fc0e1ff commit 7423e6e

File tree

3 files changed

+95
-70
lines changed

3 files changed

+95
-70
lines changed

eclipse/README.dev-tips

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,6 @@
11
DrJava Plug-in for Eclipse Development Tips -----
22

33

4-
How to compile and package the plug-in:
5-
6-
- Adapt "eclipse.sh" to match your system.
7-
- Run "source eclipse.sh"
8-
- Run "ant clean-eclipse package-eclipse"
9-
- This will generate a zip file in plugins/eclipse/packages
10-
- Unzip this to the plugins directory of your Eclipse installation to run.
11-
12-
13-
How to commit changes:
14-
15-
- Note: these are temporary instructions. DO NOT USE "ant commit"!
16-
- Change to the plugins/eclipse directory and run "cvs commit".
17-
- Commit the build.xml if the version number has changed.
18-
- If it's a release, tag the plugins/eclipse directory.
19-
- To do:
20-
- The ant script needs to be modified to work at the top level.
21-
Ideally, all DrJava development could be done from that build.xml,
22-
and src/edu/rice/cs/drjava/build.xml could be deleted.
23-
A commit-eclipse target should be created, which would run the tests.
24-
25-
264
How to run the plug-in tests:
275

286
- The tests create Eclipse objects, which require extra libraries.
@@ -32,14 +10,6 @@ How to run the plug-in tests:
3210
- Add instructions for specifying these libraries to this document.
3311

3412

35-
How to update the version number:
36-
37-
- Edit plugins/eclipse/plugin.xml:
38-
- Change version attribute in the plugin tag.
39-
- Edit build.xml in top level:
40-
- Change eclipse_plugin_version property to new version.
41-
42-
4313
How to add a preference to the plug-in:
4414

4515
- Add a constant to DrJavaConstants

eclipse/build.xml

Lines changed: 76 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<project name="eclipse" default="help">
88

9-
<property name="eclipse-version" value="0.9.6" />
9+
<property name="eclipse-version" value="0.9.8" />
1010

1111
<property name="readable-project-name" value="DrJava Eclipse Plug-in" />
1212
<property name="src-working-dir" value="src/edu/rice/cs/drjava" />
@@ -82,9 +82,13 @@
8282
Build Target
8383
************ -->
8484

85+
<target name="build" depends="jar-14" description="Shortcut for 'jar-14'">
86+
</target>
87+
<!-- test-14-in-15 should be here, but has been removed until testing works correctly
8588
<target name="build" depends="test-14-in-15, jar-14"
8689
description="Shortcut for 'test-14-in-15' and 'jar-14'">
8790
</target>
91+
-->
8892

8993

9094
<!-- *******************
@@ -94,7 +98,7 @@
9498
<target name="compile" depends="compile-15" description="Shortcut for 'compile-15'">
9599
</target>
96100

97-
<target name="compile-15" depends="do-compile, copy-resources, unjar-libs"
101+
<target name="compile-15" depends="check-rmi-compile, do-compile, rmi-compile, copy-resources, unjar-libs"
98102
description="Compile all source files">
99103
</target>
100104

@@ -110,15 +114,17 @@
110114

111115
<!-- Move any test classes back to base to prevent recompilation -->
112116
<move todir="classes/base">
113-
<fileset dir="classes/test" />
117+
<fileset dir="classes/test" includes="**/*" />
114118
</move>
115119

116120
<!--<javac srcdir="src" destdir="classes/base" source="1.5" target="1.5" sourcepath="${drjava-src}"
117121
debug="on" optimize="off" deprecation="on" includeAntRuntime="no" fork="yes">-->
122+
<!-- (Have to specify additional explicit srcdirs - see below) -->
118123
<javac destdir="classes/base" source="1.5" target="1.5" sourcepath="${drjava-src}"
119124
debug="on" optimize="off" deprecation="on" includeAntRuntime="no" fork="yes">
120125
<src>
121126
<pathelement location="src" />
127+
<!-- These classes won't automatically compile, because they aren't in files matching their name -->
122128
<pathelement location="${drjava-src}/edu/rice/cs/util/sexp" />
123129
</src>
124130
<classpath>
@@ -149,7 +155,73 @@
149155

150156
</target>
151157

152-
158+
159+
<!-- Matches base class files that should be RMI compiled. Search is relative to "classes/base". -->
160+
<patternset id="rmi-base-classes">
161+
<include name="edu/rice/cs/drjava/model/repl/newjvm/InterpreterJVM.class" />
162+
<include name="edu/rice/cs/drjava/model/repl/newjvm/MainJVM.class" />
163+
<include name="edu/rice/cs/util/newjvm/RemoteClassLoader.class" />
164+
<!-- Additional base RMI classes should be listed here -->
165+
</patternset>
166+
167+
<!-- Matches test class files that should be RMI compiled. Search is relative to "classes/test". -->
168+
<patternset id="rmi-test-classes">
169+
<exclude name="**" />
170+
<!-- Additional test RMI classes should be listed here -->
171+
</patternset>
172+
173+
<!-- This check has to happen *before* do-compile; otherwise, the rmi class files will
174+
always be up to date -->
175+
<target name="check-rmi-compile">
176+
<condition property="rmi-classes-uptodate">
177+
<and>
178+
<available file="classes/base" type="dir" />
179+
<available file="classes/test" type="dir" />
180+
<not>
181+
<or>
182+
<!-- If a source is "up to date" with respect to its class file
183+
(reversing the usual order), the class file is out of date. This
184+
allows for a one-to-many relationship between a source and its classes. -->
185+
<uptodate>
186+
<srcfiles dir="classes/base">
187+
<patternset refid="rmi-base-classes" />
188+
</srcfiles>
189+
<!-- Regular expression copied from the Ant manual; they say it maps from
190+
classes to their sources -->
191+
<mapper type="regexp" from="^(.*?)(\$$[^/\\\.]*)?\.class$$" to="\1.java" />
192+
</uptodate>
193+
<uptodate>
194+
<srcfiles dir="classes/test">
195+
<patternset refid="rmi-test-classes" />
196+
</srcfiles>
197+
<mapper type="regexp" from="^(.*?)(\$$[^/\\\.]*)?\.class$$" to="\1.java" />
198+
</uptodate>
199+
</or>
200+
</not>
201+
</and>
202+
</condition>
203+
</target>
204+
205+
<target name="rmi-compile" depends="check-rmi-compile" unless="rmi-classes-uptodate">
206+
<echo message="Compiling RMI classes" />
207+
<rmic base="classes/base" includeAntRuntime="no">
208+
<patternset refid="rmi-base-classes" />
209+
<classpath>
210+
<fileset refid="libs" />
211+
<pathelement location="classes/base" />
212+
</classpath>
213+
</rmic>
214+
<rmic base="classes/test" includeAntRuntime="no">
215+
<patternset refid="rmi-test-classes" />
216+
<classpath>
217+
<fileset refid="libs" />
218+
<pathelement location="classes/base" />
219+
<pathelement location="classes/test" />
220+
</classpath>
221+
</rmic>
222+
</target>
223+
224+
153225
<target name="copy-resources">
154226
<copy todir="classes/base">
155227
<fileset dir="src">
@@ -370,15 +442,6 @@
370442
<manifest>
371443
<attribute name="Built-By" value="${user.name}" />
372444
<attribute name="Build-Version" value="${version-tag}" />
373-
<attribute name="Bundle-ManifestVersion" value="2" />
374-
<attribute name="Bundle-Name" value="DrJava Plug-in" />
375-
<attribute name="Bundle-SymbolicName" value="edu.rice.cs.drjava; singleton:=true" />
376-
<attribute name="Bundle-Version" value="${eclipse-version}" />
377-
<attribute name="Bundle-ClassPath" value="drjava-eclipse-15.jar" />
378-
<attribute name="Bundle-Activator" value="edu.rice.cs.drjava.plugins.eclipse.EclipsePlugin" />
379-
<attribute name="Bundle-Localization" value="plugin" />
380-
<attribute name="Require-Bundle" value="org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.debug.ui, org.eclipse.jdt.debug.ui, org.eclipse.ui.console, org.eclipse.core.resources, org.eclipse.jface.text, org.eclipse.jdt.core, org.eclipse.jdt.ui, org.eclipse.search" />
381-
<attribute name="Eclipse-AutoStart" value="true" />
382445
</manifest>
383446
<fileset dir="classes/lib" />
384447
<fileset dir="classes/base" />
@@ -391,15 +454,6 @@
391454
<manifest>
392455
<attribute name="Built-By" value="${user.name}" />
393456
<attribute name="Build-Version" value="${version-tag}" />
394-
<attribute name="Bundle-ManifestVersion" value="2" />
395-
<attribute name="Bundle-Name" value="DrJava Plug-in" />
396-
<attribute name="Bundle-SymbolicName" value="edu.rice.cs.drjava; singleton:=true" />
397-
<attribute name="Bundle-Version" value="${eclipse-version}" />
398-
<attribute name="Bundle-ClassPath" value="drjava-eclipse-base-15.jar" />
399-
<attribute name="Bundle-Activator" value="edu.rice.cs.drjava.plugins.eclipse.EclipsePlugin" />
400-
<attribute name="Bundle-Localization" value="plugin" />
401-
<attribute name="Require-Bundle" value="org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.debug.ui, org.eclipse.jdt.debug.ui, org.eclipse.ui.console, org.eclipse.core.resources, org.eclipse.jface.text, org.eclipse.jdt.core, org.eclipse.jdt.ui, org.eclipse.search" />
402-
<attribute name="Eclipse-AutoStart" value="true" />
403457
</manifest>
404458
<fileset dir="classes/base" />
405459
</jar>
@@ -411,15 +465,6 @@
411465
<manifest>
412466
<attribute name="Built-By" value="${user.name}" />
413467
<attribute name="Build-Version" value="${version-tag}" />
414-
<attribute name="Bundle-ManifestVersion" value="2" />
415-
<attribute name="Bundle-Name" value="DrJava Plug-in" />
416-
<attribute name="Bundle-SymbolicName" value="edu.rice.cs.drjava; singleton:=true" />
417-
<attribute name="Bundle-Version" value="${eclipse-version}" />
418-
<attribute name="Bundle-ClassPath" value="drjava-eclipse.jar" />
419-
<attribute name="Bundle-Activator" value="edu.rice.cs.drjava.plugins.eclipse.EclipsePlugin" />
420-
<attribute name="Bundle-Localization" value="plugin" />
421-
<attribute name="Require-Bundle" value="org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.debug.ui, org.eclipse.jdt.debug.ui, org.eclipse.ui.console, org.eclipse.core.resources, org.eclipse.jface.text, org.eclipse.jdt.core, org.eclipse.jdt.ui, org.eclipse.search" />
422-
<attribute name="Eclipse-AutoStart" value="true" />
423468
</manifest>
424469
<fileset dir="classes/lib-14" />
425470
<fileset dir="classes/base-14" />
@@ -432,15 +477,6 @@
432477
<manifest>
433478
<attribute name="Built-By" value="${user.name}" />
434479
<attribute name="Build-Version" value="${version-tag}" />
435-
<attribute name="Bundle-ManifestVersion" value="2" />
436-
<attribute name="Bundle-Name" value="DrJava Plug-in" />
437-
<attribute name="Bundle-SymbolicName" value="edu.rice.cs.drjava; singleton:=true" />
438-
<attribute name="Bundle-Version" value="${eclipse-version}" />
439-
<attribute name="Bundle-ClassPath" value="drjava-eclipse-base-14.jar" />
440-
<attribute name="Bundle-Activator" value="edu.rice.cs.drjava.plugins.eclipse.EclipsePlugin" />
441-
<attribute name="Bundle-Localization" value="plugin" />
442-
<attribute name="Require-Bundle" value="org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.debug.ui, org.eclipse.jdt.debug.ui, org.eclipse.ui.console, org.eclipse.core.resources, org.eclipse.jface.text, org.eclipse.jdt.core, org.eclipse.jdt.ui, org.eclipse.search" />
443-
<attribute name="Eclipse-AutoStart" value="true" />
444480
</manifest>
445481
<fileset dir="classes/base-14" />
446482
</jar>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Manifest-Version: 1.0
2+
Bundle-ManifestVersion: 2
3+
Bundle-Name: Drjava Plug-in
4+
Bundle-SymbolicName: edu.rice.cs.drjava; singleton:=true
5+
Bundle-Version: @ECLIPSE_VERSION@
6+
Bundle-ClassPath: drjava-eclipse.jar
7+
Bundle-Activator: edu.rice.cs.drjava.plugins.eclipse.EclipsePlugin
8+
Bundle-Localization: plugin
9+
Require-Bundle: org.eclipse.ui,
10+
org.eclipse.core.runtime,
11+
org.eclipse.debug.ui,
12+
org.eclipse.jdt.debug.ui,
13+
org.eclipse.ui.console,
14+
org.eclipse.core.resources,
15+
org.eclipse.jface.text,
16+
org.eclipse.jdt.core,
17+
org.eclipse.jdt.ui,
18+
org.eclipse.search
19+
Eclipse-AutoStart: true

0 commit comments

Comments
 (0)