Skip to Content.
Sympa Menu

notify-dpml - svn commit: r2305 - in development/planet/users/niclas/book: . atm atm/api atm/api/src atm/api/src/main atm/api/src/main/net atm/api/src/main/net/dpml atm/api/src/main/net/dpml/book atm/api/src/main/net/dpml/book/atm atm/simple atm/simple/accounts atm/simple/accounts/src atm/simple/accounts/src/main atm/simple/accounts/src/main/net atm/simple/accounts/src/main/net/dpml atm/simple/accounts/src/main/net/dpml/book atm/simple/accounts/src/main/net/dpml/book/atm atm/simple/accounts/src/main/net/dpml/book/atm/simple atm/simple/accounts/src/main/net/dpml/book/atm/simple/accounts atm/simple/app atm/simple/app/src atm/simple/app/src/main atm/simple/app/src/main/net atm/simple/app/src/main/net/dpml atm/simple/app/src/main/net/dpml/book atm/simple/app/src/main/net/dpml/book/atm atm/simple/app/src/main/net/dpml/book/atm/app atm/simple/authentication atm/simple/authentication/src atm/simple/authentication/src/main atm/simple/authentication/src/main/net atm/simple/authentication/src/main/net/dpml atm/simple/authentication/src/main/net/dpml/book atm/simple/authentication/src/main/net/dpml/book/atm atm/simple/authentication/src/main/net/dpml/book/atm/simple atm/simple/authentication/src/main/net/dpml/book/atm/simple/auth atm/simple/cardreader atm/simple/cardreader/src atm/simple/cardreader/src/main atm/simple/cardreader/src/main/net atm/simple/cardreader/src/main/net/dpml atm/simple/cardreader/src/main/net/dpml/book atm/simple/cardreader/src/main/net/dpml/book/atm atm/simple/cardreader/src/main/net/dpml/book/atm/simple atm/simple/cardreader/src/main/net/dpml/book/atm/simple/card atm/simple/dispensing atm/simple/dispensing/src atm/simple/dispensing/src/main atm/simple/dispensing/src/main/net atm/simple/dispensing/src/main/net/dpml atm/simple/dispensing/src/main/net/dpml/book atm/simple/dispensing/src/main/net/dpml/book/atm atm/simple/dispensing/src/main/net/dpml/book/atm/simple atm/simple/dispensing/src/main/net/dpml/book/atm/simple/dispense atm/simple/userinterface atm/simple/userinterface/src atm/simple/userinterface/src/main atm/simple/userinterface/src/main/net atm/simple/userinterface/src/main/net/dpml atm/simple/userinterface/src/main/net/dpml/book atm/simple/userinterface/src/main/net/dpml/book/atm atm/simple/userinterface/src/main/net/dpml/book/atm/simple atm/simple/userinterface/src/main/net/dpml/book/atm/simple/ui docbook docbook/src docbook/src/docs docbook/src/docs/components docbook/src/docs/introduction docbook/src/docs/magic docbook/src/docs/metro docbook/src/docs/transit target-eclipse target-eclipse/components target-eclipse/introduction target-eclipse/magic target-eclipse/metro target-eclipse/net target-eclipse/net/dpml target-eclipse/net/dpml/book target-eclipse/net/dpml/book/atm target-eclipse/net/dpml/book/atm/app target-eclipse/net/dpml/book/atm/simple target-eclipse/net/dpml/book/atm/simple/accounts target-eclipse/net/dpml/book/atm/simple/auth target-eclipse/net/dpml/book/atm/simple/card target-eclipse/net/dpml/book/atm/simple/dispense target-eclipse/net/dpml/book/atm/simple/ui target-eclipse/transit

notify-dpml AT lists.ibiblio.org

Subject: DPML Notify

List archive

Chronological Thread  
  • From: niclas AT hedhman.org
  • To: notify-dpml AT lists.ibiblio.org
  • Subject: svn commit: r2305 - in development/planet/users/niclas/book: . atm atm/api atm/api/src atm/api/src/main atm/api/src/main/net atm/api/src/main/net/dpml atm/api/src/main/net/dpml/book atm/api/src/main/net/dpml/book/atm atm/simple atm/simple/accounts atm/simple/accounts/src atm/simple/accounts/src/main atm/simple/accounts/src/main/net atm/simple/accounts/src/main/net/dpml atm/simple/accounts/src/main/net/dpml/book atm/simple/accounts/src/main/net/dpml/book/atm atm/simple/accounts/src/main/net/dpml/book/atm/simple atm/simple/accounts/src/main/net/dpml/book/atm/simple/accounts atm/simple/app atm/simple/app/src atm/simple/app/src/main atm/simple/app/src/main/net atm/simple/app/src/main/net/dpml atm/simple/app/src/main/net/dpml/book atm/simple/app/src/main/net/dpml/book/atm atm/simple/app/src/main/net/dpml/book/atm/app atm/simple/authentication atm/simple/authentication/src atm/simple/authentication/src/main atm/simple/authentication/src/main/net atm/simple/authentication/src/main/net/dpml atm/simple/authentication/src/main/net/dpml/book atm/simple/authentication/src/main/net/dpml/book/atm atm/simple/authentication/src/main/net/dpml/book/atm/simple atm/simple/authentication/src/main/net/dpml/book/atm/simple/auth atm/simple/cardreader atm/simple/cardreader/src atm/simple/cardreader/src/main atm/simple/cardreader/src/main/net atm/simple/cardreader/src/main/net/dpml atm/simple/cardreader/src/main/net/dpml/book atm/simple/cardreader/src/main/net/dpml/book/atm atm/simple/cardreader/src/main/net/dpml/book/atm/simple atm/simple/cardreader/src/main/net/dpml/book/atm/simple/card atm/simple/dispensing atm/simple/dispensing/src atm/simple/dispensing/src/main atm/simple/dispensing/src/main/net atm/simple/dispensing/src/main/net/dpml atm/simple/dispensing/src/main/net/dpml/book atm/simple/dispensing/src/main/net/dpml/book/atm atm/simple/dispensing/src/main/net/dpml/book/atm/simple atm/simple/dispensing/src/main/net/dpml/book/atm/simple/dispense atm/simple/userinterface atm/simple/userinterface/src atm/simple/userinterface/src/main atm/simple/userinterface/src/main/net atm/simple/userinterface/src/main/net/dpml atm/simple/userinterface/src/main/net/dpml/book atm/simple/userinterface/src/main/net/dpml/book/atm atm/simple/userinterface/src/main/net/dpml/book/atm/simple atm/simple/userinterface/src/main/net/dpml/book/atm/simple/ui docbook docbook/src docbook/src/docs docbook/src/docs/components docbook/src/docs/introduction docbook/src/docs/magic docbook/src/docs/metro docbook/src/docs/transit target-eclipse target-eclipse/components target-eclipse/introduction target-eclipse/magic target-eclipse/metro target-eclipse/net target-eclipse/net/dpml target-eclipse/net/dpml/book target-eclipse/net/dpml/book/atm target-eclipse/net/dpml/book/atm/app target-eclipse/net/dpml/book/atm/simple target-eclipse/net/dpml/book/atm/simple/accounts target-eclipse/net/dpml/book/atm/simple/auth target-eclipse/net/dpml/book/atm/simple/card target-eclipse/net/dpml/book/atm/simple/dispense target-eclipse/net/dpml/book/atm/simple/ui target-eclipse/transit
  • Date: Mon, 18 Apr 2005 14:24:35 -0400

