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
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