1.1 --- a/samples/componentinjection/anagram-modular/build.xml Sat Jun 14 10:06:53 2008 +0200
1.2 +++ b/samples/componentinjection/anagram-modular/build.xml Sat Jun 14 10:06:54 2008 +0200
1.3 @@ -8,28 +8,30 @@
1.4 <target name="build" depends="-libraries">
1.5 <antcall target="-build-one">
1.6 <param name="version" value="api"/>
1.7 + <param name="cp" value=""/>
1.8 + </antcall>
1.9 + <antcall target="-build-one">
1.10 + <param name="version" value="word-static"/>
1.11 + </antcall>
1.12 + <antcall target="-build-one">
1.13 + <param name="version" value="scrambler-simple"/>
1.14 + </antcall>
1.15 + <antcall target="-build-one">
1.16 + <param name="version" value="gui"/>
1.17 + </antcall>
1.18 + <antcall target="-build-one">
1.19 + <param name="version" value="app-register"/>
1.20 + <param name="cp" value="build/api/classes:build/word-static/classes:build/scrambler-simple/classes:build/gui/classes"/>
1.21 </antcall>
1.22
1.23 - <antcall target="-build-one">
1.24 - <param name="version" value="test"/>
1.25 - <param name="cp" value="build/new-api/classes:${junit.jar}"/>
1.26 - </antcall>
1.27 </target>
1.28
1.29 - <target name="test">
1.30 - <antcall target="-do-test">
1.31 - <param name="nodebug" value="true"/>
1.32 - </antcall>
1.33 - </target>
1.34 -
1.35 - <target name="-do-test" depends="build">
1.36 + <target name="test" depends="build">
1.37 <echo level="info" message="Running the tests with bridge enabled. This should succeeds."/>
1.38 <antcall target="-run-one">
1.39 - <param name="test.cp" value="build/new-api/classes:build/bridge/classes"/>
1.40 - </antcall>
1.41 - <echo level="info" message="Running the tests without bridge module. This should fail."/>
1.42 - <antcall target="-run-one">
1.43 - <param name="test.cp" value="build/new-api/classes"/>
1.44 + <param name="version" value="app-register"/>
1.45 + <param name="cp" value="build/api/classes:build/word-static/classes:build/scrambler-simple/classes:build/gui/classes"/>
1.46 + <param name="main" value="org.apidesign.anagram.app.register.Main"/>
1.47 </antcall>
1.48 </target>
1.49
1.50 @@ -41,43 +43,15 @@
1.51 <property name="junit.jar" location="../libs/dist/junit-4.4.jar"/>
1.52 </target>
1.53
1.54 - <target name="-debug-one" if="netbeans.home" unless="nodebug">
1.55 - <nbjpdastart addressproperty="jpda.address" name="MessageDigest and Bridges" transport="dt_socket" >
1.56 - <sourcepath path="src-new-api:src-bridge:src-test:build/test/classes"/>
1.57 - <classpath path="build/new-api/classes:build/bridge/classes:build/test/classes"/>
1.58 - </nbjpdastart>
1.59 - <property name="debug1" value="-Xdebug"/>
1.60 - <property name="debug2" value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
1.61 - </target>
1.62 -
1.63 - <target name="-run-one" depends="-debug-one">
1.64 - <property name="debug1" value="-Dn1"/>
1.65 - <property name="debug2" value="-Dn2"/>
1.66 - <property name="include" value="**/*Test"/>
1.67 - <mkdir dir="build/testresults"/>
1.68 - <junit dir="build/test/classes" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
1.69 - <batchtest todir="build/testresults">
1.70 - <fileset dir="build/test/classes">
1.71 - <filename name="${include}.class"/>
1.72 - </fileset>
1.73 - </batchtest>
1.74 - <classpath>
1.75 - <path path="${test.cp}"/>
1.76 - <path location="build/test/classes"/>
1.77 - <path location="${junit.jar}"/>
1.78 - </classpath>
1.79 - <formatter type="brief" usefile="false"/>
1.80 - <formatter type="xml"/>
1.81 - <jvmarg value="${debug1}"/>
1.82 - <jvmarg value="${debug2}"/>
1.83 - </junit>
1.84 + <target name="-run-one">
1.85 + <java classpath="${cp}:build/${version}/classes" classname="${main}"/>
1.86 </target>
1.87
1.88 <target name="-build-one">
1.89 <fail message="You need to specify version number" unless="version"/>
1.90
1.91 <mkdir dir="build/${version}/classes"/>
1.92 - <property name="cp" value=""/>
1.93 + <property name="cp" value="build/api/classes"/>
1.94 <javac
1.95 srcdir="src-${version}"
1.96 destdir="build/${version}/classes"
2.1 --- a/samples/componentinjection/anagram-modular/nbproject/project.xml Sat Jun 14 10:06:53 2008 +0200
2.2 +++ b/samples/componentinjection/anagram-modular/nbproject/project.xml Sat Jun 14 10:06:54 2008 +0200
2.3 @@ -34,6 +34,12 @@
2.4 <encoding>UTF-8</encoding>
2.5 </source-folder>
2.6 <source-folder>
2.7 + <label>src-app-register</label>
2.8 + <type>java</type>
2.9 + <location>src-app-register</location>
2.10 + <encoding>UTF-8</encoding>
2.11 + </source-folder>
2.12 + <source-folder>
2.13 <label>Anagram Modular</label>
2.14 <location>.</location>
2.15 <encoding>UTF-8</encoding>
2.16 @@ -88,6 +94,10 @@
2.17 <label>src-gui</label>
2.18 <location>src-gui</location>
2.19 </source-folder>
2.20 + <source-folder style="packages">
2.21 + <label>src-app-register</label>
2.22 + <location>src-app-register</location>
2.23 + </source-folder>
2.24 <source-file>
2.25 <location>build.xml</location>
2.26 </source-file>
2.27 @@ -127,6 +137,12 @@
2.28 <source-level>1.5</source-level>
2.29 </compilation-unit>
2.30 <compilation-unit>
2.31 + <package-root>src-app-register</package-root>
2.32 + <classpath mode="compile">src-api:src-scrambler-simple:src-word-static:src-gui</classpath>
2.33 + <built-to>build/app-register/classes</built-to>
2.34 + <source-level>1.5</source-level>
2.35 + </compilation-unit>
2.36 + <compilation-unit>
2.37 <package-root>src-test</package-root>
2.38 <classpath mode="compile">src-new-api:../libs/dist/junit-4.4.jar</classpath>
2.39 <source-level>1.5</source-level>
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/samples/componentinjection/anagram-modular/src-app-register/org/apidesign/anagram/app/register/Launcher.java Sat Jun 14 10:06:54 2008 +0200
3.3 @@ -0,0 +1,32 @@
3.4 +package org.apidesign.anagram.app.register;
3.5 +
3.6 +import org.apidesign.anagram.api.Scrambler;
3.7 +import org.apidesign.anagram.api.UI;
3.8 +import org.apidesign.anagram.api.WordLibrary;
3.9 +
3.10 +public final class Launcher {
3.11 + private static Class<? extends WordLibrary> wordLibrary;
3.12 + private static Class<? extends Scrambler> scrambler;
3.13 + private static Class<? extends UI> ui;
3.14 +
3.15 +
3.16 + private Launcher() {
3.17 + }
3.18 +
3.19 +
3.20 + public static void registerWordLibrary(Class<? extends WordLibrary> libraryClass) {
3.21 + wordLibrary = libraryClass;
3.22 + }
3.23 + public static void registerScrambler(Class<? extends Scrambler> scramblerClass) {
3.24 + scrambler = scramblerClass;
3.25 + }
3.26 + public static void registerUI(Class<? extends UI> uiClass) {
3.27 + ui = uiClass;
3.28 + }
3.29 +
3.30 + public static UI launch() throws Exception {
3.31 + WordLibrary w = wordLibrary.newInstance();
3.32 + Scrambler s = scrambler.newInstance();
3.33 + return ui.getConstructor(WordLibrary.class, Scrambler.class).newInstance(w, s);
3.34 + }
3.35 +}
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/samples/componentinjection/anagram-modular/src-app-register/org/apidesign/anagram/app/register/Main.java Sat Jun 14 10:06:54 2008 +0200
4.3 @@ -0,0 +1,21 @@
4.4 +package org.apidesign.anagram.app.register;
4.5 +
4.6 +import org.apidesign.anagram.api.UI;
4.7 +import org.apidesign.anagram.gui.AnagramsWithConstructor;
4.8 +import org.apidesign.anagram.scramblersimple.SimpleScrambler;
4.9 +import org.apidesign.anagram.wordstatic.StaticWordLibrary;
4.10 +
4.11 +public final class Main {
4.12 + private Main() { }
4.13 +
4.14 + public static void main(String[] args) throws Exception {
4.15 + Launcher.registerScrambler(SimpleScrambler.class);
4.16 + Launcher.registerWordLibrary(StaticWordLibrary.class);
4.17 + Launcher.registerUI(AnagramsWithConstructor.class);
4.18 +
4.19 + UI ui = Launcher.launch();
4.20 + ui.display();
4.21 + }
4.22 +
4.23 +
4.24 +}
5.1 --- a/samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java Sat Jun 14 10:06:53 2008 +0200
5.2 +++ b/samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java Sat Jun 14 10:06:54 2008 +0200
5.3 @@ -18,13 +18,19 @@
5.4 /** Creates new form Anagrams */
5.5 public Anagrams() {
5.6 initComponents();
5.7 - initWord();
5.8 getRootPane().setDefaultButton(guessButton);
5.9 }
5.10
5.11 protected abstract WordLibrary getWordLibrary();
5.12 protected abstract Scrambler getScrambler();
5.13
5.14 +
5.15 + @Override
5.16 + public void addNotify() {
5.17 + super.addNotify();
5.18 + initWord();
5.19 + }
5.20 +
5.21 /** This method is called from within the constructor to
5.22 * initialize the form.
5.23 * WARNING: Do NOT modify this code. The content of this method is
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/AnagramsWithConstructor.java Sat Jun 14 10:06:54 2008 +0200
6.3 @@ -0,0 +1,29 @@
6.4 +package org.apidesign.anagram.gui;
6.5 +
6.6 +import org.apidesign.anagram.api.Scrambler;
6.7 +import org.apidesign.anagram.api.WordLibrary;
6.8 +
6.9 +public final class AnagramsWithConstructor extends Anagrams {
6.10 +
6.11 + private final WordLibrary library;
6.12 + private final Scrambler scrambler;
6.13 +
6.14 + public AnagramsWithConstructor(WordLibrary library, Scrambler scrambler) {
6.15 + this.library = library;
6.16 + this.scrambler = scrambler;
6.17 + }
6.18 +
6.19 + @Override
6.20 + protected WordLibrary getWordLibrary() {
6.21 + return library;
6.22 + }
6.23 +
6.24 + @Override
6.25 + protected Scrambler getScrambler() {
6.26 + return scrambler;
6.27 + }
6.28 +
6.29 + public void display() {
6.30 + setVisible(true);
6.31 + }
6.32 +}