1.1 --- a/.hgignore Sun Apr 26 13:49:06 2009 +0200
1.2 +++ b/.hgignore Sun Apr 26 21:18:14 2009 +0200
1.3 @@ -1,4 +1,4 @@
1.4 -lookup/target/.*
1.5 +.*/target/.*
1.6 .*~
1.7
1.8 .*\.orig$
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/anagramdemo/anagrambase/pom.xml Sun Apr 26 21:18:14 2009 +0200
2.3 @@ -0,0 +1,89 @@
2.4 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2.5 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2.6 + <modelVersion>4.0.0</modelVersion>
2.7 + <groupId>org.apidesign</groupId>
2.8 + <packaging>jar</packaging>
2.9 + <version>1.0</version>
2.10 + <url>http://maven.apache.org</url>
2.11 + <repositories>
2.12 + <repository>
2.13 + <id>netbeans</id>
2.14 + <url>http://bits.netbeans.org/maven2/</url>
2.15 + </repository>
2.16 + </repositories>
2.17 + <build>
2.18 + <plugins>
2.19 + <plugin>
2.20 + <groupId>org.apache.maven.plugins</groupId>
2.21 + <artifactId>maven-compiler-plugin</artifactId>
2.22 + <version>2.0.2</version>
2.23 + <configuration>
2.24 + <source>1.5</source>
2.25 + <target>1.5</target>
2.26 + </configuration>
2.27 + </plugin>
2.28 + <plugin>
2.29 + <groupId>org.apache.maven.plugins</groupId>
2.30 + <artifactId>maven-surefire-plugin</artifactId>
2.31 + <version>2.4.2</version>
2.32 + <configuration>
2.33 + <includes>
2.34 + <include>**/*Test.java</include>
2.35 + </includes>
2.36 + </configuration>
2.37 + </plugin>
2.38 + <plugin>
2.39 + <groupId>org.apache.maven.plugins</groupId>
2.40 + <artifactId>maven-javadoc-plugin</artifactId>
2.41 + <version>2.5</version>
2.42 + <configuration>
2.43 + <excludePackageNames>org.netbeans.modules.spring.lookup</excludePackageNames>
2.44 + </configuration>
2.45 + </plugin>
2.46 + </plugins>
2.47 + </build>
2.48 + <dependencies>
2.49 + <dependency>
2.50 + <groupId>org.apidesign</groupId>
2.51 + <artifactId>lookup</artifactId>
2.52 + <version>7.22.0</version>
2.53 + </dependency>
2.54 + <dependency>
2.55 + <groupId>org.netbeans.api</groupId>
2.56 + <artifactId>org-netbeans-modules-nbjunit</artifactId>
2.57 + <version>RELEASE65</version>
2.58 + <scope>test</scope>
2.59 + </dependency>
2.60 + <dependency>
2.61 + <groupId>org.netbeans.modules</groupId>
2.62 + <artifactId>org-netbeans-insane</artifactId>
2.63 + <version>RELEASE65</version>
2.64 + <scope>test</scope>
2.65 + </dependency>
2.66 + <dependency>
2.67 + <groupId>org.springframework</groupId>
2.68 + <artifactId>spring-core</artifactId>
2.69 + <version>2.5.6</version>
2.70 + </dependency>
2.71 + <dependency>
2.72 + <groupId>org.springframework</groupId>
2.73 + <artifactId>spring-beans</artifactId>
2.74 + <version>2.5.6</version>
2.75 + </dependency>
2.76 + <dependency>
2.77 + <groupId>org.springframework</groupId>
2.78 + <artifactId>spring-context</artifactId>
2.79 + <version>2.5.6</version>
2.80 + </dependency>
2.81 + <dependency>
2.82 + <groupId>org.apidesign</groupId>
2.83 + <artifactId>spring-lookup</artifactId>
2.84 + <version>1.2</version>
2.85 + </dependency>
2.86 + </dependencies>
2.87 + <name>Anagram Game with Spring and Lookup</name>
2.88 + <description>This project provides an example of combination
2.89 +of the Spring's dependency injection and Lookup
2.90 +META-INF/services registration.</description>
2.91 + <artifactId>anagram-spring-lookup</artifactId>
2.92 +</project>
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/About.form Sun Apr 26 21:18:14 2009 +0200
3.3 @@ -0,0 +1,78 @@
3.4 +<?xml version="1.0" encoding="UTF-8" ?>
3.5 +
3.6 +<Form version="1.2" maxVersion="1.2" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
3.7 + <Properties>
3.8 + <Property name="defaultCloseOperation" type="int" value="2"/>
3.9 + <Property name="title" type="java.lang.String" value="About Anagrams"/>
3.10 + </Properties>
3.11 + <SyntheticProperties>
3.12 + <SyntheticProperty name="formSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-25,0,0,1,53"/>
3.13 + <SyntheticProperty name="formSizePolicy" type="int" value="0"/>
3.14 + <SyntheticProperty name="generateSize" type="boolean" value="true"/>
3.15 + <SyntheticProperty name="generateCenter" type="boolean" value="true"/>
3.16 + </SyntheticProperties>
3.17 + <Events>
3.18 + <EventHandler event="windowClosing" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="exitForm"/>
3.19 + </Events>
3.20 + <AuxValues>
3.21 + <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
3.22 + <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
3.23 + <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
3.24 + <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
3.25 + <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
3.26 + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
3.27 + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
3.28 + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
3.29 + </AuxValues>
3.30 +
3.31 + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
3.32 + <SubComponents>
3.33 + <Container class="javax.swing.JPanel" name="jPanel1">
3.34 + <Properties>
3.35 + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
3.36 + <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
3.37 + <EmptyBorder bottom="12" left="11" right="12" top="11"/>
3.38 + </Border>
3.39 + </Property>
3.40 + </Properties>
3.41 + <Constraints>
3.42 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
3.43 + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="1.0"/>
3.44 + </Constraint>
3.45 + </Constraints>
3.46 +
3.47 + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
3.48 + <SubComponents>
3.49 + <Component class="javax.swing.JTextArea" name="jTextArea1">
3.50 + <Properties>
3.51 + <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
3.52 + <Color blue="cc" green="cc" id="Panel.background" palette="3" red="cc" type="palette"/>
3.53 + </Property>
3.54 + <Property name="editable" type="boolean" value="false"/>
3.55 + <Property name="lineWrap" type="boolean" value="true"/>
3.56 + <Property name="text" type="java.lang.String" value="Anagrams

Copyright (c) 2003 Irritable Enterprises, Inc."/>
3.57 + <Property name="wrapStyleWord" type="boolean" value="true"/>
3.58 + </Properties>
3.59 + <Constraints>
3.60 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
3.61 + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="12" insetsRight="0" anchor="10" weightX="1.0" weightY="1.0"/>
3.62 + </Constraint>
3.63 + </Constraints>
3.64 + </Component>
3.65 + <Component class="javax.swing.JButton" name="jButton1">
3.66 + <Properties>
3.67 + <Property name="text" type="java.lang.String" value="Close"/>
3.68 + </Properties>
3.69 + <Events>
3.70 + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
3.71 + </Events>
3.72 + <Constraints>
3.73 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
3.74 + <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
3.75 + </Constraint>
3.76 + </Constraints>
3.77 + </Component>
3.78 + </SubComponents>
3.79 + </Container>
3.80 + </SubComponents>
3.81 +</Form>
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/About.java Sun Apr 26 21:18:14 2009 +0200
4.3 @@ -0,0 +1,87 @@
4.4 +package org.apidesign.demo.anagramwithspringandlookup;
4.5 +
4.6 +/**
4.7 + *
4.8 + * @author Dirk Ruiz
4.9 + */
4.10 +public class About extends javax.swing.JFrame {
4.11 +
4.12 + /** Creates new form About */
4.13 + public About() {
4.14 + initComponents();
4.15 + }
4.16 +
4.17 + /** This method is called from within the constructor to
4.18 + * initialize the form.
4.19 + * WARNING: Do NOT modify this code. The content of this method is
4.20 + * always regenerated by the Form Editor.
4.21 + */
4.22 + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
4.23 + private void initComponents() {
4.24 + java.awt.GridBagConstraints gridBagConstraints;
4.25 +
4.26 + jPanel1 = new javax.swing.JPanel();
4.27 + jTextArea1 = new javax.swing.JTextArea();
4.28 + jButton1 = new javax.swing.JButton();
4.29 +
4.30 + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
4.31 + setTitle("About Anagrams");
4.32 + addWindowListener(new java.awt.event.WindowAdapter() {
4.33 + public void windowClosing(java.awt.event.WindowEvent evt) {
4.34 + exitForm(evt);
4.35 + }
4.36 + });
4.37 + getContentPane().setLayout(new java.awt.GridBagLayout());
4.38 +
4.39 + jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(11, 11, 12, 12));
4.40 + jPanel1.setLayout(new java.awt.GridBagLayout());
4.41 +
4.42 + jTextArea1.setBackground(javax.swing.UIManager.getDefaults().getColor("Panel.background"));
4.43 + jTextArea1.setEditable(false);
4.44 + jTextArea1.setLineWrap(true);
4.45 + jTextArea1.setText("Anagrams\n\nCopyright (c) 2003 Irritable Enterprises, Inc.");
4.46 + jTextArea1.setWrapStyleWord(true);
4.47 + gridBagConstraints = new java.awt.GridBagConstraints();
4.48 + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
4.49 + gridBagConstraints.weightx = 1.0;
4.50 + gridBagConstraints.weighty = 1.0;
4.51 + gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 0);
4.52 + jPanel1.add(jTextArea1, gridBagConstraints);
4.53 +
4.54 + jButton1.setText("Close");
4.55 + jButton1.addActionListener(new java.awt.event.ActionListener() {
4.56 + public void actionPerformed(java.awt.event.ActionEvent evt) {
4.57 + jButton1ActionPerformed(evt);
4.58 + }
4.59 + });
4.60 + gridBagConstraints = new java.awt.GridBagConstraints();
4.61 + gridBagConstraints.gridx = 0;
4.62 + gridBagConstraints.gridy = 1;
4.63 + jPanel1.add(jButton1, gridBagConstraints);
4.64 +
4.65 + gridBagConstraints = new java.awt.GridBagConstraints();
4.66 + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
4.67 + gridBagConstraints.weightx = 1.0;
4.68 + gridBagConstraints.weighty = 1.0;
4.69 + getContentPane().add(jPanel1, gridBagConstraints);
4.70 +
4.71 + java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
4.72 + setBounds((screenSize.width-309)/2, (screenSize.height-231)/2, 309, 231);
4.73 + }// </editor-fold>//GEN-END:initComponents
4.74 +
4.75 + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
4.76 + this.hide();
4.77 + }//GEN-LAST:event_jButton1ActionPerformed
4.78 +
4.79 + /** Exit the Application */
4.80 + private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
4.81 + //System.exit(0);
4.82 + }//GEN-LAST:event_exitForm
4.83 +
4.84 + // Variables declaration - do not modify//GEN-BEGIN:variables
4.85 + private javax.swing.JButton jButton1;
4.86 + private javax.swing.JPanel jPanel1;
4.87 + private javax.swing.JTextArea jTextArea1;
4.88 + // End of variables declaration//GEN-END:variables
4.89 +
4.90 +}
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Anagrams.form Sun Apr 26 21:18:14 2009 +0200
5.3 @@ -0,0 +1,163 @@
5.4 +<?xml version="1.0" encoding="UTF-8" ?>
5.5 +
5.6 +<Form version="1.2" maxVersion="1.2" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
5.7 + <NonVisualComponents>
5.8 + <Menu class="javax.swing.JMenuBar" name="mainMenu">
5.9 + <SubComponents>
5.10 + <Menu class="javax.swing.JMenu" name="File">
5.11 + <Properties>
5.12 + <Property name="text" type="java.lang.String" value="File"/>
5.13 + </Properties>
5.14 + <SubComponents>
5.15 + <MenuItem class="javax.swing.JMenuItem" name="jMenuItem1">
5.16 + <Properties>
5.17 + <Property name="text" type="java.lang.String" value="About"/>
5.18 + <Property name="toolTipText" type="java.lang.String" value="About"/>
5.19 + </Properties>
5.20 + <Events>
5.21 + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItem1ActionPerformed"/>
5.22 + </Events>
5.23 + </MenuItem>
5.24 + <MenuItem class="javax.swing.JMenuItem" name="jMenuItem2">
5.25 + <Properties>
5.26 + <Property name="text" type="java.lang.String" value="Exit"/>
5.27 + <Property name="toolTipText" type="java.lang.String" value="Quit Team, Quit!"/>
5.28 + </Properties>
5.29 + <Events>
5.30 + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItem2ActionPerformed"/>
5.31 + </Events>
5.32 + </MenuItem>
5.33 + </SubComponents>
5.34 + </Menu>
5.35 + </SubComponents>
5.36 + </Menu>
5.37 + </NonVisualComponents>
5.38 + <Properties>
5.39 + <Property name="title" type="java.lang.String" value="Anagrams"/>
5.40 + </Properties>
5.41 + <SyntheticProperties>
5.42 + <SyntheticProperty name="menuBar" type="java.lang.String" value="mainMenu"/>
5.43 + <SyntheticProperty name="formSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-6,0,0,1,-112"/>
5.44 + <SyntheticProperty name="formSizePolicy" type="int" value="0"/>
5.45 + <SyntheticProperty name="generateSize" type="boolean" value="true"/>
5.46 + <SyntheticProperty name="generateCenter" type="boolean" value="true"/>
5.47 + </SyntheticProperties>
5.48 + <Events>
5.49 + <EventHandler event="windowClosing" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="exitForm"/>
5.50 + </Events>
5.51 + <AuxValues>
5.52 + <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
5.53 + <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
5.54 + <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
5.55 + <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
5.56 + <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
5.57 + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
5.58 + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
5.59 + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
5.60 + </AuxValues>
5.61 +
5.62 + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
5.63 + <SubComponents>
5.64 + <Container class="javax.swing.JPanel" name="mainPanel">
5.65 + <Properties>
5.66 + <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
5.67 + <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
5.68 + <EmptyBorder bottom="12" left="11" right="12" top="11"/>
5.69 + </Border>
5.70 + </Property>
5.71 + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
5.72 + <Dimension value="[297, 200]"/>
5.73 + </Property>
5.74 + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
5.75 + <Dimension value="[297, 200]"/>
5.76 + </Property>
5.77 + </Properties>
5.78 + <Constraints>
5.79 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
5.80 + <BorderConstraints direction="Center"/>
5.81 + </Constraint>
5.82 + </Constraints>
5.83 +
5.84 + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
5.85 + <SubComponents>
5.86 + <Component class="javax.swing.JLabel" name="scrambledLabel">
5.87 + <Properties>
5.88 + <Property name="text" type="java.lang.String" value="Scrambled Word:"/>
5.89 + </Properties>
5.90 + <Constraints>
5.91 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
5.92 + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="12" insetsLeft="12" insetsBottom="12" insetsRight="6" anchor="17" weightX="0.0" weightY="0.0"/>
5.93 + </Constraint>
5.94 + </Constraints>
5.95 + </Component>
5.96 + <Component class="javax.swing.JLabel" name="guessLabel">
5.97 + <Properties>
5.98 + <Property name="text" type="java.lang.String" value="Your Guess:"/>
5.99 + </Properties>
5.100 + <Constraints>
5.101 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
5.102 + <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="12" insetsBottom="12" insetsRight="6" anchor="17" weightX="0.0" weightY="0.0"/>
5.103 + </Constraint>
5.104 + </Constraints>
5.105 + </Component>
5.106 + <Component class="javax.swing.JLabel" name="feedbackLabel">
5.107 + <Properties>
5.108 + <Property name="text" type="java.lang.String" value=" "/>
5.109 + </Properties>
5.110 + <Constraints>
5.111 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
5.112 + <GridBagConstraints gridX="1" gridY="2" gridWidth="2" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="6" insetsRight="6" anchor="10" weightX="1.0" weightY="0.0"/>
5.113 + </Constraint>
5.114 + </Constraints>
5.115 + </Component>
5.116 + <Component class="javax.swing.JButton" name="guessButton">
5.117 + <Properties>
5.118 + <Property name="mnemonic" type="int" value="71"/>
5.119 + <Property name="text" type="java.lang.String" value="Guess"/>
5.120 + <Property name="toolTipText" type="java.lang.String" value="Guess the scrambled word."/>
5.121 + </Properties>
5.122 + <Events>
5.123 + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="guessedWordActionPerformed"/>
5.124 + </Events>
5.125 + <Constraints>
5.126 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
5.127 + <GridBagConstraints gridX="2" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="11" insetsRight="6" anchor="13" weightX="0.0" weightY="0.0"/>
5.128 + </Constraint>
5.129 + </Constraints>
5.130 + </Component>
5.131 + <Component class="javax.swing.JTextField" name="scrambledWord">
5.132 + <Properties>
5.133 + <Property name="editable" type="boolean" value="false"/>
5.134 + </Properties>
5.135 + <Constraints>
5.136 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
5.137 + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="12" insetsLeft="0" insetsBottom="12" insetsRight="11" anchor="10" weightX="1.0" weightY="0.0"/>
5.138 + </Constraint>
5.139 + </Constraints>
5.140 + </Component>
5.141 + <Component class="javax.swing.JTextField" name="guessedWord">
5.142 + <Constraints>
5.143 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
5.144 + <GridBagConstraints gridX="1" gridY="1" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="12" insetsRight="11" anchor="10" weightX="1.0" weightY="0.0"/>
5.145 + </Constraint>
5.146 + </Constraints>
5.147 + </Component>
5.148 + <Component class="javax.swing.JButton" name="nextTrial">
5.149 + <Properties>
5.150 + <Property name="mnemonic" type="int" value="78"/>
5.151 + <Property name="text" type="java.lang.String" value="New Word"/>
5.152 + <Property name="toolTipText" type="java.lang.String" value="Fetch a new word."/>
5.153 + </Properties>
5.154 + <Events>
5.155 + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="nextTrialActionPerformed"/>
5.156 + </Events>
5.157 + <Constraints>
5.158 + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
5.159 + <GridBagConstraints gridX="3" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="11" insetsRight="11" anchor="10" weightX="0.0" weightY="0.0"/>
5.160 + </Constraint>
5.161 + </Constraints>
5.162 + </Component>
5.163 + </SubComponents>
5.164 + </Container>
5.165 + </SubComponents>
5.166 +</Form>
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Anagrams.java Sun Apr 26 21:18:14 2009 +0200
6.3 @@ -0,0 +1,260 @@
6.4 +package org.apidesign.demo.anagramwithspringandlookup;
6.5 +
6.6 +import org.springframework.beans.factory.annotation.Autowired;
6.7 +
6.8 +/**
6.9 + */
6.10 +public class Anagrams extends javax.swing.JFrame implements UI {
6.11 + private WordLibrary wordLibrary;
6.12 + private Scrambler scrambler;
6.13 +
6.14 + @Autowired
6.15 + public Anagrams(WordLibrary w, Scrambler s) {
6.16 + wordLibrary = w;
6.17 + scrambler = s;
6.18 + }
6.19 +
6.20 + private WordLibrary getWordLibrary() {
6.21 + return wordLibrary;
6.22 + }
6.23 + private Scrambler getScrambler() {
6.24 + return scrambler;
6.25 + }
6.26 +
6.27 + public void display() {
6.28 + initWord();
6.29 + setVisible(true);
6.30 + }
6.31 + int wordIdx = 0;
6.32 + String original;
6.33 + String scrambled;
6.34 +
6.35 + public Anagrams() {
6.36 + initComponents();
6.37 + getRootPane().setDefaultButton(guessButton);
6.38 +
6.39 + String version = System.getProperty("anagram.version");
6.40 + if (version != null) {
6.41 + if (version.startsWith("app-")) {
6.42 + version = version.substring(4);
6.43 + }
6.44 + setTitle("Anagrams - " + version + " version");
6.45 + }
6.46 + }
6.47 +
6.48 + public final String getOriginalWord() {
6.49 + return original;
6.50 + }
6.51 +
6.52 + public final String getScrambledWord() {
6.53 + return scrambled;
6.54 + }
6.55 +
6.56 + /** This method is called from within the constructor to
6.57 + * initialize the form.
6.58 + * WARNING: Do NOT modify this code. The content of this method is
6.59 + * always regenerated by the Form Editor.
6.60 + */
6.61 + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
6.62 + private void initComponents() {
6.63 + java.awt.GridBagConstraints gridBagConstraints;
6.64 +
6.65 + mainPanel = new javax.swing.JPanel();
6.66 + scrambledLabel = new javax.swing.JLabel();
6.67 + guessLabel = new javax.swing.JLabel();
6.68 + feedbackLabel = new javax.swing.JLabel();
6.69 + guessButton = new javax.swing.JButton();
6.70 + scrambledWord = new javax.swing.JTextField();
6.71 + guessedWord = new javax.swing.JTextField();
6.72 + nextTrial = new javax.swing.JButton();
6.73 + mainMenu = new javax.swing.JMenuBar();
6.74 + File = new javax.swing.JMenu();
6.75 + jMenuItem1 = new javax.swing.JMenuItem();
6.76 + jMenuItem2 = new javax.swing.JMenuItem();
6.77 +
6.78 + setTitle("Anagrams");
6.79 + addWindowListener(new java.awt.event.WindowAdapter() {
6.80 + public void windowClosing(java.awt.event.WindowEvent evt) {
6.81 + exitForm(evt);
6.82 + }
6.83 + });
6.84 +
6.85 + mainPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(11, 11, 12, 12));
6.86 + mainPanel.setMinimumSize(new java.awt.Dimension(297, 200));
6.87 + mainPanel.setPreferredSize(new java.awt.Dimension(297, 200));
6.88 + mainPanel.setLayout(new java.awt.GridBagLayout());
6.89 +
6.90 + scrambledLabel.setText("Scrambled Word:");
6.91 + gridBagConstraints = new java.awt.GridBagConstraints();
6.92 + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
6.93 + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
6.94 + gridBagConstraints.insets = new java.awt.Insets(12, 12, 12, 6);
6.95 + mainPanel.add(scrambledLabel, gridBagConstraints);
6.96 +
6.97 + guessLabel.setText("Your Guess:");
6.98 + gridBagConstraints = new java.awt.GridBagConstraints();
6.99 + gridBagConstraints.gridx = 0;
6.100 + gridBagConstraints.gridy = 1;
6.101 + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
6.102 + gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
6.103 + gridBagConstraints.insets = new java.awt.Insets(0, 12, 12, 6);
6.104 + mainPanel.add(guessLabel, gridBagConstraints);
6.105 +
6.106 + feedbackLabel.setText(" ");
6.107 + gridBagConstraints = new java.awt.GridBagConstraints();
6.108 + gridBagConstraints.gridx = 1;
6.109 + gridBagConstraints.gridy = 2;
6.110 + gridBagConstraints.gridwidth = 2;
6.111 + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
6.112 + gridBagConstraints.weightx = 1.0;
6.113 + gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 6);
6.114 + mainPanel.add(feedbackLabel, gridBagConstraints);
6.115 +
6.116 + guessButton.setMnemonic('G');
6.117 + guessButton.setText("Guess");
6.118 + guessButton.setToolTipText("Guess the scrambled word.");
6.119 + guessButton.addActionListener(new java.awt.event.ActionListener() {
6.120 + public void actionPerformed(java.awt.event.ActionEvent evt) {
6.121 + guessedWordActionPerformed(evt);
6.122 + }
6.123 + });
6.124 + gridBagConstraints = new java.awt.GridBagConstraints();
6.125 + gridBagConstraints.gridx = 2;
6.126 + gridBagConstraints.gridy = 3;
6.127 + gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
6.128 + gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 6);
6.129 + mainPanel.add(guessButton, gridBagConstraints);
6.130 +
6.131 + scrambledWord.setEditable(false);
6.132 + gridBagConstraints = new java.awt.GridBagConstraints();
6.133 + gridBagConstraints.gridwidth = 3;
6.134 + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
6.135 + gridBagConstraints.weightx = 1.0;
6.136 + gridBagConstraints.insets = new java.awt.Insets(12, 0, 12, 11);
6.137 + mainPanel.add(scrambledWord, gridBagConstraints);
6.138 + gridBagConstraints = new java.awt.GridBagConstraints();
6.139 + gridBagConstraints.gridx = 1;
6.140 + gridBagConstraints.gridy = 1;
6.141 + gridBagConstraints.gridwidth = 3;
6.142 + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
6.143 + gridBagConstraints.weightx = 1.0;
6.144 + gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 11);
6.145 + mainPanel.add(guessedWord, gridBagConstraints);
6.146 +
6.147 + nextTrial.setMnemonic('N');
6.148 + nextTrial.setText("New Word");
6.149 + nextTrial.setToolTipText("Fetch a new word.");
6.150 + nextTrial.addActionListener(new java.awt.event.ActionListener() {
6.151 + public void actionPerformed(java.awt.event.ActionEvent evt) {
6.152 + nextTrialActionPerformed(evt);
6.153 + }
6.154 + });
6.155 + gridBagConstraints = new java.awt.GridBagConstraints();
6.156 + gridBagConstraints.gridx = 3;
6.157 + gridBagConstraints.gridy = 3;
6.158 + gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 11);
6.159 + mainPanel.add(nextTrial, gridBagConstraints);
6.160 +
6.161 + getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);
6.162 +
6.163 + File.setText("File");
6.164 +
6.165 + jMenuItem1.setText("About");
6.166 + jMenuItem1.setToolTipText("About");
6.167 + jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
6.168 + public void actionPerformed(java.awt.event.ActionEvent evt) {
6.169 + jMenuItem1ActionPerformed(evt);
6.170 + }
6.171 + });
6.172 + File.add(jMenuItem1);
6.173 +
6.174 + jMenuItem2.setText("Exit");
6.175 + jMenuItem2.setToolTipText("Quit Team, Quit!");
6.176 + jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
6.177 + public void actionPerformed(java.awt.event.ActionEvent evt) {
6.178 + jMenuItem2ActionPerformed(evt);
6.179 + }
6.180 + });
6.181 + File.add(jMenuItem2);
6.182 +
6.183 + mainMenu.add(File);
6.184 +
6.185 + setJMenuBar(mainMenu);
6.186 +
6.187 + java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
6.188 + setBounds((screenSize.width-400)/2, (screenSize.height-250)/2, 400, 250);
6.189 + }// </editor-fold>//GEN-END:initComponents
6.190 +
6.191 + private void nextTrialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextTrialActionPerformed
6.192 + wordIdx++;
6.193 +
6.194 + feedbackLabel.setText(" ");
6.195 + initWord();
6.196 + guessedWord.setText("");
6.197 + getRootPane().setDefaultButton(guessButton);
6.198 +
6.199 + guessedWord.requestFocus();
6.200 + }//GEN-LAST:event_nextTrialActionPerformed
6.201 +
6.202 + protected final void initWord() {
6.203 +
6.204 + String[] words = getWordLibrary().getWords();
6.205 + int index = wordIdx % words.length;
6.206 +
6.207 + original = words[index];
6.208 + Scrambler scrambler = getScrambler();
6.209 + scrambled = scrambler != null ? scrambler.scramble(original) : original;
6.210 +
6.211 + scrambledWord.setText(scrambled);
6.212 + }
6.213 +
6.214 + private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
6.215 + System.exit(0);
6.216 + }//GEN-LAST:event_jMenuItem2ActionPerformed
6.217 +
6.218 + private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
6.219 + new About().show();
6.220 + }//GEN-LAST:event_jMenuItem1ActionPerformed
6.221 +
6.222 + private void guessedWordActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guessedWordActionPerformed
6.223 +
6.224 + if(guessedWord.getText().equals(original)) {
6.225 + feedbackLabel.setText("Correct! Try a new word!");
6.226 + getRootPane().setDefaultButton(nextTrial);
6.227 + } else {
6.228 + feedbackLabel.setText("Incorrect! Try again!");
6.229 + guessedWord.setText("");
6.230 + }
6.231 +
6.232 + guessedWord.requestFocus();
6.233 + }//GEN-LAST:event_guessedWordActionPerformed
6.234 +
6.235 + /** Exit the Application */
6.236 + private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
6.237 + System.exit(0);
6.238 + }//GEN-LAST:event_exitForm
6.239 +
6.240 + @Override
6.241 + public void setVisible(boolean v) {
6.242 + super.setVisible(v);
6.243 + if (v) {
6.244 + guessedWord.requestFocus();
6.245 + }
6.246 + }
6.247 +
6.248 + // Variables declaration - do not modify//GEN-BEGIN:variables
6.249 + private javax.swing.JMenu File;
6.250 + private javax.swing.JLabel feedbackLabel;
6.251 + private javax.swing.JButton guessButton;
6.252 + private javax.swing.JLabel guessLabel;
6.253 + private javax.swing.JTextField guessedWord;
6.254 + private javax.swing.JMenuItem jMenuItem1;
6.255 + private javax.swing.JMenuItem jMenuItem2;
6.256 + private javax.swing.JMenuBar mainMenu;
6.257 + private javax.swing.JPanel mainPanel;
6.258 + private javax.swing.JButton nextTrial;
6.259 + private javax.swing.JLabel scrambledLabel;
6.260 + private javax.swing.JTextField scrambledWord;
6.261 + // End of variables declaration//GEN-END:variables
6.262 +
6.263 +}
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Main.java Sun Apr 26 21:18:14 2009 +0200
7.3 @@ -0,0 +1,18 @@
7.4 +package org.apidesign.demo.anagramwithspringandlookup;
7.5 +
7.6 +import org.apidesign.spring.SpringAndLookup;
7.7 +import org.openide.util.Lookup;
7.8 +import org.springframework.context.ApplicationContext;
7.9 +import org.springframework.context.support.StaticApplicationContext;
7.10 +
7.11 +public final class Main {
7.12 + private Main() { }
7.13 +
7.14 + public static void main(String[] args) throws Exception {
7.15 + ApplicationContext context = SpringAndLookup.create(Lookup.getDefault(), "global");
7.16 + StaticApplicationContext c = new StaticApplicationContext(context);
7.17 + c.registerPrototype("ui", Anagrams.class);
7.18 + UI ui = (UI)context.getBean("ui", UI.class);
7.19 + ui.display();
7.20 + }
7.21 +}
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/Scrambler.java Sun Apr 26 21:18:14 2009 +0200
8.3 @@ -0,0 +1,6 @@
8.4 +
8.5 +package org.apidesign.demo.anagramwithspringandlookup;
8.6 +
8.7 +public interface Scrambler {
8.8 + public String scramble(String word);
8.9 +}
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/UI.java Sun Apr 26 21:18:14 2009 +0200
9.3 @@ -0,0 +1,6 @@
9.4 +
9.5 +package org.apidesign.demo.anagramwithspringandlookup;
9.6 +
9.7 +public interface UI {
9.8 + public void display();
9.9 +}
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/anagramdemo/anagrambase/src/main/java/org/apidesign/demo/anagramwithspringandlookup/WordLibrary.java Sun Apr 26 21:18:14 2009 +0200
10.3 @@ -0,0 +1,6 @@
10.4 +
10.5 +package org.apidesign.demo.anagramwithspringandlookup;
10.6 +
10.7 +public interface WordLibrary {
10.8 + public String[] getWords();
10.9 +}
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/anagramdemo/pom.xml Sun Apr 26 21:18:14 2009 +0200
11.3 @@ -0,0 +1,17 @@
11.4 +<?xml version="1.0" encoding="UTF-8"?>
11.5 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
11.6 + <modelVersion>4.0.0</modelVersion>
11.7 + <packaging>pom</packaging>
11.8 + <groupId>org.apidesign</groupId>
11.9 + <artifactId>anagramdemo</artifactId>
11.10 + <version>2.0</version>
11.11 + <modules>
11.12 + <module>anagrambase</module>
11.13 + <module>staticwordlibrary</module>
11.14 + <module>simplescrambler</module>
11.15 + </modules>
11.16 + <name>Anagram Game via Lookup and Spring</name>
11.17 + <description>Shows benefits of cooperation of Spring
11.18 +and Lookup by writing a modular application for Anagram Game.
11.19 +</description>
11.20 +</project>
11.21 \ No newline at end of file
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
12.2 +++ b/anagramdemo/simplescrambler/pom.xml Sun Apr 26 21:18:14 2009 +0200
12.3 @@ -0,0 +1,42 @@
12.4 +<?xml version="1.0" encoding="UTF-8"?>
12.5 +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
12.6 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
12.7 + <modelVersion>4.0.0</modelVersion>
12.8 + <parent>
12.9 + <artifactId>anagramdemo</artifactId>
12.10 + <groupId>org.apidesign</groupId>
12.11 + <version>2.0</version>
12.12 + </parent>
12.13 + <groupId>org.apidesign</groupId>
12.14 + <artifactId>simplescrambler</artifactId>
12.15 + <version>1.0</version>
12.16 + <url>http://maven.apache.org</url>
12.17 + <build>
12.18 + <plugins>
12.19 + <plugin>
12.20 + <groupId>org.apache.maven.plugins</groupId>
12.21 + <artifactId>maven-compiler-plugin</artifactId>
12.22 + <version>2.0.2</version>
12.23 + <configuration>
12.24 + <source>1.5</source>
12.25 + <target>1.5</target>
12.26 + </configuration>
12.27 + </plugin>
12.28 + </plugins>
12.29 + </build>
12.30 + <dependencies>
12.31 + <dependency>
12.32 + <groupId>junit</groupId>
12.33 + <artifactId>junit</artifactId>
12.34 + <version>3.8.1</version>
12.35 + <scope>test</scope>
12.36 + </dependency>
12.37 + <dependency>
12.38 + <groupId>org.apidesign</groupId>
12.39 + <artifactId>anagram-spring-lookup</artifactId>
12.40 + <version>1.0</version>
12.41 + </dependency>
12.42 + </dependencies>
12.43 + <name>Simple Scrambler</name>
12.44 + <description>Replaces two letters in provided words.</description>
12.45 +</project>
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
13.2 +++ b/anagramdemo/simplescrambler/src/main/java/org/apidesign/demo/anagramwithspringandlookup/simplescrambler/SimpleScrambler.java Sun Apr 26 21:18:14 2009 +0200
13.3 @@ -0,0 +1,30 @@
13.4 +package org.apidesign.demo.anagramwithspringandlookup.simplescrambler;
13.5 +
13.6 +import java.util.Random;
13.7 +import org.apidesign.demo.anagramwithspringandlookup.Scrambler;
13.8 +import org.openide.util.lookup.ServiceProvider;
13.9 +
13.10 +@ServiceProvider(service=Scrambler.class)
13.11 +public class SimpleScrambler implements Scrambler {
13.12 + private static final Random random = new Random();
13.13 +
13.14 + public String scramble(String word) {
13.15 + for (;;) {
13.16 + int index1 = random.nextInt(word.length());
13.17 + int index2 = random.nextInt(word.length());
13.18 +
13.19 + if (index1 == index2) {
13.20 + continue;
13.21 + }
13.22 +
13.23 + char char1 = word.charAt(index1);
13.24 + char char2 = word.charAt(index2);
13.25 +
13.26 + StringBuilder sb = new StringBuilder(word);
13.27 + sb.setCharAt(index1, char2);
13.28 + sb.setCharAt(index2, char1);
13.29 + return sb.toString();
13.30 + }
13.31 + }
13.32 +
13.33 +}
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
14.2 +++ b/anagramdemo/staticwordlibrary/pom.xml Sun Apr 26 21:18:14 2009 +0200
14.3 @@ -0,0 +1,50 @@
14.4 +<?xml version="1.0" encoding="UTF-8"?>
14.5 +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
14.6 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
14.7 + <modelVersion>4.0.0</modelVersion>
14.8 + <parent>
14.9 + <artifactId>all-lookup</artifactId>
14.10 + <groupId>org.apidesign</groupId>
14.11 + <version>2.0</version>
14.12 + </parent>
14.13 + <groupId>org.apidesign</groupId>
14.14 + <artifactId>anagramdemowordlibrary</artifactId>
14.15 + <version>1.0</version>
14.16 + <url>http://maven.apache.org</url>
14.17 + <dependencies>
14.18 + <dependency>
14.19 + <groupId>junit</groupId>
14.20 + <artifactId>junit</artifactId>
14.21 + <version>3.8.1</version>
14.22 + <scope>test</scope>
14.23 + </dependency>
14.24 + <dependency>
14.25 + <groupId>org.apidesign</groupId>
14.26 + <artifactId>lookup</artifactId>
14.27 + <version>7.22.0</version>
14.28 + </dependency>
14.29 + <dependency>
14.30 + <groupId>org.apidesign</groupId>
14.31 + <artifactId>anagram-spring-lookup</artifactId>
14.32 + <version>1.0</version>
14.33 + </dependency>
14.34 + </dependencies>
14.35 + <name>Static Word Library</name>
14.36 + <description>Provides an implementation of WordLibrary interface and registers it
14.37 +via Java Extension Mechanism, so it is it visible to Lookup.getDefault()
14.38 +implementation.
14.39 +</description>
14.40 + <build>
14.41 + <plugins>
14.42 + <plugin>
14.43 + <groupId>org.apache.maven.plugins</groupId>
14.44 + <artifactId>maven-compiler-plugin</artifactId>
14.45 + <version>2.0.2</version>
14.46 + <configuration>
14.47 + <source>1.5</source>
14.48 + <target>1.5</target>
14.49 + </configuration>
14.50 + </plugin>
14.51 + </plugins>
14.52 + </build>
14.53 +</project>
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
15.2 +++ b/anagramdemo/staticwordlibrary/src/main/java/org/apidesign/demo/anagramwithspringandlookup/staticwordlibrary/StaticWordLibrary.java Sun Apr 26 21:18:14 2009 +0200
15.3 @@ -0,0 +1,59 @@
15.4 +
15.5 +package org.apidesign.demo.anagramwithspringandlookup.staticwordlibrary;
15.6 +
15.7 +import org.apidesign.demo.anagramwithspringandlookup.WordLibrary;
15.8 +import org.openide.util.lookup.ServiceProvider;
15.9 +
15.10 +@ServiceProvider(service=WordLibrary.class)
15.11 +public class StaticWordLibrary implements WordLibrary {
15.12 + private static String wordList[] = {
15.13 + "abstraction",
15.14 + "ambiguous",
15.15 + "arithmetic",
15.16 + "backslash",
15.17 + "bitmap",
15.18 + "circumstance",
15.19 + "combination",
15.20 + "consequently",
15.21 + "consortium",
15.22 + "decrementing",
15.23 + "dependency",
15.24 + "disambiguate",
15.25 + "dynamic",
15.26 + "encapsulation",
15.27 + "equivalent",
15.28 + "expression",
15.29 + "facilitate",
15.30 + "fragment",
15.31 + "hexadecimal",
15.32 + "implementation",
15.33 + "indistinguishable",
15.34 + "inheritance",
15.35 + "internet",
15.36 + "java",
15.37 + "localization",
15.38 + "microprocessor",
15.39 + "navigation",
15.40 + "optimization",
15.41 + "parameter",
15.42 + "patrick",
15.43 + "pickle",
15.44 + "polymorphic",
15.45 + "rigorously",
15.46 + "simultaneously",
15.47 + "specification",
15.48 + "structure",
15.49 + "lexical",
15.50 + "likewise",
15.51 + "management",
15.52 + "manipulate",
15.53 + "mathematics",
15.54 + "hotjava",
15.55 + "vertex",
15.56 + "unsigned",
15.57 + "traditional"};
15.58 +
15.59 + public String[] getWords() {
15.60 + return wordList;
15.61 + }
15.62 +}
16.1 --- a/pom.xml Sun Apr 26 13:49:06 2009 +0200
16.2 +++ b/pom.xml Sun Apr 26 21:18:14 2009 +0200
16.3 @@ -1,7 +1,5 @@
16.4 -<project xmlns="http://maven.apache.org/POM/4.0.0"
16.5 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
16.6 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
16.7 - http://maven.apache.org/xsd/maven-4.0.0.xsd">
16.8 +<?xml version="1.0" encoding="UTF-8"?>
16.9 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
16.10 <modelVersion>4.0.0</modelVersion>
16.11 <packaging>pom</packaging>
16.12 <groupId>org.apidesign</groupId>
16.13 @@ -10,6 +8,7 @@
16.14 <modules>
16.15 <module>lookup</module>
16.16 <module>spring.lookup</module>
16.17 + <module>anagramdemo</module>
16.18 </modules>
16.19 <name>Lookup related projects from apidesign.org</name>
16.20 <description>Master project that agregates all lookup related