Author: niclas AT hedhman.org
Date: Mon Apr 18 14:24:31 2005
New Revision: 2305

Added:
development/planet/users/niclas/book/
development/planet/users/niclas/book/.classpath
development/planet/users/niclas/book/.project
development/planet/users/niclas/book/atm/
development/planet/users/niclas/book/atm/api/
development/planet/users/niclas/book/atm/api/src/
development/planet/users/niclas/book/atm/api/src/main/
development/planet/users/niclas/book/atm/api/src/main/net/
development/planet/users/niclas/book/atm/api/src/main/net/dpml/
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/

development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/Authentication.java

development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/BackEndProvider.java

development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/CardReader.java

development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/Dispense.java

development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/UserInterface.java

development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/WithdrawalException.java
development/planet/users/niclas/book/atm/simple/
development/planet/users/niclas/book/atm/simple/accounts/
development/planet/users/niclas/book/atm/simple/accounts/src/
development/planet/users/niclas/book/atm/simple/accounts/src/main/
development/planet/users/niclas/book/atm/simple/accounts/src/main/net/
development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/

development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/book/

development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/book/atm/

development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/book/atm/simple/

development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/book/atm/simple/accounts/

development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/book/atm/simple/accounts/SimpleAccountManager.java
development/planet/users/niclas/book/atm/simple/app/
development/planet/users/niclas/book/atm/simple/app/src/
development/planet/users/niclas/book/atm/simple/app/src/main/
development/planet/users/niclas/book/atm/simple/app/src/main/net/
development/planet/users/niclas/book/atm/simple/app/src/main/net/dpml/
development/planet/users/niclas/book/atm/simple/app/src/main/net/dpml/book/

development/planet/users/niclas/book/atm/simple/app/src/main/net/dpml/book/atm/

development/planet/users/niclas/book/atm/simple/app/src/main/net/dpml/book/atm/app/

development/planet/users/niclas/book/atm/simple/app/src/main/net/dpml/book/atm/app/ATM.java
development/planet/users/niclas/book/atm/simple/authentication/
development/planet/users/niclas/book/atm/simple/authentication/src/
development/planet/users/niclas/book/atm/simple/authentication/src/main/

development/planet/users/niclas/book/atm/simple/authentication/src/main/net/

development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/

development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/book/

development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/book/atm/

development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/book/atm/simple/

development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/book/atm/simple/auth/

development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/book/atm/simple/auth/SimpleAuthentication.java
development/planet/users/niclas/book/atm/simple/cardreader/
development/planet/users/niclas/book/atm/simple/cardreader/src/
development/planet/users/niclas/book/atm/simple/cardreader/src/main/
development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/

development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/

development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/book/

development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/book/atm/

development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/book/atm/simple/

development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/book/atm/simple/card/

development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/book/atm/simple/card/SimpleCardReader.java
development/planet/users/niclas/book/atm/simple/dispensing/
development/planet/users/niclas/book/atm/simple/dispensing/src/
development/planet/users/niclas/book/atm/simple/dispensing/src/main/
development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/

development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/

development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/book/

development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/book/atm/

development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/book/atm/simple/

development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/book/atm/simple/dispense/

development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/book/atm/simple/dispense/SimpleDispense.java
development/planet/users/niclas/book/atm/simple/userinterface/
development/planet/users/niclas/book/atm/simple/userinterface/src/
development/planet/users/niclas/book/atm/simple/userinterface/src/main/
development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/

development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/

development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/book/

development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/book/atm/

development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/book/atm/simple/

development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/book/atm/simple/ui/

development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/book/atm/simple/ui/ConsoleUi.java
development/planet/users/niclas/book/docbook/
development/planet/users/niclas/book/docbook/src/
development/planet/users/niclas/book/docbook/src/docs/
development/planet/users/niclas/book/docbook/src/docs/book.xml
development/planet/users/niclas/book/docbook/src/docs/components/

development/planet/users/niclas/book/docbook/src/docs/components/conclusion.xml

development/planet/users/niclas/book/docbook/src/docs/components/dpml-planet.xml

development/planet/users/niclas/book/docbook/src/docs/components/endorsed.xml
development/planet/users/niclas/book/docbook/src/docs/components/main.xml

development/planet/users/niclas/book/docbook/src/docs/components/metro-extensions.xml
development/planet/users/niclas/book/docbook/src/docs/introduction/

development/planet/users/niclas/book/docbook/src/docs/introduction/background.xml

development/planet/users/niclas/book/docbook/src/docs/introduction/conclusion.xml

development/planet/users/niclas/book/docbook/src/docs/introduction/installations.xml
development/planet/users/niclas/book/docbook/src/docs/introduction/main.xml

development/planet/users/niclas/book/docbook/src/docs/introduction/penetrate.xml

development/planet/users/niclas/book/docbook/src/docs/introduction/quickie.xml
development/planet/users/niclas/book/docbook/src/docs/magic/
development/planet/users/niclas/book/docbook/src/docs/magic/conclusion.xml

development/planet/users/niclas/book/docbook/src/docs/magic/creating-spells.xml
development/planet/users/niclas/book/docbook/src/docs/magic/main.xml

development/planet/users/niclas/book/docbook/src/docs/magic/managing-projects.xml

development/planet/users/niclas/book/docbook/src/docs/magic/standard-spells.xml
development/planet/users/niclas/book/docbook/src/docs/metro/

development/planet/users/niclas/book/docbook/src/docs/metro/component-creation.xml
development/planet/users/niclas/book/docbook/src/docs/metro/conclusion.xml
development/planet/users/niclas/book/docbook/src/docs/metro/deployment.xml

development/planet/users/niclas/book/docbook/src/docs/metro/extending-metro.xml
development/planet/users/niclas/book/docbook/src/docs/metro/main.xml
development/planet/users/niclas/book/docbook/src/docs/metro/operations.xml
development/planet/users/niclas/book/docbook/src/docs/transit/

development/planet/users/niclas/book/docbook/src/docs/transit/conclusion.xml

development/planet/users/niclas/book/docbook/src/docs/transit/content-urls.xml
development/planet/users/niclas/book/docbook/src/docs/transit/main.xml

development/planet/users/niclas/book/docbook/src/docs/transit/operations.xml
development/planet/users/niclas/book/docbook/src/docs/transit/plugins.xml
development/planet/users/niclas/book/target-eclipse/
development/planet/users/niclas/book/target-eclipse/book.xml
development/planet/users/niclas/book/target-eclipse/components/

development/planet/users/niclas/book/target-eclipse/components/conclusion.xml

development/planet/users/niclas/book/target-eclipse/components/dpml-planet.xml
development/planet/users/niclas/book/target-eclipse/components/endorsed.xml
development/planet/users/niclas/book/target-eclipse/components/main.xml

development/planet/users/niclas/book/target-eclipse/components/metro-extensions.xml
development/planet/users/niclas/book/target-eclipse/introduction/

development/planet/users/niclas/book/target-eclipse/introduction/background.xml

development/planet/users/niclas/book/target-eclipse/introduction/conclusion.xml

development/planet/users/niclas/book/target-eclipse/introduction/installations.xml
development/planet/users/niclas/book/target-eclipse/introduction/main.xml

development/planet/users/niclas/book/target-eclipse/introduction/penetrate.xml

