# HG changeset patch # User Ingo Weinzierl # Date 1299051360 0 # Node ID 147610c43863a7fcbf68371cff1870d4a852f454 # Parent 10d726907419ff6a9c935f7452336928fb378cb9 The UserFactory got a setup() method that is called while bootstrap. artifacts/trunk@1354 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 10d726907419 -r 147610c43863 ChangeLog --- a/ChangeLog Wed Mar 02 07:28:20 2011 +0000 +++ b/ChangeLog Wed Mar 02 07:36:00 2011 +0000 @@ -1,3 +1,16 @@ +2011-03-02 Ingo Weinzierl + + * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java, + artifacts/src/main/java/de/intevation/artifacts/UserFactory.java: Added + a setup method like the artifact factories have. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java: + Added an import statement for the UserFactory that was missing here. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java: + The setup() method of the UserFactory is called after the concrete + factory class has been instantiated. + 2011-03-02 Ingo Weinzierl * artifacts/pom.xml: Bugfix: We are able to compile the artifacts package diff -r 10d726907419 -r 147610c43863 artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Wed Mar 02 07:28:20 2011 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Wed Mar 02 07:36:00 2011 +0000 @@ -20,6 +20,7 @@ import de.intevation.artifacts.CallMeta; import de.intevation.artifacts.Service; import de.intevation.artifacts.ServiceFactory; +import de.intevation.artifacts.UserFactory; import java.io.IOException; import java.io.OutputStream; diff -r 10d726907419 -r 147610c43863 artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java Wed Mar 02 07:28:20 2011 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java Wed Mar 02 07:36:00 2011 +0000 @@ -11,6 +11,7 @@ import org.apache.log4j.Logger; import org.w3c.dom.Document; +import org.w3c.dom.Node; import de.intevation.artifacts.User; import de.intevation.artifacts.UserFactory; @@ -35,6 +36,11 @@ } + public void setup(Document config, Node factoryNode) { + logger.debug("DefaultUserFactory.setup"); + } + + /** * This method creates a new DefaultUser with the given identifier, name and * role. diff -r 10d726907419 -r 147610c43863 artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java Wed Mar 02 07:28:20 2011 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java Wed Mar 02 07:36:00 2011 +0000 @@ -18,6 +18,7 @@ import org.apache.log4j.Logger; import org.w3c.dom.Document; +import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** @@ -62,7 +63,7 @@ * configuration. */ public static final String USER_FACTORY = - "/artfifact-database/factories/user-factory/text()"; + "/artfifact-database/factories/user-factory"; /** * The name of the default user factory. @@ -263,12 +264,16 @@ protected void loadUserFactory() { logger.info("loading user factory"); + Node factory = Config.getNodeXPath(USER_FACTORY); + String className = Config.getStringXPath( - USER_FACTORY, DEFAULT_USER_FACTORY); + factory, "text()", DEFAULT_USER_FACTORY); try { Class clazz = Class.forName(className); userFactory = (UserFactory) clazz.newInstance(); + + userFactory.setup(Config.getConfig(), factory); } catch (ClassNotFoundException cnfe) { logger.error(cnfe.getLocalizedMessage(), cnfe); diff -r 10d726907419 -r 147610c43863 artifacts/src/main/java/de/intevation/artifacts/UserFactory.java --- a/artifacts/src/main/java/de/intevation/artifacts/UserFactory.java Wed Mar 02 07:28:20 2011 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/UserFactory.java Wed Mar 02 07:36:00 2011 +0000 @@ -8,11 +8,14 @@ package de.intevation.artifacts; import org.w3c.dom.Document; +import org.w3c.dom.Node; import java.io.Serializable; public interface UserFactory { + void setup(Document config, Node factoryNode); + User createUser(String identifier, String name, Document role, Object context); void deleteUser(User user, Object context);