Merge: Patrick's touches
authorJaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:08:42 +0200
changeset 252763bf709a318
parent 251 266127621c8f
child 253 08983504f8a7
Merge: Patrick's touches
samples/componentinjection/anagram-modular/build.xml
samples/componentinjection/anagram-modular/nbproject/project.xml
samples/componentinjection/anagram-modular/src-app-lookup/org/apidesign/anagram/app/lookup/AnagramsWithLookup.java
samples/componentinjection/anagram-modular/src-app-serviceloader/org/apidesign/anagram/app/serviceloader/AnagramsWithServiceLoader.java
samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java
     1.1 --- a/samples/componentinjection/anagram-modular/build.xml	Sat Jun 14 10:08:35 2008 +0200
     1.2 +++ b/samples/componentinjection/anagram-modular/build.xml	Sat Jun 14 10:08:42 2008 +0200
     1.3 @@ -47,10 +47,14 @@
     1.4              <param name="version" value="app-serviceloader"/>
     1.5              <param name="cp" value="build/api/classes:build/word-static/classes:build/scrambler-simple/classes:build/gui/classes"/>
     1.6          </antcall>
     1.7 +        <antcall target="-build-one">
     1.8 +            <param name="version" value="test"/>
     1.9 +            <param name="cp" value="build/api/classes:build/gui/classes:build/app-serviceloader/classes:build/app-lookup/classes:${junit.jar}:${nbjunit.jar}:${insane.jar}"/>
    1.10 +        </antcall>
    1.11          
    1.12      </target>
    1.13      
    1.14 -    <target name="test" depends="build">
    1.15 +    <target name="run" depends="build">
    1.16          <echo level="info" message="Running registerXYZ version"/>
    1.17          <antcall target="-run-one">
    1.18              <param name="version" value="app-register"/>
    1.19 @@ -89,17 +93,27 @@
    1.20          </antcall>
    1.21          <antcall target="-run-one">
    1.22              <param name="version" value="app-serviceloader"/>
    1.23 -            <param name="cp" value="build/api/classes:build/word-static/classes:build/scrambler-simple/classes:build/gui/classes"/>
    1.24 +            <param name="cp" value="build/api/classes:build/word-static/classes:build/scrambler-simple/classes:build/gui/classes:${junit.jar}:${nbjunit.jar}:${insane.jar}"/>
    1.25              <param name="main" value="org.apidesign.anagram.app.serviceloader.Main"/>
    1.26          </antcall>
    1.27      </target>
    1.28 -    
    1.29 +
    1.30 +    <target name="test" depends="build">
    1.31 +        <echo level="info" message="Testing using MockServices"/>
    1.32 +        <antcall target="-test-one">
    1.33 +            <param name="version" value="app-test"/>
    1.34 +            <param name="cp" value="build/api/classes:build/gui/classes:build/app-serviceloader/classes:build/app-lookup/classes:${junit.jar}:${nbjunit.jar}:${insane.jar}:../../libs/dist/org-openide-util.jar"/>
    1.35 +        </antcall>
    1.36 +    </target>
    1.37 +        
    1.38      <!-- support methods -->
    1.39      
    1.40      <target name="-libraries">
    1.41          <ant dir="../../libs/"/>
    1.42          
    1.43          <property name="junit.jar" location="../../libs/dist/junit-4.4.jar"/>
    1.44 +        <property name="nbjunit.jar" location="../../libs/dist/org-netbeans-modules-nbjunit.jar"/>
    1.45 +        <property name="insane.jar" location="../../libs/dist/org-netbeans-insane.jar"/>
    1.46      </target>
    1.47  
    1.48      <target name="-run-one">
    1.49 @@ -126,4 +140,22 @@
    1.50              </fileset>
    1.51          </copy>
    1.52      </target>
    1.53 +    <target name="-test-one">
    1.54 +        <fail message="You need to specify API version number" unless="version"/>
    1.55 +        <mkdir dir="build/testresults"/>
    1.56 +        <junit dir="build/test/classes" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
    1.57 +            <batchtest todir="build/testresults">
    1.58 +                <fileset dir="build/test/classes">
    1.59 +                    <filename name="**/*Test.class"/>
    1.60 +                </fileset>
    1.61 +            </batchtest>
    1.62 +            <classpath>
    1.63 +                <path path="${cp}"/>
    1.64 +                <path location="build/test/classes"/>
    1.65 +                <path location="${junit.jar}"/>
    1.66 +            </classpath>
    1.67 +            <formatter type="brief" usefile="false"/>
    1.68 +            <formatter type="xml"/>
    1.69 +        </junit>
    1.70 +    </target>
    1.71  </project>
     2.1 --- a/samples/componentinjection/anagram-modular/nbproject/project.xml	Sat Jun 14 10:08:35 2008 +0200
     2.2 +++ b/samples/componentinjection/anagram-modular/nbproject/project.xml	Sat Jun 14 10:08:42 2008 +0200
     2.3 @@ -94,6 +94,9 @@
     2.4                  <action name="clean">
     2.5                      <target>clean</target>
     2.6                  </action>
     2.7 +                <action name="run">
     2.8 +                    <target>run</target>
     2.9 +                </action>
    2.10                  <action name="test">
    2.11                      <target>test</target>
    2.12                  </action>
    2.13 @@ -226,6 +229,7 @@
    2.14                      <ide-action name="build"/>
    2.15                      <ide-action name="rebuild"/>
    2.16                      <ide-action name="clean"/>
    2.17 +                    <ide-action name="run"/>
    2.18                      <ide-action name="test"/>
    2.19                      <ide-action name="debug"/>
    2.20                  </context-menu>
    2.21 @@ -300,7 +304,7 @@
    2.22              </compilation-unit>
    2.23              <compilation-unit>
    2.24                  <package-root>src-test</package-root>
    2.25 -                <classpath mode="compile">src-new-api:../libs/dist/junit-4.4.jar</classpath>
    2.26 +                <classpath mode="compile">src-api:../../libs/dist/junit-4.4.jar::../../libs/dist/org-netbeans-modules-nbjunit.jar:../../libs/dist/org-netbeans-insane.jar:src-gui:../../libs/dist/org-openide-util.jar:src-app-lookup:src-app-serviceloader</classpath>
    2.27                  <source-level>1.5</source-level>
    2.28              </compilation-unit>
    2.29          </java-data>
     3.1 --- a/samples/componentinjection/anagram-modular/src-app-lookup/org/apidesign/anagram/app/lookup/AnagramsWithLookup.java	Sat Jun 14 10:08:35 2008 +0200
     3.2 +++ b/samples/componentinjection/anagram-modular/src-app-lookup/org/apidesign/anagram/app/lookup/AnagramsWithLookup.java	Sat Jun 14 10:08:42 2008 +0200
     3.3 @@ -6,6 +6,8 @@
     3.4  import org.openide.util.Lookup;
     3.5  
     3.6  // BEGIN: anagram.lookup.Anagrams
     3.7 +import org.openide.util.LookupEvent;
     3.8 +import org.openide.util.LookupListener;
     3.9  class AnagramsWithLookup extends Anagrams {
    3.10  
    3.11      public AnagramsWithLookup() {
    3.12 @@ -20,6 +22,24 @@
    3.13      protected Scrambler getScrambler() {
    3.14          return Lookup.getDefault().lookup(Scrambler.class);
    3.15      }
    3.16 -
    3.17 +// FINISH: anagram.lookup.Anagrams
    3.18 +    
    3.19 +    private Lookup.Result<Scrambler> scramblers = Lookup.getDefault().lookupResult(Scrambler.class);
    3.20 +// BEGIN: anagram.lookup.Listeners      
    3.21 +    private Lookup.Result<WordLibrary> libraries 
    3.22 +        = Lookup.getDefault().lookupResult(WordLibrary.class);
    3.23 +    private LookupListener listener = new LookupListener() {
    3.24 +        public void resultChanged(LookupEvent ev) {
    3.25 +            initWord();
    3.26 +        }
    3.27 +    };
    3.28 +    {
    3.29 +        libraries.addLookupListener(listener);
    3.30 +// FINISH: anagram.lookup.Listeners      
    3.31 +        
    3.32 +        scramblers.addLookupListener(listener);
    3.33 +        // initialize the results for listening
    3.34 +        libraries.allItems();
    3.35 +        scramblers.allItems();
    3.36 +    }
    3.37  }
    3.38 -// END: anagram.lookup.Anagrams
     4.1 --- a/samples/componentinjection/anagram-modular/src-app-serviceloader/org/apidesign/anagram/app/serviceloader/AnagramsWithServiceLoader.java	Sat Jun 14 10:08:35 2008 +0200
     4.2 +++ b/samples/componentinjection/anagram-modular/src-app-serviceloader/org/apidesign/anagram/app/serviceloader/AnagramsWithServiceLoader.java	Sat Jun 14 10:08:42 2008 +0200
     4.3 @@ -1,5 +1,6 @@
     4.4  package org.apidesign.anagram.app.serviceloader;
     4.5  
     4.6 +import java.util.Iterator;
     4.7  import org.apidesign.anagram.api.Scrambler;
     4.8  import org.apidesign.anagram.api.WordLibrary;
     4.9  import org.apidesign.anagram.gui.Anagrams;
    4.10 @@ -13,12 +14,14 @@
    4.11  
    4.12      @Override
    4.13      protected WordLibrary getWordLibrary() {
    4.14 -        return ServiceLoader.load(WordLibrary.class).iterator().next();
    4.15 +        Iterator<WordLibrary> it = ServiceLoader.load(WordLibrary.class).iterator();
    4.16 +        return it.hasNext() ? it.next() : null;
    4.17      }
    4.18  
    4.19      @Override
    4.20      protected Scrambler getScrambler() {
    4.21 -        return ServiceLoader.load(Scrambler.class).iterator().next();
    4.22 +        Iterator<Scrambler> it = ServiceLoader.load(Scrambler.class).iterator();
    4.23 +        return it.hasNext() ? it.next() : null;
    4.24      }
    4.25  
    4.26  }
     5.1 --- a/samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java	Sat Jun 14 10:08:35 2008 +0200
     5.2 +++ b/samples/componentinjection/anagram-modular/src-gui/org/apidesign/anagram/gui/Anagrams.java	Sat Jun 14 10:08:42 2008 +0200
     5.3 @@ -28,6 +28,7 @@
     5.4      protected abstract Scrambler getScrambler();
     5.5      
     5.6      public void display() {
     5.7 +        initWord();
     5.8          setVisible(true);
     5.9      }
    5.10  // FINISH: anagram.ui.Anagrams
    5.11 @@ -35,10 +36,12 @@
    5.12      String original;
    5.13      String scrambled;
    5.14      
    5.15 -    @Override
    5.16 -    public void addNotify() {
    5.17 -        super.addNotify();
    5.18 -        initWord();
    5.19 +    public final String getOriginalWord() {
    5.20 +        return original;
    5.21 +    }
    5.22 +    
    5.23 +    public final String getScrambledWord() {
    5.24 +        return scrambled;
    5.25      }
    5.26      
    5.27      /** This method is called from within the constructor to
    5.28 @@ -190,13 +193,14 @@
    5.29          guessedWord.requestFocus();
    5.30      }//GEN-LAST:event_nextTrialActionPerformed
    5.31  
    5.32 -    private void initWord() {
    5.33 +    protected final void initWord() {
    5.34          
    5.35          String[] words = getWordLibrary().getWords();
    5.36          int index = wordIdx % words.length;
    5.37          
    5.38          original = words[index];
    5.39 -        scrambled = getScrambler().scramble(original);
    5.40 +        Scrambler scrambler = getScrambler();
    5.41 +        scrambled = scrambler != null ? scrambler.scramble(original) : original;
    5.42          
    5.43          scrambledWord.setText(scrambled);
    5.44      }