development/planet/users/niclas/book/target-eclipse/introduction/quickie.xml
development/planet/users/niclas/book/target-eclipse/magic/
development/planet/users/niclas/book/target-eclipse/magic/conclusion.xml

development/planet/users/niclas/book/target-eclipse/magic/creating-spells.xml
development/planet/users/niclas/book/target-eclipse/magic/main.xml

development/planet/users/niclas/book/target-eclipse/magic/managing-projects.xml

development/planet/users/niclas/book/target-eclipse/magic/standard-spells.xml
development/planet/users/niclas/book/target-eclipse/metro/

development/planet/users/niclas/book/target-eclipse/metro/component-creation.xml
development/planet/users/niclas/book/target-eclipse/metro/conclusion.xml
development/planet/users/niclas/book/target-eclipse/metro/deployment.xml

development/planet/users/niclas/book/target-eclipse/metro/extending-metro.xml
development/planet/users/niclas/book/target-eclipse/metro/main.xml
development/planet/users/niclas/book/target-eclipse/metro/operations.xml
development/planet/users/niclas/book/target-eclipse/net/
development/planet/users/niclas/book/target-eclipse/net/dpml/
development/planet/users/niclas/book/target-eclipse/net/dpml/book/
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/Authentication.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/BackEndProvider.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/CardReader.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/Dispense.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/UserInterface.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/WithdrawalException.class
(contents, props changed)
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/app/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/app/ATM.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/accounts/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/accounts/SimpleAccountManager.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/auth/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/auth/SimpleAuthentication.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/card/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/card/SimpleCardReader.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/dispense/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/dispense/SimpleDispense.class
(contents, props changed)

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/ui/

development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/ui/ConsoleUi.class
(contents, props changed)
development/planet/users/niclas/book/target-eclipse/transit/
development/planet/users/niclas/book/target-eclipse/transit/conclusion.xml

development/planet/users/niclas/book/target-eclipse/transit/content-urls.xml
development/planet/users/niclas/book/target-eclipse/transit/main.xml
development/planet/users/niclas/book/target-eclipse/transit/operations.xml
development/planet/users/niclas/book/target-eclipse/transit/plugins.xml
Log:
Starting on a book.

Added: development/planet/users/niclas/book/.classpath
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/.classpath Mon Apr 18 14:24:31
2005
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="atm/api/src/main"/>
+ <classpathentry kind="src" path="atm/simple/app/src/main"/>
+ <classpathentry kind="src" path="atm/simple/authentication/src/main"/>
+ <classpathentry kind="src" path="atm/simple/cardreader/src/main"/>
+ <classpathentry kind="src" path="atm/simple/dispensing/src/main"/>
+ <classpathentry kind="src" path="atm/simple/userinterface/src/main"/>
+ <classpathentry kind="src" path="docbook/src/docs"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="atm/simple/accounts/src/main"/>
+ <classpathentry kind="output" path="target-eclipse"/>
+</classpath>

Added: development/planet/users/niclas/book/.project
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/.project Mon Apr 18 14:24:31
2005
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>dpml-book</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>

Added:
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/Authentication.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/Authentication.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,7 @@
+package net.dpml.book.atm;
+
+
+public interface Authentication
+{
+ String getPinNumber();
+}
\ No newline at end of file

Added:
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/BackEndProvider.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/BackEndProvider.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,14 @@
+package net.dpml.book.atm;
+
+
+/**
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ */
+public interface BackEndProvider
+{
+ boolean requestWithdrawal( String account, String pin, String amount );
+
+ void withdraw( String account, String amount )
+ throws WithdrawalException;
+}

Added:
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/CardReader.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/CardReader.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,6 @@
+package net.dpml.book.atm;
+
+public interface CardReader
+{
+ String getCardNumber();
+}
\ No newline at end of file

Added:
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/Dispense.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/Dispense.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,7 @@
+package net.dpml.book.atm;
+
+
+public interface Dispense
+{
+ boolean dispenseMoney( String amount );
+}
\ No newline at end of file

Added:
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/UserInterface.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/UserInterface.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,9 @@
+package net.dpml.book.atm;
+
+
+public interface UserInterface
+{
+ String acquireUserInput( String messageIdentity, String[] data );
+
+ void provideUserFeedback( String messageIdentity, String[] data );
+}
\ No newline at end of file

Added:
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/WithdrawalException.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/api/src/main/net/dpml/book/atm/WithdrawalException.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,19 @@
+package net.dpml.book.atm;
+
+
+/**
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ *
+ */
+public class WithdrawalException extends Exception
+{
+ static final long serialVersionUID = 1L;
+
+ /**
+ * @param message
+ */
+ public WithdrawalException( String message )
+ {
+ super( message );
+ }
+}

