You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by vt...@apache.org on 2004/11/18 03:20:51 UTC
svn commit: rev 76211 - in incubator/directory/janus/trunk/script/src: java/org/apache/janus/script/xml test/org/apache/janus/script/xml
Author: vtence
Date: Wed Nov 17 18:20:49 2004
New Revision: 76211
Modified:
incubator/directory/janus/trunk/script/src/java/org/apache/janus/script/xml/Dom4JRealmBuilder.java
incubator/directory/janus/trunk/script/src/test/org/apache/janus/script/xml/Dom4JRealmBuilderTest.java
Log:
Refactored to factory method when supplying a reader
Modified: incubator/directory/janus/trunk/script/src/java/org/apache/janus/script/xml/Dom4JRealmBuilder.java
==============================================================================
--- incubator/directory/janus/trunk/script/src/java/org/apache/janus/script/xml/Dom4JRealmBuilder.java (original)
+++ incubator/directory/janus/trunk/script/src/java/org/apache/janus/script/xml/Dom4JRealmBuilder.java Wed Nov 17 18:20:49 2004
@@ -24,9 +24,9 @@
import org.apache.janus.script.NullRealmBuilderMonitor;
import org.apache.janus.script.RealmBuilder;
import org.apache.janus.script.RealmBuilderMonitor;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
import org.dom4j.Element;
+import org.dom4j.DocumentException;
+import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import java.io.IOException;
@@ -46,15 +46,26 @@
private final RealmBuilderMonitor m_monitor;
private Element m_root;
- public Dom4JRealmBuilder( Reader reader ) throws DocumentException
+ public static Dom4JRealmBuilder fromReader( Reader reader ) throws DocumentException
{
- this( reader, new NullRealmBuilderMonitor() );
+ Document doc = readDocument( reader );
+ return new Dom4JRealmBuilder( doc );
}
- public Dom4JRealmBuilder( Reader reader, RealmBuilderMonitor monitor )
- throws DocumentException
+ public static Dom4JRealmBuilder fromReader( Reader reader, RealmBuilderMonitor monitor ) throws DocumentException
{
- this( readDocument( reader ).getRootElement(), monitor );
+ Document doc = readDocument( reader );
+ return new Dom4JRealmBuilder( doc, monitor );
+ }
+
+ public Dom4JRealmBuilder( Document doc )
+ {
+ this( doc, new NullRealmBuilderMonitor() );
+ }
+
+ public Dom4JRealmBuilder( Document doc, RealmBuilderMonitor monitor )
+ {
+ this( doc.getRootElement(), monitor );
}
public Dom4JRealmBuilder( Element element )
@@ -70,31 +81,39 @@
public void buildRealm( MutableRealm realm ) throws IOException
{
- addUsers( realm, m_root );
+ addUsers( realm, m_root.elements( "user" ) );
}
- private void addUsers( MutableRealm realm, Element users )
+ private void addUsers( MutableRealm realm, List users )
{
- List userList = users.elements( "user" );
-
- for ( Iterator it = userList.iterator(); it.hasNext(); )
+ for ( Iterator it = users.iterator(); it.hasNext(); )
{
final Element user = ( Element ) it.next();
- CredentialSet creds = new CredentialSet();
- String username = user.attributeValue( "username" );
- creds.add( new UsernameCredential( username ) );
- String password = user.attributeValue( "password" );
- creds.add( new PasswordCredential( password ) );
-
- try
- {
- realm.addIdentity( creds );
- }
- catch ( IdentityInUseException e )
- {
- m_monitor.duplicateIdentity( e );
- }
+ CredentialSet creds = createCredentials( user );
+ addIdentity( realm, creds );
}
+ }
+
+ private void addIdentity( MutableRealm realm, CredentialSet creds )
+ {
+ try
+ {
+ realm.addIdentity( creds );
+ }
+ catch ( IdentityInUseException e )
+ {
+ m_monitor.duplicateIdentity( e );
+ }
+ }
+
+ private CredentialSet createCredentials( final Element user )
+ {
+ CredentialSet creds = new CredentialSet();
+ String username = user.attributeValue( "username" );
+ creds.add( new UsernameCredential( username ) );
+ String password = user.attributeValue( "password" );
+ creds.add( new PasswordCredential( password ) );
+ return creds;
}
private static Document readDocument( Reader reader ) throws DocumentException
Modified: incubator/directory/janus/trunk/script/src/test/org/apache/janus/script/xml/Dom4JRealmBuilderTest.java
==============================================================================
--- incubator/directory/janus/trunk/script/src/test/org/apache/janus/script/xml/Dom4JRealmBuilderTest.java (original)
+++ incubator/directory/janus/trunk/script/src/test/org/apache/janus/script/xml/Dom4JRealmBuilderTest.java Wed Nov 17 18:20:49 2004
@@ -40,7 +40,7 @@
public void testAddsIdentitiesToRealm() throws Exception
{
- Dom4JRealmBuilder builder = new Dom4JRealmBuilder( new StringReader( simpleRealm() ) );
+ Dom4JRealmBuilder builder = Dom4JRealmBuilder.fromReader( new StringReader( simpleRealm() ) );
Mock mockRealm = new Mock( MutableRealm.class );
mockRealm.expects( once() ).method( "addIdentity" ).with( eq( johnCredentials() ) );
@@ -80,7 +80,7 @@
public void testNotifiesOfDuplicateIdentities() throws Exception
{
Mock mockMonitor = new Mock( RealmBuilderMonitor.class );
- Dom4JRealmBuilder builder = new Dom4JRealmBuilder( new StringReader( realmWithDuplicateIdentity() ),
+ Dom4JRealmBuilder builder = Dom4JRealmBuilder.fromReader( new StringReader( realmWithDuplicateIdentity() ),
( RealmBuilderMonitor ) mockMonitor.proxy() );
mockMonitor.expects( once() ).method( "duplicateIdentity" );