Anagrams game with Main.xml config file that defines the autoload and a test to show that if simplescrambler and staticwordlibrary are on classpath, everything succeeds
authorJaroslav Tulach <jtulach@netbeans.org>
Mon, 27 Apr 2009 10:03:54 +0200
changeset 5795092d8fdef3d
parent 578 94aba25fa5a2
child 580 4aa66a640a84
Anagrams game with Main.xml config file that defines the autoload and a test to show that if simplescrambler and staticwordlibrary are on classpath, everything succeeds
anagramdemo/anagrambase/pom.xml
anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Anagrams.java
anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Main.java
anagramdemo/anagrambase/src/main/resources/org/apidesign/demo/anagramwithspringandlookup/Main.xml
anagramdemo/anagrambase/src/test/java/org/apidesign/demo/anagramwithspringandlookup/MainTest.java
     1.1 --- a/anagramdemo/anagrambase/pom.xml	Mon Apr 27 09:59:51 2009 +0200
     1.2 +++ b/anagramdemo/anagrambase/pom.xml	Mon Apr 27 10:03:54 2009 +0200
     1.3 @@ -80,6 +80,18 @@
     1.4              <artifactId>spring-lookup</artifactId>
     1.5              <version>1.2</version>
     1.6          </dependency>
     1.7 +        <dependency>
     1.8 +            <groupId>org.apidesign</groupId>
     1.9 +            <artifactId>anagramdemowordlibrary</artifactId>
    1.10 +            <version>1.0</version>
    1.11 +            <scope>test</scope>
    1.12 +        </dependency>
    1.13 +        <dependency>
    1.14 +            <groupId>org.apidesign</groupId>
    1.15 +            <artifactId>simplescrambler</artifactId>
    1.16 +            <version>1.0</version>
    1.17 +            <scope>test</scope>
    1.18 +        </dependency>
    1.19      </dependencies>
    1.20      <name>Anagram Game with Spring and Lookup</name>
    1.21      <description>This project provides an example of combination
     2.1 --- a/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Anagrams.java	Mon Apr 27 09:59:51 2009 +0200
     2.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Anagrams.java	Mon Apr 27 10:03:54 2009 +0200
     2.3 @@ -1,18 +1,18 @@
     2.4  package org.apidesign.demo.anagramwithspringandlookup;
     2.5  
     2.6 -import org.springframework.beans.factory.annotation.Autowired;
     2.7 -
     2.8  /** 
     2.9   */
    2.10 +// BEGIN: anagramdemo.springlookup.Anagrams
    2.11  public class Anagrams extends javax.swing.JFrame implements UI {
    2.12      private WordLibrary wordLibrary;
    2.13      private Scrambler scrambler;
    2.14  
    2.15 -    @Autowired
    2.16      public Anagrams(WordLibrary w, Scrambler s) {
    2.17          wordLibrary = w;
    2.18          scrambler = s;
    2.19 +        init();
    2.20      }
    2.21 +// FINISH: anagramdemo.springlookup.Anagrams
    2.22      
    2.23      private WordLibrary getWordLibrary() {
    2.24          return wordLibrary;
    2.25 @@ -29,7 +29,7 @@
    2.26      String original;
    2.27      String scrambled;
    2.28      
    2.29 -    public Anagrams() {
    2.30 +    private void init() {
    2.31          initComponents();        
    2.32          getRootPane().setDefaultButton(guessButton);
    2.33          
    2.34 @@ -202,8 +202,8 @@
    2.35          int index = wordIdx % words.length;
    2.36          
    2.37          original = words[index];
    2.38 -        Scrambler scrambler = getScrambler();
    2.39 -        scrambled = scrambler != null ? scrambler.scramble(original) : original;
    2.40 +        Scrambler tmp = getScrambler();
    2.41 +        scrambled = tmp != null ? tmp.scramble(original) : original;
    2.42          
    2.43          scrambledWord.setText(scrambled);
    2.44      }
     3.1 --- a/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Main.java	Mon Apr 27 09:59:51 2009 +0200
     3.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Main.java	Mon Apr 27 10:03:54 2009 +0200
     3.3 @@ -3,16 +3,19 @@
     3.4  import org.apidesign.spring.SpringAndLookup;
     3.5  import org.openide.util.Lookup;
     3.6  import org.springframework.context.ApplicationContext;
     3.7 -import org.springframework.context.support.StaticApplicationContext;
     3.8 +import org.springframework.context.support.ClassPathXmlApplicationContext;
     3.9  
    3.10  public final class Main {
    3.11      private Main() { }
    3.12  
    3.13      public static void main(String[] args) throws Exception {
    3.14 -        ApplicationContext context = SpringAndLookup.create(Lookup.getDefault(), "global");
    3.15 -        StaticApplicationContext c = new StaticApplicationContext(context);
    3.16 -        c.registerPrototype("ui", Anagrams.class);
    3.17 -        UI ui = (UI)context.getBean("ui", UI.class);
    3.18 +        ApplicationContext servicesContext = SpringAndLookup.create(Lookup.getDefault(), "global");
    3.19 +        ClassPathXmlApplicationContext mergedContext = new ClassPathXmlApplicationContext(
    3.20 +            new String[] { "Main.xml" },
    3.21 +            Main.class,
    3.22 +            servicesContext
    3.23 +        );
    3.24 +        UI ui = (UI)mergedContext.getBean("ui", UI.class);
    3.25          ui.display();
    3.26      }
    3.27  }
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/anagramdemo/anagrambase/src/main/resources/org/apidesign/demo/anagramwithspringandlookup/Main.xml	Mon Apr 27 10:03:54 2009 +0200
     4.3 @@ -0,0 +1,17 @@
     4.4 +<?xml version="1.0" encoding="UTF-8"?>
     4.5 +<beans xmlns="http://www.springframework.org/schema/beans"
     4.6 +       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4.7 +       xmlns:context="http://www.springframework.org/schema/context"
     4.8 +       xmlns:lang="http://www.springframework.org/schema/lang"
     4.9 +       xmlns:util="http://www.springframework.org/schema/util"
    4.10 +       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    4.11 +       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
    4.12 +       http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd
    4.13 +       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
    4.14 +
    4.15 +    <bean
    4.16 +        id="ui"
    4.17 +        class="org.apidesign.demo.anagramwithspringandlookup.Anagrams"
    4.18 +        autowire="autodetect"
    4.19 +    />
    4.20 +</beans>
    4.21 \ No newline at end of file
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/anagramdemo/anagrambase/src/test/java/org/apidesign/demo/anagramwithspringandlookup/MainTest.java	Mon Apr 27 10:03:54 2009 +0200
     5.3 @@ -0,0 +1,22 @@
     5.4 +/*
     5.5 + * To change this template, choose Tools | Templates
     5.6 + * and open the template in the editor.
     5.7 + */
     5.8 +
     5.9 +package org.apidesign.demo.anagramwithspringandlookup;
    5.10 +
    5.11 +import org.junit.Test;
    5.12 +
    5.13 +/**
    5.14 + *
    5.15 + * @author Jaroslav Tulach <jtulach@netbeans.org>
    5.16 + */
    5.17 +public class MainTest {
    5.18 +
    5.19 +    public MainTest() {
    5.20 +    }
    5.21 +
    5.22 +    @Test public void makeSureTheWiringsArePossibleAndMainSucceeds() throws Exception {
    5.23 +        Main.main(null);
    5.24 +    }
    5.25 +}
    5.26 \ No newline at end of file