Added:
development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/book/atm/simple/accounts/SimpleAccountManager.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/simple/accounts/src/main/net/dpml/book/atm/simple/accounts/SimpleAccountManager.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,104 @@
+package net.dpml.book.atm.simple.accounts;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.Properties;
+
+import net.dpml.book.atm.BackEndProvider;
+import net.dpml.book.atm.WithdrawalException;
+
+import net.dpml.parameters.Parameters;
+
+/** This simple BackEndProvider implementation uses java.util.Properties
+ * files to emulate a backend banking host.
+ *
+ * @author <a href="mailto:niclas AT hedhman.org";>Niclas Hedhman</a>
+ * @metro.component name="simple-accountmanager" lifestyle="singleton"
+ * @metro.service type="net.dpml.book.atm.BackEndProvider"
+ */
+public class SimpleAccountManager
+ implements BackEndProvider
+{
+ private String m_accountsFilename;
+ private Properties m_accounts;
+ private Properties m_pins;
+
+ public SimpleAccountManager( Parameters params )
+ {
+ m_accountsFilename = params.getParameter( "accounts-filename" );
+ String pinsFilename = params.getParameter( "pinnumbers-filename" );
+
+ m_accounts = loadProperties( m_accountsFilename );
+ m_pins = loadProperties( pinsFilename );
+ }
+
+ public boolean requestWithdrawal( String account, String pin, String
amount )
+ {
+ if( validate( account, pin ) == false )
+ return false;
+ return haveEnough( account, amount );
+ }
+
+ public void withdraw( String account, String amount )
+ throws WithdrawalException
+ {
+ synchronized( this )
+ {
+ if( haveEnough( account, amount ) == false )
+ throw new WithdrawalException( "Not enough credit for the
account to make withdrawal of " + amount );
+ BigDecimal balance = getBalance( account );
+ BigDecimal withdrawn = convert( amount );
+ BigDecimal newBalance = balance.subtract( withdrawn );
+ m_accounts.setProperty( account, newBalance.toString() );
+ try
+ {
+ saveAccounts();
+ } catch( IOException e )
+ {
+ throw new WithdrawalException( "Withdrawal failed due to
IOException." );
+ }
+ }
+ }
+
+ private boolean validate( String account, String pin )
+ {
+ String correct = m_pins.getProperty( account );
+ return pin.equals( correct );
+ }
+
+ private boolean haveEnough( String account, String amount )
+ {
+ BigDecimal balance = getBalance( account );
+ BigDecimal askingFor = convert( amount );
+ return balance.subtract( askingFor ).floatValue() > 0 ;
+ }
+
+ private BigDecimal getBalance( String account )
+ {
+ String amount = m_accounts.getProperty( account );
+ return convert( amount );
+ }
+
+ private BigDecimal convert( String amount )
+ {
+ return new BigDecimal( amount );
+ }
+
+ private Properties loadProperties( String filename )
+ throws IOException
+ {
+ FileInputStream in = new FileInputStream( filename );
+ Properties props = new Properties();
+ props.load( in );
+ return props;
+ }
+
+ private void saveAccounts()
+ throws IOException
+ {
+ FileOutputStream out = new FileOutputStream( m_accountsFilename );
+ m_accounts.store( out, "Account = amount " );
+ }
+}

Added:
development/planet/users/niclas/book/atm/simple/app/src/main/net/dpml/book/atm/app/ATM.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/simple/app/src/main/net/dpml/book/atm/app/ATM.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,5 @@
+package net.dpml.book.atm.app;
+
+public class ATM
+{
+}

Added:
development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/book/atm/simple/auth/SimpleAuthentication.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/simple/authentication/src/main/net/dpml/book/atm/simple/auth/SimpleAuthentication.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,9 @@
+package net.dpml.book.atm.simple.auth;
+
+import net.dpml.book.atm.Authentication;
+
+public class SimpleAuthentication
+ implements Authentication
+{
+
+}
\ No newline at end of file

Added:
development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/book/atm/simple/card/SimpleCardReader.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/simple/cardreader/src/main/net/dpml/book/atm/simple/card/SimpleCardReader.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,10 @@
+package net.dpml.book.atm.simple.card;
+
+
+import net.dpml.book.atm.CardReader;
+
+
+public class SimpleCardReader
+ implements CardReader
+{
+}
\ No newline at end of file

Added:
development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/book/atm/simple/dispense/SimpleDispense.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/simple/dispensing/src/main/net/dpml/book/atm/simple/dispense/SimpleDispense.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,10 @@
+package net.dpml.book.atm.simple.dispense;
+
+
+import net.dpml.book.atm.Dispense;
+
+
+public class SimpleDispense
+ implements Dispense
+{
+}
\ No newline at end of file

Added:
development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/book/atm/simple/ui/ConsoleUi.java
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/atm/simple/userinterface/src/main/net/dpml/book/atm/simple/ui/ConsoleUi.java
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,8 @@
+package net.dpml.book.atm.simple.ui;
+
+import net.dpml.book.atm.UserInterface;
+
+public class ConsoleUi
+ implements UserInterface
+{
+}
\ No newline at end of file

Added: development/planet/users/niclas/book/docbook/src/docs/book.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/docbook/src/docs/book.xml Mon
Apr 18 14:24:31 2005
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY intro.xml SYSTEM "introduction/main.xml">
+<!ENTITY transit.xml SYSTEM "transit/main.xml">
+<!ENTITY magic.xml SYSTEM "magic/main.xml">
+<!ENTITY metro.xml SYSTEM "metro/main.xml">
+<!ENTITY components.xml SYSTEM "components/main.xml">
+]>
+<book>
+ <bookinfo>
+ <title>DPML - The Ultimate Reference</title>
+ <!-- Subversion reference: $Id$ -->
+
+ <authorgroup>
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <author>
+ <surname>McConnell</surname>
+ <firstname>Stephen</firstname>
+ </author>
+ <othercredit>
+ <surname>Neubauer</surname>
+ <firstname>Peter</firstname>
+ </othercredit>
+ </authorgroup>
+
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ <holder>Stephen McConnell</holder>
+ </copyright>
+
+ </bookinfo>
+
+ <preface>
+ <title>Preface</title>
+ <para>
+ This is the beginnings of documentation for the total
+ application solution known as Digital Product Meta Library,
+ or DPML for short.
+ </para>
+
+ </preface>
+
+&introduction.xml;
+&transit.xml;
+&magic.xml;
+&metro.xml;
+&components.xml;
+</book>
+
+

Added:
development/planet/users/niclas/book/docbook/src/docs/components/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/components/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/components/dpml-planet.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/components/dpml-planet.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>DPML Planet - Components &amp; Plugins for Real
Applications</title>
+ <?dbhtml filename="dpml-planet.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/components/endorsed.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/components/endorsed.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Endorsed Services - The Standards</title>
+ <?dbhtml filename="endorsed.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/components/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/docbook/src/docs/components/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY dpmlplanet.xml SYSTEM "dpml-planet.xml">
+<!ENTITY endorsed.xml SYSTEM "endorsed.xml">
+<!ENTITY metroextensions.xml SYSTEM "metro-extensions.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&dpmlplanet.xml;
+&endorsed.xml;
+&metroextensions.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/docbook/src/docs/components/metro-extensions.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/components/metro-extensions.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Metro Extension - Endless Flexibility</title>
+ <?dbhtml filename="metro-extensions.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/introduction/background.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/introduction/background.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Background - How it started.</title>
+ <?dbhtml filename="intro1.html"?>
+
+ <para>
+
+ </para>
+
+ <sect1>
+ <title>The Avalon time</title>
+ <para>
+ </para>
+
+ <sect2>
+ <title>Avalon Framework</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Excalibur Component Manager</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>The Container War</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>The Exit from Apache Software Foundation</title>
+ <para>
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Birth of Digital Product Meta Library - DPML</title>
+ <para>
+ </para>
+
+ <sect2>
+ <title>Open Participation Software</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Refactor-mania</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Expansion phase</title>
+ <!--
+ Put in some explanation around the goals of expanding DPML both
+ product and community wise.
+ -->
+ <para>
+ </para>
+ </sect2>
+ </sect1>
+
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/introduction/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/introduction/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/introduction/installations.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/introduction/installations.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Installations - Put it to work.</title>
+ <?dbhtml filename="installations.html"?>
+
+ <para>
+ DPML itself does not focus on creating binary distributions and leave
that
+ for individuals to shoulder and support the larger user community. It
is
+ not possible to keep this chapter up to date, but we will try to do
our
+ best. We recommmend you to check with DPML website for more
information
+ around the installation procedures and available binary distributions.
+ </para>
+
+ <sect1>
+ <title>Installation from source code.</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Windows Installer from OSM.</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>KDE Installer from Niclas Hedhman.</title>
+ <para>
+ </para>
+ </sect1>
+
+
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/introduction/main.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/introduction/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY background.xml SYSTEM "background.xml">
+<!ENTITY quickie.xml SYSTEM "quickie.xml">
+<!ENTITY penetrate.xml SYSTEM "penetrate.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+<!ENTITY installations.xml SYSTEM "installations.xml">
+]>
+
+&background.xml;
+&quickie.xml;
+&penetrate.xml;
+&installations.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/docbook/src/docs/introduction/penetrate.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/introduction/penetrate.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Penetrate - Get in deeper for an hour.</title>
+ <?dbhtml filename="penetrate.html"?>
+
+ <para> This chapter will guide through the creation of a small application
+ that emulates a bank automatic teller machine (ATM) and its interaction
+ with a human being. All non-essential parts has been removed from this
+ tutorial to lessen the total time you need to spend to get a grasp of
many
+ core techniques used in DPML. If you don't type in the text manually,
and
+ instead use the provided source code at the website XXXX, you should be
+ able to complete and comprehend this tutorial in about one hour to two
+ hours, slightly depending on learning ability and time spent to really
+ trying to understand what is going on.
+ </para>
+
+ <sect1>
+ <title>Parts we need</title>
+ <para>
+ This application will emulate or mimick a real ATM, but the
functionality
+ has been reduced to concentrate on the core parts of Metro
functionality,
+ namely configuration, dependencies and classloader management.
+ </para>
+ <para>
+ An ATM has to fulfill the need of the customer, in that it should guide
+ the customer to make a withdrawal of cash from a bank account that is
+ identified by a bank card held by the customer and a PIN code to
+ authenticate that the holder of the bank card is the rightful owner of
+ it. So in our simple application we will need to;
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Read the card put into the ATM.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Request the customer to authenticate himself/herself by entering
+ the PIN number.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ask for an amount to be withdrawn.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Send the withdrawal request to the bank computer and see if it
+ was approved or not.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ If approved, dispense the money.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Thank the customer and go back into an idle mode.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>
+ From this we can see several parts that are fairly standalone, and
+ could be developed in total separation. That provides a high degree
+ of decoupling which means that we can later change one part with
another
+ without affecting any other part of the application.
+ </para>
+ <para>
+ Metro achieves this separation of concerns by the separation of
services
+ and components. The service is a semantic contract of what client code
+ can expect, and what the component, i.e. the service implementation
+ must provide. The client code is not interested in how the
implementation
+ is done, and as we will see later this is one of the core strengths of
+ a component oriented system, like Metro.
+ </para>
+ <para>
+ Let's look at the services that we probably will need.
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Card Reader Service. We need to collect the card number.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ User Interface. We will need to communicate with the user. The
+ interaction sequence is not too complex, and we should be able to
+ abstract it into a simple and usable contract.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Money Dispensing service. The application will at some point tell
+ a service to hand over the cash to the customer.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Backend Service. The ATM terminal communicates with some bank
+ backend computer that manages the transaction.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>
+
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>User interface</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Card Reader</title>
+ <para>
+ </para>
+ <blockquote>
+ <title>Source code CardReader service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm;
+
+/**
+ * The CardReader service which provides a simplified interface to magnetic
+ * and/or smart card readers.
+ * The service implementation is responsible to handle all the management
+ * aspects of the physical device. The implementation is expected to block
+ * when the <code>getCardNumber</code> method is called.
+ *
+ * @metro.service type="net.dpml.book.atm.CardReader"
+ */
+public interface CardReader
+{
+ String getCurrentCardNumber()
+ throws IOException;
+}
+]]>
+ </para>
+ </blockquote>
+
+ <blockquote>
+ <title>Source code SystemInCardReader implementation.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm.simple.cr;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/** A CardReader implementation that obtains the bank card number from the
+ * standard input.
+ *
+ * @metro.component name="system-in-cardreader" lifestyle="singleton"
+ * @metro.service type="net.dpml.book.atm.CardReader"
+ */
+public class SystemInCardReader
+ implements CardReader
+{
+ public String getCardNumber()
+ {
+ System.out.print( "Enter card number:" );
+ return System.in.readLine();
+ }
+}
+]]>
+ </para>
+ </blockquote>
+ </sect1>
+
+ <sect1>
+ <title>Authentication</title>
+ <para>
+ </para>
+ <blockquote>
+ <title>Source code Authentication service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm;
+
+/**
+ *
+ * @metro.service type="net.dpml.book.atm.Authentication"
+ */
+public interface Authentication
+{
+ String getPinNumber();
+}
+]]>
+ </para>
+ </blockquote>
+ <blockquote>
+ <title>Source code SystemInAuthentication implementation.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm.simple.auth;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/** An Authentication implementation that obtains the PIN number from the
+ * standard input.
+ *
+ * @metro.component name="system-in-authentication" lifestyle="singleton"
+ * @metro.service type="net.dpml.book.atm.Authentication"
+ */
+public class SystemInAuthentication
+ implements Authentication
+{
+ public String getPinNumber()
+ {
+ return System.in.readLine();
+ }
+}
+]]>
+ </para>
+ </blockquote>
+ </sect1>
+
+ <sect1>
+ <title>Backend Provider</title>
+ <para>
+ </para>
+ <blockquote>
+ <title>Source code BackEndProvider service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm;
+
+/**
+ *
+ * @metro.service type="net.dpml.book.atm.BackEnd"
+ */
+public interface BackEnd
+{
+ boolean makeWithDrawal( String pin, String account, String amount );
+}
+]]>
+ </para>
+ </blockquote>
+
+ <blockquote>
+ <title>Source code BackEndProvider service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm.simple.backend;
+
+/**
+ * @metro.component name="simple-backend" lifestyle="singleton"
+ * @metro.service type="net.dpml.book.atm.BackEnd"
+ */
+public class PropertiesAccounts
+ implements BackEnd
+{
+ private Properties m_accounts;
+ private Properties m_pinNumbers;
+ private String m_accountsFilename;
+ public PropertiesAccounts( Parameters params )
+ throws IOException
+ {
+ m_accountsFilename = params.getParameter( "account-filenames" );
+ String pinFilename = params.getParameter( "pin-filename" );
+ m_accounts = loadProperties( m_accountsFilename );
+ m_pinNumbers = loadProperties( pinFilename );
+ }
+
+ public boolean makeWithDrawal( String pin, String account, String amount
)
+ {
+ if( pin == null )
+ throw new IllegalArgumentException( "pin == null" );
+ if( account == null )
+ throw new IllegalArgumentException( "account == null" );
+ if( amount == null )
+ throw new IllegalArgumentException( "amount == null" );
+ if( validatePin( account, pin ) == false )
+ return false;
+ return withDraw( account, amount );
+ }
+
+ private boolean validatePin( String account, String pin )
+ {
+ String correct = m_pinNumbers.getProperty( account );
+ return pin.equals( correct );
+ }
+
+ private boolean withDraw( String account, String amount )
+ {
+ synchronized( m_accounts )
+ {
+ String total = m_accounts.getProperty( account );
+ BigDecimal change = new BigDecimal( amount );
+ BigDecimal balance = new BigDecimal( total );
+ balance = balance.subtract( change );
+ total = balance.toString();
+ m_accounts.setProperty( account, total );
+ saveAccounts();
+ }
+ }
+
+ private Properties loadProperties( String filename )
+ throws IOException
+ {
+ Properties props = new Properties();
+ FileInputStream in = new FileInputStream( filename );
+ props.load( in );
+ return props;
+ }
+
+ private void saveAccounts()
+ throws IOException
+ {
+ synchronized( m_accounts )
+ {
+ FileOutputStream fos = new FileOutputStream( m_accountsFilename
);
+ m_accounts.store( fos );
+ }
+ }
+}
+]]>
+ </para>
+ </blockquote>
+ </sect1>
+
+ <sect1>
+ <title>Money dispensing</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>User interaction flow </title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Tying it all together.</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Running the application</title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/introduction/quickie.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/introduction/quickie.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Quickie - Four Minutes of your life.</title>
+ <?dbhtml filename="quickie.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/magic/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/magic/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/magic/creating-spells.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/magic/creating-spells.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Creating Spells - Wave the wand.</title>
+ <?dbhtml filename="creating-spells.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/docbook/src/docs/magic/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/docbook/src/docs/magic/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY creatingspells.xml SYSTEM "creating-spells.xml">
+<!ENTITY managingprojects.xml SYSTEM "managing-projects.xml">
+<!ENTITY standardspells.xml SYSTEM "standard-spells.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&managingprojects.xml;
+&standardspells.xml;
+&creatingspells.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/docbook/src/docs/magic/managing-projects.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/magic/managing-projects.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Managing Projects - Your key to success.</title>
+ <?dbhtml filename="managing-projects.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/magic/standard-spells.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/magic/standard-spells.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Standard Spells - The candy in the box.</title>
+ <?dbhtml filename="standard-spells.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/metro/component-creation.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/metro/component-creation.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Component Creation - Break your work down.</title>
+ <?dbhtml filename="intro1.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/metro/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/metro/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/metro/deployment.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/metro/deployment.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Deployment - The non-stop action.</title>
+ <?dbhtml filename="deployment.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/metro/extending-metro.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/metro/extending-metro.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Extending Metro - Make it bigger, make it better.</title>
+ <?dbhtml filename="extending-metro.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/docbook/src/docs/metro/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/docbook/src/docs/metro/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY componentcreation.xml SYSTEM "component-creation.xml">
+<!ENTITY deployment.xml SYSTEM "deployment.xml">
+<!ENTITY operations.xml SYSTEM "operations.xml">
+<!ENTITY extendingmetro.xml SYSTEM "extending-metro.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&componentcreation.xml;
+&deployment.xml;
+&operations.xml;
+&extending-metro.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/docbook/src/docs/metro/operations.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/metro/operations.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Operations - Peek and Poke around.</title>
+ <?dbhtml filename="operations.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/transit/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/transit/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/transit/content-urls.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/transit/content-urls.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Content URLs - Where was it again?</title>
+ <?dbhtml filename="content-urls.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/docbook/src/docs/transit/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/docbook/src/docs/transit/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY contenturls.xml SYSTEM "content-urls.xml">
+<!ENTITY oeprations.xml SYSTEM "operations.xml">
+<!ENTITY plugins.xml SYSTEM "plugins.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&contenturls.xml;
+&plugins.xml;
+&operations.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/docbook/src/docs/transit/operations.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/docbook/src/docs/transit/operations.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>In Action - Get your s**t together.</title>
+ <?dbhtml filename="operations.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/docbook/src/docs/transit/plugins.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/docbook/src/docs/transit/plugins.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Plugins - In and Out, as often as you like.</title>
+ <?dbhtml filename="plugins.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/target-eclipse/book.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/book.xml Mon
Apr 18 14:24:31 2005
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY intro.xml SYSTEM "introduction/main.xml">
+<!ENTITY transit.xml SYSTEM "transit/main.xml">
+<!ENTITY magic.xml SYSTEM "magic/main.xml">
+<!ENTITY metro.xml SYSTEM "metro/main.xml">
+<!ENTITY components.xml SYSTEM "components/main.xml">
+]>
+<book>
+ <bookinfo>
+ <title>DPML - The Ultimate Reference</title>
+ <!-- Subversion reference: $Id$ -->
+
+ <authorgroup>
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <author>
+ <surname>McConnell</surname>
+ <firstname>Stephen</firstname>
+ </author>
+ <othercredit>
+ <surname>Neubauer</surname>
+ <firstname>Peter</firstname>
+ </othercredit>
+ </authorgroup>
+
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ <holder>Stephen McConnell</holder>
+ </copyright>
+
+ </bookinfo>
+
+ <preface>
+ <title>Preface</title>
+ <para>
+ This is the beginnings of documentation for the total
+ application solution known as Digital Product Meta Library,
+ or DPML for short.
+ </para>
+
+ </preface>
+
+&introduction.xml;
+&transit.xml;
+&magic.xml;
+&metro.xml;
+&components.xml;
+</book>
+
+

Added:
development/planet/users/niclas/book/target-eclipse/components/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/components/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/components/dpml-planet.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/components/dpml-planet.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>DPML Planet - Components &amp; Plugins for Real
Applications</title>
+ <?dbhtml filename="dpml-planet.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/components/endorsed.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/components/endorsed.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Endorsed Services - The Standards</title>
+ <?dbhtml filename="endorsed.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/target-eclipse/components/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/components/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY dpmlplanet.xml SYSTEM "dpml-planet.xml">
+<!ENTITY endorsed.xml SYSTEM "endorsed.xml">
+<!ENTITY metroextensions.xml SYSTEM "metro-extensions.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&dpmlplanet.xml;
+&endorsed.xml;
+&metroextensions.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/target-eclipse/components/metro-extensions.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/components/metro-extensions.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Metro Extension - Endless Flexibility</title>
+ <?dbhtml filename="metro-extensions.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/introduction/background.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/introduction/background.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Background - How it started.</title>
+ <?dbhtml filename="intro1.html"?>
+
+ <para>
+
+ </para>
+
+ <sect1>
+ <title>The Avalon time</title>
+ <para>
+ </para>
+
+ <sect2>
+ <title>Avalon Framework</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Excalibur Component Manager</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>The Container War</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>The Exit from Apache Software Foundation</title>
+ <para>
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Birth of Digital Product Meta Library - DPML</title>
+ <para>
+ </para>
+
+ <sect2>
+ <title>Open Participation Software</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Refactor-mania</title>
+ <para>
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Expansion phase</title>
+ <!--
+ Put in some explanation around the goals of expanding DPML both
+ product and community wise.
+ -->
+ <para>
+ </para>
+ </sect2>
+ </sect1>
+
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/introduction/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/introduction/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/introduction/installations.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/introduction/installations.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Installations - Put it to work.</title>
+ <?dbhtml filename="installations.html"?>
+
+ <para>
+ DPML itself does not focus on creating binary distributions and leave
that
+ for individuals to shoulder and support the larger user community. It
is
+ not possible to keep this chapter up to date, but we will try to do
our
+ best. We recommmend you to check with DPML website for more
information
+ around the installation procedures and available binary distributions.
+ </para>
+
+ <sect1>
+ <title>Installation from source code.</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Windows Installer from OSM.</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>KDE Installer from Niclas Hedhman.</title>
+ <para>
+ </para>
+ </sect1>
+
+
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/introduction/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/introduction/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY background.xml SYSTEM "background.xml">
+<!ENTITY quickie.xml SYSTEM "quickie.xml">
+<!ENTITY penetrate.xml SYSTEM "penetrate.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+<!ENTITY installations.xml SYSTEM "installations.xml">
+]>
+
+&background.xml;
+&quickie.xml;
+&penetrate.xml;
+&installations.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/target-eclipse/introduction/penetrate.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/introduction/penetrate.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Penetrate - Get in deeper for an hour.</title>
+ <?dbhtml filename="penetrate.html"?>
+
+ <para> This chapter will guide through the creation of a small application
+ that emulates a bank automatic teller machine (ATM) and its interaction
+ with a human being. All non-essential parts has been removed from this
+ tutorial to lessen the total time you need to spend to get a grasp of
many
+ core techniques used in DPML. If you don't type in the text manually,
and
+ instead use the provided source code at the website XXXX, you should be
+ able to complete and comprehend this tutorial in about one hour to two
+ hours, slightly depending on learning ability and time spent to really
+ trying to understand what is going on.
+ </para>
+
+ <sect1>
+ <title>Parts we need</title>
+ <para>
+ This application will emulate or mimick a real ATM, but the
functionality
+ has been reduced to concentrate on the core parts of Metro
functionality,
+ namely configuration, dependencies and classloader management.
+ </para>
+ <para>
+ An ATM has to fulfill the need of the customer, in that it should guide
+ the customer to make a withdrawal of cash from a bank account that is
+ identified by a bank card held by the customer and a PIN code to
+ authenticate that the holder of the bank card is the rightful owner of
+ it. So in our simple application we will need to;
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Read the card put into the ATM.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Request the customer to authenticate himself/herself by entering
+ the PIN number.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ask for an amount to be withdrawn.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Send the withdrawal request to the bank computer and see if it
+ was approved or not.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ If approved, dispense the money.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Thank the customer and go back into an idle mode.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>
+ From this we can see several parts that are fairly standalone, and
+ could be developed in total separation. That provides a high degree
+ of decoupling which means that we can later change one part with
another
+ without affecting any other part of the application.
+ </para>
+ <para>
+ Metro achieves this separation of concerns by the separation of
services
+ and components. The service is a semantic contract of what client code
+ can expect, and what the component, i.e. the service implementation
+ must provide. The client code is not interested in how the
implementation
+ is done, and as we will see later this is one of the core strengths of
+ a component oriented system, like Metro.
+ </para>
+ <para>
+ Let's look at the services that we probably will need.
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Card Reader Service. We need to collect the card number.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ User Interface. We will need to communicate with the user. The
+ interaction sequence is not too complex, and we should be able to
+ abstract it into a simple and usable contract.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Money Dispensing service. The application will at some point tell
+ a service to hand over the cash to the customer.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Backend Service. The ATM terminal communicates with some bank
+ backend computer that manages the transaction.
+ </para>
+ </listitem>
+ </orderedlist>
+ <para>
+
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>User interface</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Card Reader</title>
+ <para>
+ </para>
+ <blockquote>
+ <title>Source code CardReader service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm;
+
+/**
+ * The CardReader service which provides a simplified interface to magnetic
+ * and/or smart card readers.
+ * The service implementation is responsible to handle all the management
+ * aspects of the physical device. The implementation is expected to block
+ * when the <code>getCardNumber</code> method is called.
+ *
+ * @metro.service type="net.dpml.book.atm.CardReader"
+ */
+public interface CardReader
+{
+ String getCurrentCardNumber()
+ throws IOException;
+}
+]]>
+ </para>
+ </blockquote>
+
+ <blockquote>
+ <title>Source code SystemInCardReader implementation.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm.simple.cr;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/** A CardReader implementation that obtains the bank card number from the
+ * standard input.
+ *
+ * @metro.component name="system-in-cardreader" lifestyle="singleton"
+ * @metro.service type="net.dpml.book.atm.CardReader"
+ */
+public class SystemInCardReader
+ implements CardReader
+{
+ public String getCardNumber()
+ {
+ System.out.print( "Enter card number:" );
+ return System.in.readLine();
+ }
+}
+]]>
+ </para>
+ </blockquote>
+ </sect1>
+
+ <sect1>
+ <title>Authentication</title>
+ <para>
+ </para>
+ <blockquote>
+ <title>Source code Authentication service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm;
+
+/**
+ *
+ * @metro.service type="net.dpml.book.atm.Authentication"
+ */
+public interface Authentication
+{
+ String getPinNumber();
+}
+]]>
+ </para>
+ </blockquote>
+ <blockquote>
+ <title>Source code SystemInAuthentication implementation.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm.simple.auth;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/** An Authentication implementation that obtains the PIN number from the
+ * standard input.
+ *
+ * @metro.component name="system-in-authentication" lifestyle="singleton"
+ * @metro.service type="net.dpml.book.atm.Authentication"
+ */
+public class SystemInAuthentication
+ implements Authentication
+{
+ public String getPinNumber()
+ {
+ return System.in.readLine();
+ }
+}
+]]>
+ </para>
+ </blockquote>
+ </sect1>
+
+ <sect1>
+ <title>Backend Provider</title>
+ <para>
+ </para>
+ <blockquote>
+ <title>Source code BackEndProvider service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm;
+
+/**
+ *
+ * @metro.service type="net.dpml.book.atm.BackEnd"
+ */
+public interface BackEnd
+{
+ boolean makeWithDrawal( String pin, String account, String amount );
+}
+]]>
+ </para>
+ </blockquote>
+
+ <blockquote>
+ <title>Source code BackEndProvider service.</title>
+ <para>
+<![CDATA[
+
+package net.dpml.book.atm.simple.backend;
+
+/**
+ * @metro.component name="simple-backend" lifestyle="singleton"
+ * @metro.service type="net.dpml.book.atm.BackEnd"
+ */
+public class PropertiesAccounts
+ implements BackEnd
+{
+ private Properties m_accounts;
+ private Properties m_pinNumbers;
+ private String m_accountsFilename;
+ public PropertiesAccounts( Parameters params )
+ throws IOException
+ {
+ m_accountsFilename = params.getParameter( "account-filenames" );
+ String pinFilename = params.getParameter( "pin-filename" );
+ m_accounts = loadProperties( m_accountsFilename );
+ m_pinNumbers = loadProperties( pinFilename );
+ }
+
+ public boolean makeWithDrawal( String pin, String account, String amount
)
+ {
+ if( pin == null )
+ throw new IllegalArgumentException( "pin == null" );
+ if( account == null )
+ throw new IllegalArgumentException( "account == null" );
+ if( amount == null )
+ throw new IllegalArgumentException( "amount == null" );
+ if( validatePin( account, pin ) == false )
+ return false;
+ return withDraw( account, amount );
+ }
+
+ private boolean validatePin( String account, String pin )
+ {
+ String correct = m_pinNumbers.getProperty( account );
+ return pin.equals( correct );
+ }
+
+ private boolean withDraw( String account, String amount )
+ {
+ synchronized( m_accounts )
+ {
+ String total = m_accounts.getProperty( account );
+ BigDecimal change = new BigDecimal( amount );
+ BigDecimal balance = new BigDecimal( total );
+ balance = balance.subtract( change );
+ total = balance.toString();
+ m_accounts.setProperty( account, total );
+ saveAccounts();
+ }
+ }
+
+ private Properties loadProperties( String filename )
+ throws IOException
+ {
+ Properties props = new Properties();
+ FileInputStream in = new FileInputStream( filename );
+ props.load( in );
+ return props;
+ }
+
+ private void saveAccounts()
+ throws IOException
+ {
+ synchronized( m_accounts )
+ {
+ FileOutputStream fos = new FileOutputStream( m_accountsFilename
);
+ m_accounts.store( fos );
+ }
+ }
+}
+]]>
+ </para>
+ </blockquote>
+ </sect1>
+
+ <sect1>
+ <title>Money dispensing</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>User interaction flow </title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Tying it all together.</title>
+ <para>
+ </para>
+ </sect1>
+
+ <sect1>
+ <title>Running the application</title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/introduction/quickie.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/introduction/quickie.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Quickie - Four Minutes of your life.</title>
+ <?dbhtml filename="quickie.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/magic/conclusion.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/magic/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/magic/creating-spells.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/magic/creating-spells.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Creating Spells - Wave the wand.</title>
+ <?dbhtml filename="creating-spells.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/target-eclipse/magic/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/magic/main.xml Mon
Apr 18 14:24:31 2005
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY creatingspells.xml SYSTEM "creating-spells.xml">
+<!ENTITY managingprojects.xml SYSTEM "managing-projects.xml">
+<!ENTITY standardspells.xml SYSTEM "standard-spells.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&managingprojects.xml;
+&standardspells.xml;
+&creatingspells.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/target-eclipse/magic/managing-projects.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/magic/managing-projects.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Managing Projects - Your key to success.</title>
+ <?dbhtml filename="managing-projects.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/magic/standard-spells.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/magic/standard-spells.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Standard Spells - The candy in the box.</title>
+ <?dbhtml filename="standard-spells.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/metro/component-creation.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/metro/component-creation.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Component Creation - Break your work down.</title>
+ <?dbhtml filename="intro1.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/metro/conclusion.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/metro/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/metro/deployment.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/metro/deployment.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Deployment - The non-stop action.</title>
+ <?dbhtml filename="deployment.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/metro/extending-metro.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/metro/extending-metro.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Extending Metro - Make it bigger, make it better.</title>
+ <?dbhtml filename="extending-metro.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/target-eclipse/metro/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/metro/main.xml Mon
Apr 18 14:24:31 2005
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY componentcreation.xml SYSTEM "component-creation.xml">
+<!ENTITY deployment.xml SYSTEM "deployment.xml">
+<!ENTITY operations.xml SYSTEM "operations.xml">
+<!ENTITY extendingmetro.xml SYSTEM "extending-metro.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&componentcreation.xml;
+&deployment.xml;
+&operations.xml;
+&extending-metro.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/target-eclipse/metro/operations.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/metro/operations.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Operations - Peek and Poke around.</title>
+ <?dbhtml filename="operations.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/Authentication.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/BackEndProvider.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/CardReader.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/Dispense.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/UserInterface.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/WithdrawalException.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/app/ATM.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/accounts/SimpleAccountManager.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/auth/SimpleAuthentication.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/card/SimpleCardReader.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/dispense/SimpleDispense.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/net/dpml/book/atm/simple/ui/ConsoleUi.class
==============================================================================
Binary file. No diff available.

Added:
development/planet/users/niclas/book/target-eclipse/transit/conclusion.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/transit/conclusion.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Conclusion</title>
+ <?dbhtml filename="conclusion.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added:
development/planet/users/niclas/book/target-eclipse/transit/content-urls.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/transit/content-urls.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Content URLs - Where was it again?</title>
+ <?dbhtml filename="content-urls.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/target-eclipse/transit/main.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/transit/main.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"; [
+<!ENTITY contenturls.xml SYSTEM "content-urls.xml">
+<!ENTITY oeprations.xml SYSTEM "operations.xml">
+<!ENTITY plugins.xml SYSTEM "plugins.xml">
+<!ENTITY conclusion.xml SYSTEM "conclusion.xml">
+]>
+
+&contenturls.xml;
+&plugins.xml;
+&operations.xml;
+&conclusion.xml;

Added:
development/planet/users/niclas/book/target-eclipse/transit/operations.xml
==============================================================================
--- (empty file)
+++
development/planet/users/niclas/book/target-eclipse/transit/operations.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>In Action - Get your s**t together.</title>
+ <?dbhtml filename="operations.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file

Added: development/planet/users/niclas/book/target-eclipse/transit/plugins.xml
==============================================================================
--- (empty file)
+++ development/planet/users/niclas/book/target-eclipse/transit/plugins.xml
Mon Apr 18 14:24:31 2005
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter>
+ <chapterinfo>
+ <releaseinfo role="meta">
+ $Id$
+ </releaseinfo>
+
+ <author>
+ <surname>Hedhman</surname>
+ <firstname>Niclas</firstname>
+ </author>
+ <copyright>
+ <year>2005</year>
+ <holder>Niclas Hedhman</holder>
+ </copyright>
+
+ </chapterinfo>
+
+ <title>Plugins - In and Out, as often as you like.</title>
+ <?dbhtml filename="plugins.html"?>
+
+ <sect1>
+ <title></title>
+ <para>
+ </para>
+ </sect1>
+</chapter>
\ No newline at end of file



  • svn commit: r2305 - in development/planet/users/niclas/book: . atm atm/api atm/api/src atm/api/src/main atm/api/src/main/net atm/api/src/main/net/dpml atm/api/src/main/net/dpml/book atm/api/src/main/net/dpml/book/atm atm/simple atm/simple/accounts atm/simple/accounts/src atm/simple/accounts/src/main atm/simple/accounts/src/main/net atm/simple/accounts/src/main/net/dpml atm/simple/accounts/src/main/net/dpml/book atm/simple/accounts/src/main/net/dpml/book/atm atm/simple/accounts/src/main/net/dpml/book/atm/simple atm/simple/accounts/src/main/net/dpml/book/atm/simple/accounts atm/simple/app atm/simple/app/src atm/simple/app/src/main atm/simple/app/src/main/net atm/simple/app/src/main/net/dpml atm/simple/app/src/main/net/dpml/book atm/simple/app/src/main/net/dpml/book/atm atm/simple/app/src/main/net/dpml/book/atm/app atm/simple/authentication atm/simple/authentication/src atm/simple/authentication/src/main atm/simple/authentication/src/main/net atm/simple/authentication/src/main/net/dpml atm/simple/authentication/src/main/net/dpml/book atm/simple/authentication/src/main/net/dpml/book/atm atm/simple/authentication/src/main/net/dpml/book/atm/simple atm/simple/authentication/src/main/net/dpml/book/atm/simple/auth atm/simple/cardreader atm/simple/cardreader/src atm/simple/cardreader/src/main atm/simple/cardreader/src/main/net atm/simple/cardreader/src/main/net/dpml atm/simple/cardreader/src/main/net/dpml/book atm/simple/cardreader/src/main/net/dpml/book/atm atm/simple/cardreader/src/main/net/dpml/book/atm/simple atm/simple/cardreader/src/main/net/dpml/book/atm/simple/card atm/simple/dispensing atm/simple/dispensing/src atm/simple/dispensing/src/main atm/simple/dispensing/src/main/net atm/simple/dispensing/src/main/net/dpml atm/simple/dispensing/src/main/net/dpml/book atm/simple/dispensing/src/main/net/dpml/book/atm atm/simple/dispensing/src/main/net/dpml/book/atm/simple atm/simple/dispensing/src/main/net/dpml/book/atm/simple/dispense atm/simple/userinterface atm/simple/userinterface/src atm/simple/userinterface/src/main atm/simple/userinterface/src/main/net atm/simple/userinterface/src/main/net/dpml atm/simple/userinterface/src/main/net/dpml/book atm/simple/userinterface/src/main/net/dpml/book/atm atm/simple/userinterface/src/main/net/dpml/book/atm/simple atm/simple/userinterface/src/main/net/dpml/book/atm/simple/ui docbook docbook/src docbook/src/docs docbook/src/docs/components docbook/src/docs/introduction docbook/src/docs/magic docbook/src/docs/metro docbook/src/docs/transit target-eclipse target-eclipse/components target-eclipse/introduction target-eclipse/magic target-eclipse/metro target-eclipse/net target-eclipse/net/dpml target-eclipse/net/dpml/book target-eclipse/net/dpml/book/atm target-eclipse/net/dpml/book/atm/app target-eclipse/net/dpml/book/atm/simple target-eclipse/net/dpml/book/atm/simple/accounts target-eclipse/net/dpml/book/atm/simple/auth target-eclipse/net/dpml/book/atm/simple/card target-eclipse/net/dpml/book/atm/simple/dispense target-eclipse/net/dpml/book/atm/simple/ui target-eclipse/transit, niclas, 04/18/2005

Archive powered by MHonArc 2.6.24.

Top of Page