Skip to Content.
Sympa Menu

notify-dpml - svn commit: r2741 - in development/main: depot/prefs/src/main/net/dpml/depot/prefs metro/composition/content/src/main/net/dpml/composition/content test/unit/plus/src/test/net/dpml/test/acme/plus transit/core/handler/src/main/net/dpml/transit transit/core/handler/src/main/net/dpml/transit/builder transit/core/handler/src/main/net/dpml/transit/cache transit/core/handler/src/main/net/dpml/transit/content transit/core/handler/src/main/net/dpml/transit/control transit/core/handler/src/main/net/dpml/transit/layout transit/core/handler/src/main/net/dpml/transit/management transit/core/handler/src/main/net/dpml/transit/manager transit/core/handler/src/main/net/dpml/transit/model transit/core/handler/src/main/net/dpml/transit/repository transit/core/handler/src/main/net/dpml/transit/store transit/core/handler/src/test/net/dpml/transit/builder transit/core/handler/src/test/net/dpml/transit/manager transit/core/handler/src/test/net/dpml/transit/test transit/core/tools/src/main/net/dpml/transit/tools

notify-dpml AT lists.ibiblio.org

Subject: DPML Notify

List archive

Chronological Thread  
  • From: mcconnell AT dpml.net
  • To: notify-dpml AT lists.ibiblio.org
  • Subject: svn commit: r2741 - in development/main: depot/prefs/src/main/net/dpml/depot/prefs metro/composition/content/src/main/net/dpml/composition/content test/unit/plus/src/test/net/dpml/test/acme/plus transit/core/handler/src/main/net/dpml/transit transit/core/handler/src/main/net/dpml/transit/builder transit/core/handler/src/main/net/dpml/transit/cache transit/core/handler/src/main/net/dpml/transit/content transit/core/handler/src/main/net/dpml/transit/control transit/core/handler/src/main/net/dpml/transit/layout transit/core/handler/src/main/net/dpml/transit/management transit/core/handler/src/main/net/dpml/transit/manager transit/core/handler/src/main/net/dpml/transit/model transit/core/handler/src/main/net/dpml/transit/repository transit/core/handler/src/main/net/dpml/transit/store transit/core/handler/src/test/net/dpml/transit/builder transit/core/handler/src/test/net/dpml/transit/manager transit/core/handler/src/test/net/dpml/transit/test transit/core/tools/src/main/net/dpml/transit/tools
  • Date: Tue, 07 Jun 2005 02:41:37 -0400

Author: mcconnell AT dpml.net
Date: Tue Jun 7 02:41:36 2005
New Revision: 2741

Added:

development/main/transit/core/handler/src/main/net/dpml/transit/builder/AbstractStorageUnit.java
- copied, changed from r2728,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/AbstractStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/CacheStorageUnit.java
- copied, changed from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/CacheHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentRegistryStorageUnit.java
- copied, changed from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentRegistryHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentStorageUnit.java
- copied, changed from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/HostStorageUnit.java
- copied, changed from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/HostHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutRegistryStorageUnit.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutStorageUnit.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/ProxyStorageUnit.java
- copied, changed from r2726,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ProxyStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryStorageUnit.java
- copied, changed from r2729,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitStorageUnit.java
- copied, changed from r2729,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/PreferencesStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/CacheHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentRegistryHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/Home.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/HostHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/LayoutHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/LayoutRegistryHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/PluginHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/ProxyHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/RepositoryHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/TransitHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/model/ModelRuntimeException.java
Removed:

development/main/transit/core/handler/src/main/net/dpml/transit/builder/AbstractStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/CacheHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentRegistryHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/HostHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutRegistryHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/PreferencesHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/PreferencesStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/ProxyStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryHelper.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryStorageHome.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitHome.java
development/main/transit/core/handler/src/main/net/dpml/transit/control/
development/main/transit/core/handler/src/main/net/dpml/transit/store/
development/main/transit/core/handler/src/test/net/dpml/transit/builder/
Modified:

development/main/depot/prefs/src/main/net/dpml/depot/prefs/DepotPreferencesPanel.java
development/main/depot/prefs/src/main/net/dpml/depot/prefs/Main.java

development/main/metro/composition/content/src/main/net/dpml/composition/content/CompositionContentHandlerRegistry.java

development/main/test/unit/plus/src/test/net/dpml/test/acme/plus/URLTestCase.java

development/main/transit/core/handler/src/main/net/dpml/transit/SecuredTransitContext.java

development/main/transit/core/handler/src/main/net/dpml/transit/Transit.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/BuilderException.java

development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitPreferences.java

development/main/transit/core/handler/src/main/net/dpml/transit/cache/DefaultCacheHandler.java

development/main/transit/core/handler/src/main/net/dpml/transit/content/DefaultContentRegistry.java

development/main/transit/core/handler/src/main/net/dpml/transit/layout/DefaultLayoutRegistry.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/CacheManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentRegistryManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/Manager.java

development/main/transit/core/handler/src/main/net/dpml/transit/management/TransitManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultCacheManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentRegistryManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultHostManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutRegistryManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultPluginManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultProxyManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultRepositoryManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultTransitManager.java

development/main/transit/core/handler/src/main/net/dpml/transit/model/CacheModel.java

development/main/transit/core/handler/src/main/net/dpml/transit/model/TransitModel.java

development/main/transit/core/handler/src/main/net/dpml/transit/repository/Repository.java

development/main/transit/core/handler/src/test/net/dpml/transit/manager/ProxyManagerTestCase.java

development/main/transit/core/handler/src/test/net/dpml/transit/manager/TransitManagerTestCase.java

development/main/transit/core/handler/src/test/net/dpml/transit/test/LinkTestCase.java

development/main/transit/core/handler/src/test/net/dpml/transit/test/OfflineTestCase.java

development/main/transit/core/handler/src/test/net/dpml/transit/test/OnlineTestCase.java

development/main/transit/core/tools/src/main/net/dpml/transit/tools/ImportArtifactTask.java
Log:
Updates dealing with the separation of the transit management model from the
underlying storage strategy.

Modified:
development/main/depot/prefs/src/main/net/dpml/depot/prefs/DepotPreferencesPanel.java
==============================================================================
---
development/main/depot/prefs/src/main/net/dpml/depot/prefs/DepotPreferencesPanel.java
(original)
+++
development/main/depot/prefs/src/main/net/dpml/depot/prefs/DepotPreferencesPanel.java
Tue Jun 7 02:41:36 2005
@@ -110,7 +110,7 @@
public void run()
{
final CacheManager cache = m_manager.getCacheManager();
- final LayoutRegistryManager layouts =
m_manager.getLayoutRegistryManager();
+ final LayoutRegistryManager layouts =
cache.getLayoutRegistryManager();
m_layoutPanel = new LayoutRegistryManagerPanel( m_window,
layouts );
m_cachePanel = new CacheManagerPanel( m_window, cache,
layouts );
tabbedPane.addTab( "Cache", m_cachePanel );

Modified: development/main/depot/prefs/src/main/net/dpml/depot/prefs/Main.java
==============================================================================
--- development/main/depot/prefs/src/main/net/dpml/depot/prefs/Main.java
(original)
+++ development/main/depot/prefs/src/main/net/dpml/depot/prefs/Main.java
Tue Jun 7 02:41:36 2005
@@ -27,8 +27,8 @@
import net.dpml.transit.Transit;
import net.dpml.transit.adapter.LoggingAdapter;
import net.dpml.transit.management.TransitManager;
-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.management.TransitHome;
+import net.dpml.transit.builder.TransitStorageUnit;
import net.dpml.transit.model.Logger;

/**
@@ -69,9 +69,9 @@
Preferences prefs = Preferences.userNodeForPackage( Transit.class );
try
{
- TransitHome home = new PreferencesStorageHome();
- home.setLogger( logger );
+ TransitHome home = new TransitStorageUnit();
home.setPersistOnModification( true );
+ home.setLogger( logger );
TransitManager manager = home.create();
Transit.getInstance( manager );
new DepotPreferencesFrame( manager );

Modified:
development/main/metro/composition/content/src/main/net/dpml/composition/content/CompositionContentHandlerRegistry.java
==============================================================================
---
development/main/metro/composition/content/src/main/net/dpml/composition/content/CompositionContentHandlerRegistry.java
(original)
+++
development/main/metro/composition/content/src/main/net/dpml/composition/content/CompositionContentHandlerRegistry.java
Tue Jun 7 02:41:36 2005
@@ -79,8 +79,7 @@
Date creation = new Date();
Logger logger = manager.getLogger().getChildLogger( PART );
URI uri = new URI( PART_HANDLER_PLUGIN_PATH );
- ContentManager m = new DefaultContentManager( logger,
creation, uri, PART, TITLE );
- manager.addContentManager( m );
+ manager.addContentManager( PART, TITLE, uri );
}
catch( Throwable e )
{

Modified:
development/main/test/unit/plus/src/test/net/dpml/test/acme/plus/URLTestCase.java
==============================================================================
---
development/main/test/unit/plus/src/test/net/dpml/test/acme/plus/URLTestCase.java
(original)
+++
development/main/test/unit/plus/src/test/net/dpml/test/acme/plus/URLTestCase.java
Tue Jun 7 02:41:36 2005
@@ -32,8 +32,8 @@
import net.dpml.test.acme.Dimension;

import net.dpml.transit.Transit;
-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.builder.TransitStorageUnit;
+import net.dpml.transit.management.TransitHome;
import net.dpml.transit.management.TransitManager;

/**
@@ -127,8 +127,7 @@
{
URI uri = new URI( CONTENT_MANAGER_PLUGIN );
Preferences prefs = Preferences.userNodeForPackage(
Transit.class ).node( "test" ).node( "urls" );
- TransitHome home = new PreferencesStorageHome();
- home.setPreferences( prefs );
+ TransitHome home = new TransitStorageUnit( prefs );
home.clearBeforeInitialization( true );
TransitManager MANAGER = home.create();
MANAGER.getContentRegistryManager().setPluginURI( uri );

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/SecuredTransitContext.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/SecuredTransitContext.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/SecuredTransitContext.java
Tue Jun 7 02:41:36 2005
@@ -163,11 +163,6 @@
private ContentRegistry m_registry;

/**
- * The registry.
- */
- private LayoutRegistry m_layout;
-
- /**
* Logging channel.
*/
private Logger m_logger;
@@ -202,17 +197,13 @@
// (see SecuredTransitContext.initialize() )
//

- LayoutRegistryModel layoutModel = model.getLayoutRegistryModel();
- LayoutRegistry layout = new DefaultLayoutRegistry( layoutModel );
- ClassicLayout resolver = new ClassicLayout();
CacheModel cacheModel = model.getCacheModel();
- DefaultCacheHandler cache = new DefaultCacheHandler( cacheModel,
resolver );
+ DefaultCacheHandler cache = new DefaultCacheHandler( cacheModel );
ContentRegistryModel registryModel = model.getContentRegistryModel();
ContentRegistry registry = new DefaultContentRegistry( registryModel
);

m_cacheHandler = cache;
m_registry = registry;
- m_layout = layout;
m_logger = model.getLogger();
m_listener = new TransitListener();

@@ -353,7 +344,7 @@
m_logger.error( error, e );
}
}
- }
+ }
}

/**
@@ -415,7 +406,7 @@
catch( Throwable e )
{
final String error =
- "Critical error occured while attempting to establish
default content management subsystem.";
+ "Critical error while attempting to establish content
management subsystem.";
throw new TransitError( error, e );
}
}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/Transit.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/Transit.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/Transit.java
Tue Jun 7 02:41:36 2005
@@ -44,11 +44,11 @@

import net.dpml.transit.model.Logger;
import net.dpml.transit.model.TransitModel;
+import net.dpml.transit.management.TransitHome;
import net.dpml.transit.management.TransitManager;
import net.dpml.transit.manager.DefaultTransitManager;
import net.dpml.transit.adapter.LoggingAdapter;
-import net.dpml.transit.builder.PreferencesStorageHome;
-import net.dpml.transit.builder.TransitHome;
+import net.dpml.transit.builder.TransitStorageUnit;

/**
* The Transit class manages the establishment of a singleton transit
instance
@@ -154,7 +154,7 @@
{
try
{
- TransitHome home = new PreferencesStorageHome();
+ TransitHome home = new TransitStorageUnit();
TransitModel model = home.create();
return getInstance( model );
}

Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/AbstractStorageUnit.java
(from r2728,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/AbstractStorageHome.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/AbstractStorageHome.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/AbstractStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -31,14 +31,14 @@
* Utility class that provides support for the creation of URI and URL
* values from preference attributes.
*/
-class AbstractStorageHome
+class AbstractStorageUnit
{
private Preferences m_prefs;
private boolean m_policy;
private Logger m_logger;
private Date m_creation;

- public AbstractStorageHome( Preferences prefs, Logger logger, Date
creation, boolean policy )
+ public AbstractStorageUnit( Preferences prefs, Logger logger, Date
creation, boolean policy )
{
m_prefs = prefs;
m_policy = policy;

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/BuilderException.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/BuilderException.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/BuilderException.java
Tue Jun 7 02:41:36 2005
@@ -18,7 +18,7 @@

package net.dpml.transit.builder;

-import net.dpml.transit.model.ModelException;
+import net.dpml.transit.model.ModelRuntimeException;

/**
* Exception raised when an attempt is made to associate a plugin based model
@@ -26,7 +26,7 @@
*
* @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
*/
-public class BuilderException extends ModelException
+public class BuilderException extends ModelRuntimeException
{
/**
* Construct a new <code>BuilderException</code> instance.

Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/CacheStorageUnit.java
(from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/CacheHelper.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/CacheHelper.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/CacheStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -26,13 +26,18 @@
import java.util.prefs.BackingStoreException;

import net.dpml.transit.model.Logger;
-import net.dpml.transit.model.LayoutRegistryModel;
import net.dpml.transit.model.UnknownKeyException;
import net.dpml.transit.model.DuplicateKeyException;
+import net.dpml.transit.model.LayoutRegistryModel;
+import net.dpml.transit.model.LayoutModel;

-import net.dpml.transit.management.ContentRegistryManager;
+import net.dpml.transit.management.CacheHome;
import net.dpml.transit.management.CacheManager;
+import net.dpml.transit.management.ContentRegistryManager;
+import net.dpml.transit.management.LayoutManager;
import net.dpml.transit.management.HostManager;
+import net.dpml.transit.management.ModificationEvent;
+import net.dpml.transit.management.LayoutRegistryManager;

import net.dpml.transit.manager.DefaultCacheManager;

@@ -42,26 +47,147 @@
* The LayoutRegistryHelper class provides support for the crreating of a
* ContentRegistryManager based on a supplied preferences node.
*/
-class CacheHelper extends HostHelper
+class CacheStorageUnit extends AbstractStorageUnit implements CacheHome
{
- public static CacheManager createCacheManager(
- LayoutRegistryModel registry, Logger logger, Date creation,
Preferences prefs )
- throws BackingStoreException, UnknownKeyException,
DuplicateKeyException, BuilderException
- {
- File cache = getCacheDirectory( prefs );
- Preferences hostsNode = prefs.node( "hosts" );
- ArrayList list = new ArrayList();
- String[] names = hostsNode.childrenNames();
- for( int i=0; i<names.length; i++ )
- {
- String name = names[i];
- Preferences p = hostsNode.node( name );
- HostManager manager = createHostManager( registry, logger,
creation, p );
- list.add( manager );
- }
- HostManager[] managers = (HostManager[]) list.toArray( new
HostManager[0] );
- URI uri = getURI( prefs, "uri" );
- return new DefaultCacheManager( logger, creation, uri, registry,
cache, managers );
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ private CacheManager m_manager;
+ private LayoutRegistryManager m_registry;
+
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ CacheStorageUnit( Preferences prefs, Logger logger, Date creation,
boolean policy )
+ {
+ super( prefs, logger, creation, policy );
+
+ m_registry = createLayoutRegistryManager();
+
+ String key = prefs.get( "layout", "classic" );
+ LayoutModel layout = getLayoutModel( m_registry, key );
+ File cache = getCacheDirectory();
+ HostManager[] hosts = createHostManagers();
+
+ URI uri = getURI( "uri" );
+ try
+ {
+ m_manager = new DefaultCacheManager(
+ logger, creation, this, uri, cache, hosts, layout, m_registry
);
+ }
+ catch( DuplicateKeyException e )
+ {
+ final String error =
+ "Unable to construct cache management due to conflicting host
identifies.";
+ throw new BuilderException( error, e );
+ }
+ }
+
+ private LayoutRegistryManager createLayoutRegistryManager()
+ {
+ Preferences prefs = getPreferences().node( "layout" );
+ Logger logger = getLogger().getChildLogger( "layout" );
+ Date creation = getCreationDate();
+ boolean policy = getStoragePolicy();
+
+ try
+ {
+ LayoutRegistryStorageUnit unit =
+ new LayoutRegistryStorageUnit( prefs, logger, creation, policy
);
+ return unit.getLayoutRegistryManager();
+ }
+ catch( DuplicateKeyException e )
+ {
+ final String error =
+ "Unable to construct layout registry manager due to a
duplicate layout key.";
+ throw new BuilderException( error, e );
+ }
+ }
+
+ private LayoutModel getLayoutModel( LayoutRegistryModel registry, String
key )
+ {
+ try
+ {
+ return registry.getLayoutModel( key );
+ }
+ catch( UnknownKeyException e )
+ {
+ final String error =
+ "Unable to construct cache storage unit due unknown layout
key.";
+ throw new BuilderException( error, e );
+ }
+ }
+
+ //
------------------------------------------------------------------------
+ // CacheHome
+ //
------------------------------------------------------------------------
+
+ public HostManager createHostManager( String id ) throws BuilderException
+ {
+ if( null == m_registry )
+ {
+ throw new IllegalStateException( "registry" );
+ }
+
+ Preferences prefs = getHostsNodePreferences().node( id );
+ Logger logger = getLogger().getChildLogger( id );
+ Date creation = getCreationDate();
+ boolean policy = getStoragePolicy();
+ HostStorageUnit unit = new HostStorageUnit( prefs, logger, creation,
policy );
+ return unit.createHostManager( m_registry );
+ }
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
+ {
+ CacheManager manager = (CacheManager) event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
+ }
+ }
+
+ //
------------------------------------------------------------------------
+ // impl
+ //
------------------------------------------------------------------------
+
+ CacheManager getCacheManager()
+ {
+ return m_manager;
+ }
+
+ private HostManager[] createHostManagers()
+ {
+ Preferences prefs = getHostsNodePreferences();
+ try
+ {
+ ArrayList list = new ArrayList();
+ String[] names = prefs.childrenNames();
+ for( int i=0; i<names.length; i++ )
+ {
+ String name = names[i];
+ HostManager host = createHostManager( name );
+ list.add( host );
+ }
+ return (HostManager[]) list.toArray( new HostManager[0] );
+ }
+ catch( Exception e )
+ {
+ final String error =
+ "Unexpected error while constructing cache manager hosts.";
+ throw new BuilderException( error, e );
+ }
}

/**
@@ -69,23 +195,40 @@
* @param prefs the cache preferences
* @return the cache directory
*/
- private static File getCacheDirectory( Preferences prefs )
+ private File getCacheDirectory()
{
+ Preferences prefs = getPreferences();
String path = prefs.get( "location", "cache" );
String cache = PropertyResolver.resolve( System.getProperties(),
path );
return new File( cache );
}

+ private void store( CacheManager manager )
+ {
+ Preferences prefs = getPreferences();
+ Logger logger = getLogger();
+ Date creation = getCreationDate();
+
+ File cache = manager.getCacheDirectory();
+ setCacheDirectory( cache );
+
+ URI uri = manager.getPluginURI();
+ setURI( "uri", uri );
+
+ // TODO: think about hosts
+ }
+
/**
* Update the preferences cache location attribute with the value of
* the supplied file. If the file argument is null the cache location
* will be set to "cache" otherwise the string form of the file will
- * be assigned
+ * be assigned as the cache directory value.
*
* @param file the cache directory
*/
- public static void setCacheDirectory( Preferences prefs, File file )
+ public void setCacheDirectory( File file )
{
+ Preferences prefs = getPreferences();
if( null == file )
{
prefs.remove( "location" );
@@ -96,5 +239,25 @@
prefs.put( "location", path );
}
}
+
+ private Preferences getHostsNodePreferences()
+ {
+ Preferences prefs = getPreferences();
+ return prefs.node( "hosts" );
+ }
+
+ private String[] childrenNames( Preferences prefs )
+ {
+ try
+ {
+ return prefs.childrenNames();
+ }
+ catch( BackingStoreException e )
+ {
+ final String error =
+ "Unexected error raised by preferences backing store while
resolving child nodes.";
+ throw new BuilderException( error, e );
+ }
+ }
}


Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentRegistryStorageUnit.java
(from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentRegistryHelper.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentRegistryHelper.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentRegistryStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -26,8 +26,10 @@
import net.dpml.transit.model.Logger;
import net.dpml.transit.model.DuplicateKeyException;

+import net.dpml.transit.management.ContentRegistryHome;
import net.dpml.transit.management.ContentRegistryManager;
import net.dpml.transit.management.ContentManager;
+import net.dpml.transit.management.ModificationEvent;

import net.dpml.transit.manager.DefaultContentRegistryManager;

@@ -35,24 +37,107 @@
* The LayoutRegistryHelper class provides support for the crreating of a
* ContentRegistryManager based on a supplied preferences node.
*/
-class ContentRegistryHelper extends ContentHelper
+class ContentRegistryStorageUnit extends AbstractStorageUnit implements
ContentRegistryHome
{
- public static ContentRegistryManager createContentRegistryManager(
- Logger logger, Date creation, Preferences prefs )
- throws BackingStoreException, BuilderException, DuplicateKeyException
- {
- ArrayList list = new ArrayList();
- String[] names = prefs.childrenNames();
- for( int i=0; i<names.length; i++ )
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ ContentRegistryStorageUnit( Preferences prefs, Logger logger, Date
creation, boolean policy )
+ {
+ super( prefs, logger, creation, policy );
+ }
+
+ //
------------------------------------------------------------------------
+ // ContentRegistryHome
+ //
------------------------------------------------------------------------
+
+ public ContentManager createContentManager( String id ) throws
BuilderException
+ {
+ Preferences prefs = getPreferences();
+ Preferences p = prefs.node( id );
+ Logger logger = getLogger().getChildLogger( id );
+ Date creation = getCreationDate();
+ boolean policy = getStoragePolicy();
+ ContentStorageUnit home = new ContentStorageUnit( p, logger,
creation, policy );
+ return home.createContentManager();
+ }
+
+ public ContentManager createContentManager( String id, String title, URI
uri )
+ {
+ Preferences prefs = getPreferences();
+ Preferences p = prefs.node( id );
+ Logger logger = getLogger().getChildLogger( id );
+ Date creation = getCreationDate();
+ boolean policy = getStoragePolicy();
+ p.put( "title", title );
+ p.put( "uri", uri.toASCIIString() );
+ ContentStorageUnit home = new ContentStorageUnit( p, logger,
creation, policy );
+ return home.createContentManager();
+ }
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
{
- String name = names[i];
- Preferences p = prefs.node( name );
- ContentManager manager = createContentManager( logger, creation,
p );
- list.add( manager );
+ ContentRegistryManager manager = (ContentRegistryManager)
event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
}
- ContentManager[] managers = (ContentManager[]) list.toArray( new
ContentManager[0] );
- URI uri = getURI( prefs, "uri" );
- return new DefaultContentRegistryManager( logger, creation, uri,
managers );
}
-}

+ //
------------------------------------------------------------------------
+ // impl
+ //
------------------------------------------------------------------------
+
+ ContentRegistryManager createContentRegistryManager()
+ {
+ Preferences prefs = getPreferences();
+ Logger logger = getLogger();
+ Date creation = getCreationDate();
+ boolean policy = getStoragePolicy();
+
+ try
+ {
+ ArrayList list = new ArrayList();
+ String[] names = prefs.childrenNames();
+ for( int i=0; i<names.length; i++ )
+ {
+ String name = names[i];
+ ContentManager manager = createContentManager( name );
+ list.add( manager );
+ }
+ ContentManager[] managers = (ContentManager[]) list.toArray( new
ContentManager[0] );
+ URI uri = getURI( "uri" );
+ return new DefaultContentRegistryManager( logger, creation,
this, uri, managers );
+ }
+ catch( Exception e )
+ {
+ final String error =
+ "Unexpected error while constructing content registry
manager.";
+ throw new BuilderException( error, e );
+ }
+ }
+
+ private void store( ContentRegistryManager manager )
+ throws BuilderException
+ {
+ Preferences prefs = getPreferences();
+ URI uri = manager.getPluginURI();
+ synchronized( prefs )
+ {
+ setURI( "uri", uri );
+ getLogger().warn( "TODO implementation pending!! " );
+ }
+ }
+
+}

Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentStorageUnit.java
(from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentHelper.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentHelper.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ContentStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -22,24 +22,89 @@
import java.util.prefs.Preferences;

import net.dpml.transit.model.Logger;
-
+import net.dpml.transit.management.ContentHome;
import net.dpml.transit.management.ContentManager;
-
+import net.dpml.transit.management.ModificationEvent;
+import net.dpml.transit.management.LayoutManager;
import net.dpml.transit.manager.DefaultContentManager;

/**
- * The LayoutHelper class is responsible for the setup of initial factory
+ * The ContentSorageUnit class is responsible for the setup of initial
factory
* default preference settings.
*/
-class ContentHelper extends PreferencesHelper
+class ContentStorageUnit extends AbstractStorageUnit implements ContentHome
{
- public static ContentManager createContentManager( Logger logger, Date
creation, Preferences prefs )
- throws BuilderException
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ ContentStorageUnit( Preferences prefs, Logger logger, Date creation,
boolean policy )
+ {
+ super( prefs, logger, creation, policy );
+ }
+
+ //
------------------------------------------------------------------------
+ // ContentHome
+ //
------------------------------------------------------------------------
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
+ {
+ ContentManager manager = (ContentManager) event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
+ }
+ }
+
+ //
------------------------------------------------------------------------
+ // impl
+ //
------------------------------------------------------------------------
+
+ ContentManager createContentManager()
{
+ Preferences prefs = getPreferences();
+ Logger logger = getLogger();
+ Date creation = getCreationDate();
+ URI uri = getURI( "uri" );
String type = prefs.name();
String title = prefs.get( "title", type );
- URI uri = getURI( prefs, "uri" );
- return new DefaultContentManager( logger, creation, uri, type, title
);
+ return new DefaultContentManager( logger, creation, this, uri, type,
title );
+ }
+
+ private void store( ContentManager manager )
+ throws BuilderException
+ {
+ Preferences prefs = getPreferences();
+ URI uri = manager.getPluginURI();
+ String title = manager.getTitle();
+ synchronized( prefs )
+ {
+ setURI( "uri", uri );
+ setTitle( title );
+ }
}
+
+ private void setTitle( String title )
+ {
+ if( null == title )
+ {
+ getPreferences().remove( "title" );
+ }
+ else
+ {
+ getPreferences().put( "title", title );
+ }
+ }
+
}


Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/HostStorageUnit.java
(from r2717,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/HostHelper.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/HostHelper.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/HostStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -29,56 +29,120 @@
import net.dpml.transit.model.LayoutRegistryModel;
import net.dpml.transit.model.UnknownKeyException;

+import net.dpml.transit.management.HostHome;
import net.dpml.transit.management.HostManager;
-import net.dpml.transit.management.HostManager;
+import net.dpml.transit.management.ModificationEvent;

import net.dpml.transit.manager.DefaultManager.Local;
import net.dpml.transit.manager.DefaultManager.Plugin;
import net.dpml.transit.manager.DefaultHostManager;

-
/**
* The LayoutHelper class is responsible for the setup of initial factory
* default preference settings.
*/
-class HostHelper extends PreferencesHelper
+class HostStorageUnit extends AbstractStorageUnit implements HostHome
{
- public static HostManager createHostManager(
- LayoutRegistryModel registry, Logger logger, Date creation,
Preferences prefs )
- throws BuilderException, UnknownKeyException
+ //
------------------------------------------------------------------------
+ // state
+ //
------------------------------------------------------------------------
+
+ private static final String DEFAULT_HOST_CLASSNAME =
+ "net.dpml.transit.host.DefaultResourceHost";
+
+
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ HostStorageUnit(
+ Preferences prefs, Logger logger, Date creation, boolean policy )
+ {
+ super( prefs, logger, creation, policy );
+ }
+
+ //
------------------------------------------------------------------------
+ // Home
+ //
------------------------------------------------------------------------
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
+ {
+ HostManager manager = (HostManager) event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
+ }
+ }
+
+ //
------------------------------------------------------------------------
+ // impl
+ //
------------------------------------------------------------------------
+
+ HostManager createHostManager( LayoutRegistryModel registry )
{
+ Preferences prefs = getPreferences();
+ Logger logger = getLogger();
+ Date creation = getCreationDate();
String id = prefs.name();
- boolean bootstrap = prefs.getBoolean( "bootstrap", false );
String name = prefs.get( "name", id );
+
+ boolean bootstrap = prefs.getBoolean( "bootstrap", false );
boolean trusted = prefs.getBoolean( "trusted", false );
boolean enabled = prefs.getBoolean( "enabled", false );
int priority = prefs.getInt( "priority", 600 );
String layoutKey = prefs.get( "layout", "classic" );
- LayoutModel layout = registry.getLayoutModel( layoutKey );
- PasswordAuthentication auth = getPasswordAuthentication( prefs );
- URL base = getBase( prefs );
- URL index = getIndex( base, prefs );
+ LayoutModel layout = getlayoutModel( registry, layoutKey );
+ PasswordAuthentication auth = getAuthentication();
+ URL base = getBase();
+ URL index = getIndex( base );
String scheme = prefs.get( "scheme", "" );
String prompt = prefs.get( "prompt", "" );
if( bootstrap )
{
return new DefaultHostManager(
- logger, creation, id, new Local(
"net.dpml.transit.host.DefaultResoureHost", bootstrap ),
+ logger, creation, this, id,
+ new Local( DEFAULT_HOST_CLASSNAME, bootstrap ),
base, index, name, trusted, enabled, priority,
layout, auth, scheme, prompt );
}
else
{
- URI uri = getURI( prefs, "uri" );
+ URI uri = getURI( "uri" );
return new DefaultHostManager(
- logger, creation, id, new Plugin( uri ), base, index, name,
trusted, enabled, priority,
- layout, auth, scheme, prompt );
+ logger, creation, this, id,
+ new Plugin( uri ), base, index, name, trusted,
+ enabled, priority, layout, auth, scheme, prompt );
}
}

- private static URL getBase( Preferences prefs )
+ private LayoutModel getlayoutModel( LayoutRegistryModel registry, String
key )
+ {
+ try
+ {
+ return registry.getLayoutModel( key );
+ }
+ catch( UnknownKeyException e )
+ {
+ final String error =
+ "Unable to construct host storage unit due unknown host layout
key.";
+ throw new BuilderException( error, e );
+ }
+ }
+
+ private URL getBase( )
throws BuilderException
{
+ Preferences prefs = getPreferences();
String baseSpec = prefs.get( "base", null );
if( null == baseSpec )
{
@@ -112,15 +176,24 @@
}
}

- private static PasswordAuthentication getPasswordAuthentication(
Preferences prefs )
+ private PasswordAuthentication getAuthentication()
+ throws BuilderException
{
- String username = prefs.get( "username", "" );
- String password = prefs.get( "password", "" );
- return new PasswordAuthentication( username, password.toCharArray()
);
+ Preferences prefs = getPreferences();
+ byte[] bytes = prefs.getByteArray( "authentication", new byte[0] );
+ if( bytes.length == 0 )
+ {
+ return null;
+ }
+ else
+ {
+ return CredentialsHelper.importCredentials( bytes );
+ }
}

- private static URL getIndex( URL base, Preferences prefs ) throws
BuilderException
+ private URL getIndex( URL base ) throws BuilderException
{
+ Preferences prefs = getPreferences();
if( null == base )
{
throw new NullPointerException( "base" );
@@ -145,9 +218,10 @@
}
}

- public static void putHostManager( Preferences prefs, HostManager
manager )
+ private void store( HostManager manager )
throws BuilderException
{
+ Preferences prefs = getPreferences();
synchronized( prefs )
{
URL base = manager.getBaseURL();
@@ -157,52 +231,30 @@
LayoutModel layout = manager.getLayoutModel();
PasswordAuthentication auth = manager.getAuthentication();

- putBaseURL( prefs, base );
- putIndexURL( prefs, index );
- putTrusted( prefs, trusted );
- putEnabled( prefs, enabled );
- putLayoutModel( prefs, layout );
- putAuthentication( prefs, auth );
+ setURL( "base", base );
+ setURL( "index", index );
+ setTrusted( trusted );
+ setEnabled( enabled );
+ setLayoutModel( layout );
+ setAuthentication( auth );
}
}

- private static void putBaseURL( Preferences prefs, URL base )
- {
- if( null == base )
- {
- prefs.remove( "base" );
- }
- else
- {
- prefs.put( "base", base.toExternalForm() );
- }
- }
-
- private static void putIndexURL( Preferences prefs, URL index )
- {
- if( null == index )
- {
- prefs.remove( "index" );
- }
- else
- {
- prefs.put( "index", index.toExternalForm() );
- }
- }
-
-
- private static void putTrusted( Preferences prefs, boolean trusted )
+ private void setTrusted( boolean trusted )
{
+ Preferences prefs = getPreferences();
prefs.putBoolean( "trusted", trusted );
}

- private static void putEnabled( Preferences prefs, boolean enabled )
+ private void setEnabled( boolean enabled )
{
+ Preferences prefs = getPreferences();
prefs.putBoolean( "enabled", enabled );
}

- private static void putLayoutModel( Preferences prefs, LayoutModel
layout )
+ private void setLayoutModel( LayoutModel layout )
{
+ Preferences prefs = getPreferences();
if( null == layout )
{
prefs.remove( "layout" );
@@ -218,9 +270,10 @@
* Set the host authentication.
* @param auth the password authentication to use for host sign-on
*/
- public static void putAuthentication( Preferences prefs,
PasswordAuthentication auth )
+ private void setAuthentication( PasswordAuthentication auth )
throws BuilderException
{
+ Preferences prefs = getPreferences();
if( null == auth )
{
prefs.putByteArray( "authentication", new byte[0] );
@@ -231,6 +284,5 @@
prefs.putByteArray( "authentication", bytes );
}
}
-
}


Added:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutRegistryStorageUnit.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutRegistryStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2005 Stephen McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.builder;
+
+import java.net.URL;
+import java.net.URI;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.prefs.Preferences;
+import java.util.prefs.BackingStoreException;
+import java.util.Date;
+
+import net.dpml.transit.model.Logger;
+import net.dpml.transit.model.DuplicateKeyException;
+import net.dpml.transit.manager.DefaultLayoutRegistryManager;
+import net.dpml.transit.management.LayoutRegistryHome;
+import net.dpml.transit.management.LayoutRegistryManager;
+import net.dpml.transit.management.LayoutRegistryHome;
+import net.dpml.transit.management.LayoutHome;
+import net.dpml.transit.management.LayoutManager;
+import net.dpml.transit.management.ModificationEvent;
+
+/**
+ * The LayoutHelper class is responsible for the setup of initial factory
+ * default preference settings.
+ */
+class LayoutRegistryStorageUnit extends AbstractStorageUnit implements
LayoutRegistryHome
+{
+ //
------------------------------------------------------------------------
+ // state
+ //
------------------------------------------------------------------------
+
+ private final LayoutRegistryManager m_manager;
+
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ LayoutRegistryStorageUnit( Preferences prefs, Logger logger, Date
creation, boolean policy )
+ throws DuplicateKeyException
+ {
+ super( prefs, logger, creation, policy );
+
+ URI uri = getURI( "uri" );
+ LayoutManager[] layouts = createLayoutManagers();
+ m_manager = new DefaultLayoutRegistryManager( logger, creation,
this, uri, layouts );
+ }
+
+ //
------------------------------------------------------------------------
+ // LayoutRegistryHome
+ //
------------------------------------------------------------------------
+
+ public LayoutManager createLayoutManager( String id ) throws
BuilderException
+ {
+ Preferences prefs = getPreferences();
+ Preferences p = prefs.node( id );
+ Logger logger = getLogger().getChildLogger( id );
+ Date creation = getCreationDate();
+ boolean policy = getStoragePolicy();
+ LayoutStorageUnit unit = new LayoutStorageUnit( p, logger, creation,
policy );
+ return unit.createLayoutManager();
+ }
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
+ {
+ LayoutRegistryManager manager = (LayoutRegistryManager)
event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
+ }
+ }
+
+ //
------------------------------------------------------------------------
+ // impl
+ //
------------------------------------------------------------------------
+
+ LayoutRegistryManager getLayoutRegistryManager()
+ {
+ return m_manager;
+ }
+
+ private LayoutManager[] createLayoutManagers()
+ {
+ Preferences prefs = getPreferences();
+ try
+ {
+ ArrayList list = new ArrayList();
+ String[] names = prefs.childrenNames();
+ for( int i=0; i<names.length; i++ )
+ {
+ String name = names[i];
+ LayoutManager layout = createLayoutManager( name );
+ list.add( layout );
+ }
+ return (LayoutManager[]) list.toArray( new LayoutManager[0] );
+ }
+ catch( Exception e )
+ {
+ final String error =
+ "Unexpected error while constructing layout registry manager.";
+ throw new BuilderException( error, e );
+ }
+ }
+
+ private void store( LayoutRegistryManager manager )
+ throws BuilderException
+ {
+ Preferences prefs = getPreferences();
+ URI uri = manager.getPluginURI();
+ synchronized( prefs )
+ {
+ setURI( "uri", uri );
+ getLogger().warn( "TODO implementation pending!! " );
+ }
+ }
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutStorageUnit.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/LayoutStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2005 Stephen McConnell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.builder;
+
+import java.net.URL;
+import java.net.URI;
+import java.util.Date;
+import java.util.prefs.Preferences;
+
+import net.dpml.transit.model.Logger;
+import net.dpml.transit.manager.DefaultManager.Plugin;
+import net.dpml.transit.manager.DefaultManager.Local;
+import net.dpml.transit.manager.DefaultLayoutManager;
+import net.dpml.transit.management.LayoutManager;
+import net.dpml.transit.management.LayoutHome;
+import net.dpml.transit.management.ModificationEvent;
+
+/**
+ * The LayoutHelper class is responsible for the setup of initial factory
+ * default preference settings.
+ */
+class LayoutStorageUnit extends AbstractStorageUnit implements LayoutHome
+{
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ LayoutStorageUnit( Preferences prefs, Logger logger, Date creation,
boolean policy )
+ {
+ super( prefs, logger, creation, policy );
+ }
+
+ //
------------------------------------------------------------------------
+ // Home
+ //
------------------------------------------------------------------------
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
+ {
+ LayoutManager manager = (LayoutManager) event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
+ }
+ }
+
+ //
------------------------------------------------------------------------
+ // impl
+ //
------------------------------------------------------------------------
+
+ LayoutManager createLayoutManager()
+ throws BuilderException
+ {
+ Preferences prefs = getPreferences();
+ Logger logger = getLogger();
+ Date creation = getCreationDate();
+ URI uri = getURI( "uri" );
+ String id = prefs.name();
+ String title = prefs.get( "title", id );
+ DefaultLayoutManager manager = null;
+ if( null != uri )
+ {
+ Plugin plugin = new Plugin( uri );
+ return new DefaultLayoutManager( logger, creation, this, id,
plugin, title );
+ }
+ else
+ {
+ String classname = prefs.get( "classname", null );
+ if( null != classname )
+ {
+ Local local = new Local( classname, false );
+ return new DefaultLayoutManager( logger, creation, this, id,
local, title );
+ }
+ else
+ {
+ Local local = new Local(
"net.dpml.transit.layout.ClassicLayout", false );
+ return new DefaultLayoutManager( logger, creation, this, id,
local, title );
+ }
+ }
+ }
+
+ private void store( LayoutManager manager )
+ throws BuilderException
+ {
+ Preferences prefs = getPreferences();
+ URI uri = manager.getPluginURI();
+ String classname = manager.getClassname();
+ String title = manager.getTitle();
+ synchronized( prefs )
+ {
+ setURI( "uri", uri );
+ setClassname( classname );
+ setTitle( title );
+ }
+ }
+
+ private void setClassname( String classname )
+ {
+ if( null == classname )
+ {
+ getPreferences().remove( "classname" );
+ }
+ else
+ {
+ getPreferences().put( "classname", classname );
+ }
+ }
+
+ private void setTitle( String title )
+ {
+ if( null == title )
+ {
+ getPreferences().remove( "title" );
+ }
+ else
+ {
+ getPreferences().put( "title", title );
+ }
+ }
+}
+
+
+

Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ProxyStorageUnit.java
(from r2726,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ProxyStorageHome.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ProxyStorageHome.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/ProxyStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -25,6 +25,7 @@

import net.dpml.transit.model.Logger;
import net.dpml.transit.management.ProxyManager;
+import net.dpml.transit.management.ProxyHome;
import net.dpml.transit.management.ModificationListener;
import net.dpml.transit.management.ModificationEvent;
import net.dpml.transit.manager.DefaultProxyManager;
@@ -33,28 +34,45 @@
* The LayoutHelper class is responsible for the setup of initial factory
* default preference settings.
*/
-class ProxyStorageHome extends AbstractStorageHome
+class ProxyStorageUnit extends AbstractStorageUnit implements ProxyHome
{
- private ModificationListener m_listener;
-
//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------

- ProxyStorageHome( Preferences prefs, Logger logger, Date creation,
boolean policy )
+ ProxyStorageUnit( Preferences prefs, Logger logger, Date creation,
boolean policy )
{
super( prefs, logger, creation, policy );
- if( policy )
+ }
+
+ //
------------------------------------------------------------------------
+ // ProxyHome
+ //
------------------------------------------------------------------------
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
{
- m_listener = new StorageListener();
+ ProxyManager manager = (ProxyManager) event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
}
}

//
------------------------------------------------------------------------
- // internalization
+ // impl
//
------------------------------------------------------------------------

- public ProxyManager create()
+ ProxyManager createProxyManager()
throws BuilderException
{
Preferences prefs = getPreferences();
@@ -63,12 +81,7 @@
URL host = getURL( "host" );
String[] excludes = getExcludes();
PasswordAuthentication auth = getAuthentication();
- DefaultProxyManager manager = new DefaultProxyManager( logger,
creation, host, auth, excludes );
- if( null != m_listener )
- {
- manager.addModificationListener( m_listener );
- }
- return manager;
+ return new DefaultProxyManager( logger, creation, this, host, auth,
excludes );
}

private PasswordAuthentication getAuthentication()
@@ -102,12 +115,7 @@
}
}

- //
------------------------------------------------------------------------
- // externalization
- //
------------------------------------------------------------------------
-
- public void setProxyManager( ProxyManager manager )
- throws BuilderException
+ private void store( ProxyManager manager )
{
Preferences prefs = getPreferences();
URL url = manager.getHost();
@@ -117,9 +125,11 @@
setProxyHost( url );
setProxyAuthentication( auth );
}
+
+ // TODO: excludes
}

- public void setProxyHost( URL host )
+ private void setProxyHost( URL host )
{
Preferences prefs = getPreferences();
if( null == host )
@@ -150,25 +160,6 @@
prefs.putByteArray( "authentication", bytes );
}
}
-
- private class StorageListener implements ModificationListener
- {
- public void modified( ModificationEvent event )
- {
- ProxyManager manager = (ProxyManager) event.getManager();
- try
- {
- Date date = new Date();
- setProxyManager( manager );
- manager.setCreationDate( date );
- }
- catch( Throwable e )
- {
- // TODO: propergate the error up to the HCI
- manager.getLogger().error( "storage failure", e );
- }
- }
- }
}



Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryStorageUnit.java
(from r2729,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryStorageHome.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryStorageHome.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/RepositoryStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -24,6 +24,7 @@
import java.util.Date;

import net.dpml.transit.model.Logger;
+import net.dpml.transit.management.RepositoryHome;
import net.dpml.transit.management.RepositoryManager;
import net.dpml.transit.management.ModificationListener;
import net.dpml.transit.management.ModificationEvent;
@@ -33,47 +34,55 @@
* The LayoutHelper class is responsible for the setup of initial factory
* default preference settings.
*/
-class RepositoryStorageHome extends AbstractStorageHome
+class RepositoryStorageUnit extends AbstractStorageUnit implements
RepositoryHome
{
- private ModificationListener m_listener;
-
//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------

- RepositoryStorageHome( Preferences prefs, Logger logger, Date creation,
boolean policy )
+ RepositoryStorageUnit( Preferences prefs, Logger logger, Date creation,
boolean policy )
{
super( prefs, logger, creation, policy );
- if( policy )
+ }
+
+ //
------------------------------------------------------------------------
+ // RepositoryHome
+ //
------------------------------------------------------------------------
+
+ public void modified( ModificationEvent event )
+ {
+ if( getStoragePolicy() )
{
- m_listener = new StorageListener();
+ RepositoryManager manager = (RepositoryManager)
event.getManager();
+ try
+ {
+ Date date = new Date();
+ store( manager );
+ manager.setCreationDate( date );
+ }
+ catch( Throwable e )
+ {
+ // TODO: propergate the error up to the HCI
+ manager.getLogger().error( "storage failure", e );
+ }
}
}

//
------------------------------------------------------------------------
- // internalization
+ // impl
//
------------------------------------------------------------------------

- public RepositoryManager create()
+ RepositoryManager createRepositoryManager()
throws BuilderException
{
Preferences prefs = getPreferences();
Logger logger = getLogger();
Date creation = getCreationDate();
URI uri = getURI( "uri" );
- DefaultRepositoryManager manager = new DefaultRepositoryManager(
logger, creation, uri );
- if( null != m_listener )
- {
- manager.addModificationListener( m_listener );
- }
- return manager;
+ return new DefaultRepositoryManager( logger, creation, this, uri );
}

- //
------------------------------------------------------------------------
- // externalization
- //
------------------------------------------------------------------------
-
- public void setRepositoryManager( RepositoryManager manager )
+ public void store( RepositoryManager manager )
throws BuilderException
{
Preferences prefs = getPreferences();
@@ -83,25 +92,6 @@
setURI( "uri", uri );
}
}
-
- private class StorageListener implements ModificationListener
- {
- public void modified( ModificationEvent event )
- {
- RepositoryManager manager = (RepositoryManager)
event.getManager();
- try
- {
- Date date = new Date();
- setRepositoryManager( manager );
- manager.setCreationDate( date );
- }
- catch( Throwable e )
- {
- // TODO: propergate the error up to the HCI
- manager.getLogger().error( "storage failure", e );
- }
- }
- }
}



Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitPreferences.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitPreferences.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitPreferences.java
Tue Jun 7 02:41:36 2005
@@ -91,8 +91,8 @@
URL cacheUrl = classloader.getResource(
"transit/authority/cache.properties" );
try
{
- Preferences layout = root.node( "layout" );
Preferences cache = root.node( "cache" );
+ Preferences layout = cache.node( "layout" );
Preferences hosts = cache.node( "hosts" );
setupLayoutPreferences( layout );
setupCachePreferences( cacheUrl, cache );
@@ -119,7 +119,7 @@
String protocol = authority.getProtocol();
Preferences cachePrefs = root.node( "cache" );
Preferences hostsPrefs = cachePrefs.node( "hosts" );
- Preferences layoutPrefs = root.node( "layout" );
+ Preferences layoutPrefs = cachePrefs.node( "layout" );
setupLayoutPreferences( layoutPrefs );

try

Copied:
development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitStorageUnit.java
(from r2729,
development/main/transit/core/handler/src/main/net/dpml/transit/builder/PreferencesStorageHome.java)
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/builder/PreferencesStorageHome.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/builder/TransitStorageUnit.java
Tue Jun 7 02:41:36 2005
@@ -35,6 +35,7 @@
import net.dpml.transit.management.TransitManager;
import net.dpml.transit.management.ModificationListener;
import net.dpml.transit.management.ModificationEvent;
+import net.dpml.transit.management.TransitHome;

import net.dpml.transit.manager.DefaultTransitManager;

@@ -43,7 +44,7 @@
* The LayoutRegistryHelper class provides support for the crreating of a
* ContentRegistryManager based on a supplied preferences node.
*/
-public class PreferencesStorageHome implements TransitHome,
ModificationListener
+public class TransitStorageUnit implements TransitHome
{
//
------------------------------------------------------------------------
// static
@@ -62,9 +63,26 @@
private boolean m_savePolicy = false;
private boolean m_factoryPolicy = true;
private boolean m_purgePolicy = false;
+ private String m_profile = "default";

- private ProxyStorageHome m_proxyHome;
- private RepositoryStorageHome m_repositoryHome;
+ private ProxyStorageUnit m_proxyUnit;
+ private RepositoryStorageUnit m_repositoryUnit;
+ private CacheStorageUnit m_cacheUnit;
+ private LayoutRegistryStorageUnit m_layoutUnit;
+ private ContentRegistryStorageUnit m_contentUnit;
+
+ //
------------------------------------------------------------------------
+ // constructor
+ //
------------------------------------------------------------------------
+
+ public TransitStorageUnit()
+ {
+ }
+
+ public TransitStorageUnit( Preferences prefs )
+ {
+ m_prefs = prefs;
+ }

//
------------------------------------------------------------------------
// ModificationListener
@@ -76,7 +94,7 @@
*/
public void modified( ModificationEvent event )
{
- System.out.println( "# mod: " +
event.getManager().getClass().getName() );
+ //System.out.println( "# mod: " +
event.getManager().getClass().getName() );
}

//
------------------------------------------------------------------------
@@ -95,18 +113,6 @@
}
}

- public void setPreferences( Preferences prefs )
- {
- if( null == m_prefs )
- {
- m_prefs = prefs;
- }
- else
- {
- throw new IllegalStateException( "preferences already set" );
- }
- }
-
public void setAuthority( URL authority )
{
if( null == m_authority )
@@ -134,16 +140,22 @@
m_purgePolicy = policy;
}

+ public void setProfile( String profile )
+ {
+ m_profile = profile;
+ }
+
public TransitManager create()
throws BuilderException
{
+ Date creation = new Date();
Logger logger = getLogger();
Preferences prefs = getPreferences();
URL authority = getAuthority();
- Date creation = new Date();

if( m_purgePolicy )
{
+ getLogger().debug( "Purging: " + prefs );
try
{
String[] names = prefs.childrenNames();
@@ -168,6 +180,7 @@

if( null != m_authority )
{
+ getLogger().debug( "Initializing: " + prefs );
TransitPreferences.setupPreferences( prefs, authority );
}
else if( m_factoryPolicy )
@@ -175,34 +188,21 @@
long install = prefs.getLong( "installation", -1 );
if( install < 0 )
{
+ getLogger().debug( "Initializing: " + prefs );
TransitPreferences.setupFactoryPreferences( prefs );
}
}

- //
- // create the sub-systems
- //
-
- m_proxyHome = createProxyHome( creation );
- m_repositoryHome = createRepositoryHome( creation );
-
- ProxyManager proxy = m_proxyHome.create();
- RepositoryManager repository = m_repositoryHome.create();
-
- LayoutRegistryManager layout = createLayoutRegistryManager( creation
);
- CacheManager cache = createCacheManager( creation, layout );
- ContentRegistryManager content = createContentRegistryManager(
creation );
-
- ModificationListener store = null;
- if( m_savePolicy )
- {
- store = this;
- }
+ init( creation );
+ ProxyManager proxy = m_proxyUnit.createProxyManager();
+ RepositoryManager repository =
m_repositoryUnit.createRepositoryManager();
+ CacheManager cache = m_cacheUnit.getCacheManager();
+ ContentRegistryManager content =
m_contentUnit.createContentRegistryManager();

try
{
return new DefaultTransitManager(
- store, logger, creation, layout, cache, content, repository,
proxy );
+ logger, creation, this, cache, content, repository, proxy );
}
catch( Throwable e )
{
@@ -212,113 +212,97 @@
}
}

- private ProxyStorageHome createProxyHome( Date creation ) throws
BuilderException
+ private void init( Date creation )
+ {
+ //
+ // create the sub-systems
+ //
+
+ m_proxyUnit = createProxyUnit( creation );
+ m_cacheUnit = createCacheUnit( creation );
+ m_contentUnit = createContentRegistryUnit( creation );
+ m_repositoryUnit = createRepositoryUnit( creation );
+ }
+
+ private ProxyStorageUnit createProxyUnit( Date creation ) throws
BuilderException
{
try
{
boolean policy = getStoragePolicy();
Logger logger = getLogger().getChildLogger( "proxy" );
Preferences prefs = getPreferences().node( "proxy" );
- return new ProxyStorageHome( prefs, logger, creation, policy );
+ return new ProxyStorageUnit( prefs, logger, creation, policy );
}
catch( Throwable e )
{
final String error =
- "An error occured during construction of the proxy storage
home.";
+ "An error occured during construction of the proxy storage
unit.";
throw new BuilderException( error, e );
}
}

- private LayoutRegistryManager createLayoutRegistryManager( Date creation
) throws BuilderException
+ private RepositoryStorageUnit createRepositoryUnit( Date creation )
throws BuilderException
{
try
{
- Logger logger = getLogger().getChildLogger( "layout" );
- Preferences prefs = getPreferences().node( "layout" );
- return LayoutRegistryHelper.createLayoutRegistryManager( logger,
creation, prefs );
+ boolean policy = getStoragePolicy();
+ Logger logger = getLogger().getChildLogger( "repository" );
+ Preferences prefs = getPreferences().node( "repository" );
+ return new RepositoryStorageUnit( prefs, logger, creation,
policy );
}
catch( Throwable e )
{
final String error =
- "An error occured during construction of the layout registry
manager.";
+ "An error occured during construction of the repository
storage unit.";
throw new BuilderException( error, e );
}
}

- private CacheManager createCacheManager(
- Date creation, LayoutRegistryManager registry ) throws BuilderException
+ private CacheStorageUnit createCacheUnit( Date creation ) throws
BuilderException
{
try
{
+ boolean policy = getStoragePolicy();
Logger logger = getLogger().getChildLogger( "cache" );
Preferences prefs = getPreferences().node( "cache" );
- return CacheHelper.createCacheManager( registry, logger,
creation, prefs );
- }
- catch( Throwable e )
- {
- final String error =
- "An error occured during construction of the cache manager.";
- throw new BuilderException( error, e );
- }
- }
-
- private ContentRegistryManager createContentRegistryManager( Date
creation ) throws BuilderException
- {
- try
- {
- Logger logger = getLogger().getChildLogger( "content" );
- Preferences prefs = getPreferences().node( "content" );
- return ContentRegistryHelper.createContentRegistryManager(
logger, creation, prefs );
+ return new CacheStorageUnit( prefs, logger, creation, policy );
}
catch( Throwable e )
{
final String error =
- "An error occured during construction of the content registry
manager.";
+ "An error occured during construction of the cache storage
unit.";
throw new BuilderException( error, e );
}
}

- /*
- private RepositoryManager createRepositoryManager( Date creation )
throws BuilderException
+ private ContentRegistryStorageUnit createContentRegistryUnit( Date
creation ) throws BuilderException
{
try
{
- Logger logger = getLogger().getChildLogger( "repository" );
- Preferences prefs = getPreferences().node( "repository" );
- return RepositoryHelper.createRepositoryManager( logger,
creation, prefs );
+ boolean policy = getStoragePolicy();
+ Logger logger = getLogger().getChildLogger( "layout" );
+ Preferences prefs = getPreferences().node( "layout" );
+ return new ContentRegistryStorageUnit( prefs, logger, creation,
policy );
}
catch( Throwable e )
{
final String error =
- "An error occured during construction of the repository
manager.";
+ "An error occured during construction of the content registry
storage unit.";
throw new BuilderException( error, e );
}
}
- */

- private RepositoryStorageHome createRepositoryHome( Date creation )
throws BuilderException
+ private Preferences getPreferences()
{
- try
- {
- boolean policy = getStoragePolicy();
- Logger logger = getLogger().getChildLogger( "repository" );
- Preferences prefs = getPreferences().node( "repository" );
- return new RepositoryStorageHome( prefs, logger, creation,
policy );
- }
- catch( Throwable e )
- {
- final String error =
- "An error occured during construction of the repository
storage home.";
- throw new BuilderException( error, e );
- }
+ String profile = getProfileName();
+ return getRootPreferences().node( profile );
}

-
- private Preferences getPreferences()
+ private Preferences getRootPreferences()
{
if( null == m_prefs )
{
- return DEFAULT_PREFS;
+ return ROOT_PREFS;
}
else
{
@@ -345,8 +329,14 @@
return m_savePolicy;
}

+ private String getProfileName()
+ {
+ return m_profile;
+ }
+
private static final Logger DEFAULT_LOGGER = new LoggingAdapter();
- private static final Preferences DEFAULT_PREFS =
Preferences.userNodeForPackage( Transit.class );
+ private static final Preferences ROOT_PREFS =
+ Preferences.userNodeForPackage( Transit.class ).node( "profiles" );
}



Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/cache/DefaultCacheHandler.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/cache/DefaultCacheHandler.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/cache/DefaultCacheHandler.java
Tue Jun 7 02:41:36 2005
@@ -52,12 +52,16 @@
import net.dpml.transit.artifact.ArtifactAlreadyExistsException;
import net.dpml.transit.artifact.ArtifactNotFoundException;
import net.dpml.transit.layout.Layout;
+import net.dpml.transit.layout.LayoutRegistry;
+import net.dpml.transit.layout.DefaultLayoutRegistry;
import net.dpml.transit.model.CacheModel;
import net.dpml.transit.model.CacheListener;
import net.dpml.transit.model.Logger;
import net.dpml.transit.model.FileChangeEvent;
import net.dpml.transit.model.HostModel;
import net.dpml.transit.model.HostNodeEvent;
+import net.dpml.transit.model.LayoutModel;
+import net.dpml.transit.model.LayoutRegistryModel;
import net.dpml.transit.monitors.CacheMonitorRouter;
import net.dpml.transit.monitors.Monitor;
import net.dpml.transit.repository.Repository;
@@ -96,6 +100,8 @@

private final Map m_plugins = new WeakHashMap(); // plugin uris as keys
to plugin classes

+ private LayoutRegistry m_registry;
+
//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------
@@ -107,12 +113,26 @@
* @param model the cache system confiuguration model
* @param resolver the local cache layout resolver
*/
- public DefaultCacheHandler( CacheModel model, Layout resolver ) throws
TransitException
+ public DefaultCacheHandler( CacheModel model ) throws TransitException
{
m_model = model;
m_zipCache = new ZipCache();
m_resourceHosts = new TreeMap();
- m_resolver = resolver;
+
+ LayoutRegistryModel layoutModel = model.getLayoutRegistryModel();
+ m_registry = new DefaultLayoutRegistry( layoutModel );
+ LayoutModel layout = model.getLayoutModel();
+ try
+ {
+ String key = layout.getID();
+ m_resolver = m_registry.getLayout( key );
+ }
+ catch( Throwable e )
+ {
+ final String error =
+ "Cannot construct cache handler due to a cache layout
resolvution failure.";
+ throw new TransitException( error, e );
+ }

m_logger = model.getLogger();

@@ -652,14 +672,24 @@
}
}

- protected ResourceHost loadResourceHost( HostModel model ) throws
IOException
+ protected ResourceHost loadResourceHost( HostModel model ) throws
TransitException
{
Class clazz = loadResourceHostClass( model );
Repository loader = Transit.getInstance().getRepository();
- return (ResourceHost) loader.instantiate( clazz, new Object[]{ model
} );
+ try
+ {
+ return (ResourceHost) loader.instantiate( clazz, new Object[]{
model } );
+ }
+ catch( Throwable e )
+ {
+ final String error =
+ "Unable to load request host due to an instantiation failure."
+ + "\nHost ID: " + model.getID();
+ throw new TransitException( error, e );
+ }
}

- protected Class loadResourceHostClass( HostModel model ) throws
IOException
+ protected Class loadResourceHostClass( HostModel model ) throws
TransitException
{
URI uri = model.getPluginURI();
Class clazz = (Class) m_plugins.get( uri );

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/content/DefaultContentRegistry.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/content/DefaultContentRegistry.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/content/DefaultContentRegistry.java
Tue Jun 7 02:41:36 2005
@@ -175,7 +175,7 @@
// impl
//
------------------------------------------------------------------------

- protected ContentHandler getContentHandler( ContentModel model ) throws
IOException
+ protected ContentHandler getContentHandler( ContentModel model ) throws
TransitException
{
synchronized( m_handlers )
{
@@ -184,14 +184,24 @@
{
Class clazz = loadContentHandlerClass( model );
Repository loader = Transit.getInstance().getRepository();
- handler = (ContentHandler) loader.instantiate( clazz, new
Object[]{ model } );
+ try
+ {
+ handler = (ContentHandler) loader.instantiate( clazz,
new Object[]{ model } );
+ }
+ catch( Throwable e )
+ {
+ final String error =
+ "Unable to load content handler due to an
instantiation failure."
+ + "\nContent Type: " + model.getContentType();
+ throw new TransitException( error, e );
+ }
m_handlers.put( model, handler );
}
return handler;
}
}

- protected Class loadContentHandlerClass( ContentModel model ) throws
IOException
+ protected Class loadContentHandlerClass( ContentModel model ) throws
TransitException
{
URI uri = model.getPluginURI();


Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/layout/DefaultLayoutRegistry.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/layout/DefaultLayoutRegistry.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/layout/DefaultLayoutRegistry.java
Tue Jun 7 02:41:36 2005
@@ -79,7 +79,7 @@
// LayoutRegistry
//
------------------------------------------------------------------------

- public Layout getLayout( final String id ) throws IOException
+ public Layout getLayout( final String id ) throws TransitException
{
LayoutModel model = m_model.getLayoutModel( id );
return getLayout( model );
@@ -90,7 +90,7 @@
* @param model the location resolver model
* @return the resolver
*/
- protected Layout getLayout( LayoutModel model ) throws IOException
+ protected Layout getLayout( LayoutModel model ) throws TransitException
{
String id = model.getID();
String classname = model.getClassname();
@@ -104,7 +104,7 @@
}
}

- protected Layout loadLayout( final String classname ) throws IOException
+ protected Layout loadLayout( final String classname ) throws
TransitException
{
if( ClassicLayout.class.getName().equals( classname ) )
{
@@ -123,14 +123,24 @@
}
}

- protected Layout loadLayout( LayoutModel model ) throws IOException
+ protected Layout loadLayout( LayoutModel model ) throws TransitException
{
Class clazz = loadLayoutClass( model );
Repository loader = Transit.getInstance().getRepository();
- return (Layout) loader.instantiate( clazz, new Object[]{ model } );
+ try
+ {
+ return (Layout) loader.instantiate( clazz, new Object[]{ model }
);
+ }
+ catch( Throwable e )
+ {
+ final String error =
+ "Unable to load request model due to an instantiation failure."
+ + "\nLayout ID: " + model.getID();
+ throw new TransitException( error, e );
+ }
}

- protected Class loadLayoutClass( LayoutModel model ) throws IOException
+ protected Class loadLayoutClass( LayoutModel model ) throws
TransitException
{
URI uri = model.getPluginURI();
Class clazz = (Class) m_plugins.get( uri );

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/CacheHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/CacheHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface CacheHome extends PluginHome
+{
+ HostManager createHostManager( String id );
+}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/management/CacheManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/management/CacheManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/CacheManager.java
Tue Jun 7 02:41:36 2005
@@ -39,6 +39,8 @@
*/
void setCacheDirectory( final File file );

+ LayoutRegistryManager getLayoutRegistryManager();
+
/**
* Return an array of host managers assigned to the cache.
*

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface ContentHome extends PluginHome
+{
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentRegistryHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentRegistryHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+import java.net.URI;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface ContentRegistryHome extends PluginHome
+{
+ ContentManager createContentManager( String type );
+
+ ContentManager createContentManager( String type, String title, URI uri
);
+}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentRegistryManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentRegistryManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/ContentRegistryManager.java
Tue Jun 7 02:41:36 2005
@@ -18,6 +18,8 @@

package net.dpml.transit.management;

+import java.net.URI;
+
import net.dpml.transit.model.DuplicateKeyException;
import net.dpml.transit.model.UnknownKeyException;
import net.dpml.transit.model.ContentRegistryModel;
@@ -39,6 +41,8 @@

void addContentManager( String type ) throws DuplicateKeyException;

+ void addContentManager( String type, String title, URI uri ) throws
DuplicateKeyException;
+
void addContentManager( ContentManager manager ) throws
DuplicateKeyException;

void removeContentManager( ContentManager manager );

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/Home.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/Home.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface Home extends ModificationListener
+{
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/HostHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/HostHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface HostHome extends PluginHome
+{
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/LayoutHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/LayoutHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface LayoutHome extends PluginHome
+{
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/LayoutRegistryHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/LayoutRegistryHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface LayoutRegistryHome extends PluginHome
+{
+ LayoutManager createLayoutManager( String id );
+}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/management/Manager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/management/Manager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/Manager.java
Tue Jun 7 02:41:36 2005
@@ -38,4 +38,7 @@
void addModificationListener( ModificationListener listener );

void removeModificationListener( ModificationListener listener );
+
+ void dispose();
+
}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/PluginHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/PluginHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface PluginHome extends Home
+{
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/ProxyHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/ProxyHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface ProxyHome extends Home
+{
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/RepositoryHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/RepositoryHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+/**
+ * The ProxyManager is an interface implemented by proxy managers.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface RepositoryHome extends PluginHome
+{
+}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/management/TransitHome.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/TransitHome.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.management;
+
+import java.net.URL;
+import java.util.prefs.Preferences;
+
+import net.dpml.transit.model.Logger;
+
+/**
+ * The Home defines the persistent storage home for transit management
configurations.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public interface TransitHome extends Home
+{
+ void setLogger( Logger logger );
+
+ void setProfile( String profile );
+
+ void setAuthority( URL authority );
+
+ void setPersistOnModification( boolean policy );
+
+ void useFactoryInitialization( boolean policy );
+
+ void clearBeforeInitialization( boolean policy );
+
+ TransitManager create();
+
+}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/management/TransitManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/management/TransitManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/management/TransitManager.java
Tue Jun 7 02:41:36 2005
@@ -59,12 +59,5 @@
*/
RepositoryManager getRepositoryManager();

- /**
- * Return the layout registry manager.
- *
- * @return the layout manager
- */
- LayoutRegistryManager getLayoutRegistryManager();
-
}


Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultCacheManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultCacheManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultCacheManager.java
Tue Jun 7 02:41:36 2005
@@ -61,9 +61,12 @@
import net.dpml.transit.model.DuplicateKeyException;

import net.dpml.transit.model.LayoutRegistryModel;
-import net.dpml.transit.management.ModelReferenceException;
+import net.dpml.transit.management.CacheHome;
import net.dpml.transit.management.CacheManager;
+import net.dpml.transit.management.LayoutManager;
+import net.dpml.transit.management.LayoutRegistryManager;
import net.dpml.transit.management.HostManager;
+import net.dpml.transit.management.ModelReferenceException;
import net.dpml.transit.management.ModificationListener;
import net.dpml.transit.management.ModificationEvent;

@@ -76,27 +79,33 @@
* @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
* @version $Id: StandardTransitDirector.java 2480 2005-05-10 04:44:32Z
mcconnell AT dpml.net $
*/
-public class DefaultCacheManager extends DefaultPluginManager implements
CacheManager, ModificationListener
+public class DefaultCacheManager extends DefaultPluginManager
+ implements CacheManager, ModificationListener
{
//
------------------------------------------------------------------------
// state
//
------------------------------------------------------------------------

+ private final CacheHome m_home;
+
private final Set m_list = Collections.synchronizedSortedSet( new
TreeSet() );

private File m_cache;

- private LayoutRegistryModel m_registry;
+ private LayoutModel m_layout;
+
+ private LayoutRegistryManager m_registry;

//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------

public DefaultCacheManager(
- Logger logger, Date creation, URI uri, LayoutRegistryModel registry,
File cache, HostManager[] managers )
+ Logger logger, Date creation, CacheHome home,
+ URI uri, File cache, HostManager[] hosts, LayoutModel layout,
LayoutRegistryManager registry )
throws DuplicateKeyException
{
- super( logger, creation, uri );
+ super( logger, creation, home, uri );
if( null == cache )
{
throw new NullPointerException( "cache" );
@@ -105,13 +114,14 @@
{
throw new NullPointerException( "registry" );
}
-
+ m_home = home;
+ m_layout = layout;
m_registry = registry;
setCacheDirectory( cache, false );
- for( int i=0; i<managers.length; i++ )
+ for( int i=0; i<hosts.length; i++ )
{
- HostManager manager = managers[i];
- addHostManager( manager, false );
+ HostManager host = hosts[i];
+ addHostManager( host, false );
}
}

@@ -134,6 +144,15 @@
//
------------------------------------------------------------------------

/**
+ * Return the cache layout strategy model.
+ * @return the layout model
+ */
+ public LayoutModel getLayoutModel()
+ {
+ return m_layout;
+ }
+
+ /**
* Update the value the local cache directory.
*
* @param file the cache directory
@@ -181,6 +200,11 @@
}
}

+ public LayoutRegistryManager getLayoutRegistryManager()
+ {
+ return m_registry;
+ }
+
/**
* Return an array of host managers assigned to the cache.
*
@@ -213,18 +237,8 @@

public void addHostManager( String id ) throws DuplicateKeyException
{
- try
- {
- Logger logger = getLogger();
- LayoutModel layout = m_registry.getLayoutModel( "classic" );
- HostManager manager =
- new DefaultHostManager( logger, id, layout );
- addHostManager( manager );
- }
- catch( UnknownKeyException e )
- {
- // will not happen
- }
+ HostManager manager = m_home.createHostManager( id );
+ addHostManager( manager );
}

public void addHostManager( HostManager manager ) throws
DuplicateKeyException
@@ -262,10 +276,10 @@
{
Object[] listeners = manager.getListeners();
m_list.remove( manager );
+ setModified(); // <---- need to review this
manager.removeModificationListener( this );
HostRemovedEvent event = new HostRemovedEvent( this, manager );
super.enqueueEvent( event );
- setModified();
}
}

@@ -291,6 +305,11 @@
return getHostManagers();
}

+ public LayoutRegistryModel getLayoutRegistryModel()
+ {
+ return getLayoutRegistryManager();
+ }
+
/**
* Add a cache change listener.
* @param listener the listener to add

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentManager.java
Tue Jun 7 02:41:36 2005
@@ -30,7 +30,9 @@
import net.dpml.transit.model.ContentListener;
import net.dpml.transit.model.Logger;

+import net.dpml.transit.management.ContentHome;
import net.dpml.transit.management.ContentManager;
+import net.dpml.transit.management.ModificationListener;

/**
* Default implementation of a content manager that maintains an active
@@ -52,14 +54,11 @@
// constructor
//----------------------------------------------------------------------

- public DefaultContentManager( Logger logger, String type )
+ public DefaultContentManager(
+ Logger logger, Date creation, ContentHome home,
+ URI uri, String type, String title )
{
- this( logger, new Date(), null, type, type );
- }
-
- public DefaultContentManager( Logger logger, Date creation, URI uri,
String type, String title )
- {
- super( logger, creation, uri );
+ super( logger, creation, home, uri );
m_type = type;
m_title = title;
}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentRegistryManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentRegistryManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultContentRegistryManager.java
Tue Jun 7 02:41:36 2005
@@ -38,9 +38,10 @@
import net.dpml.transit.model.DuplicateKeyException;
import net.dpml.transit.model.UnknownKeyException;

-import net.dpml.transit.management.ModelReferenceException;
+import net.dpml.transit.management.ContentRegistryHome;
import net.dpml.transit.management.ContentRegistryManager;
import net.dpml.transit.management.ContentManager;
+import net.dpml.transit.management.ModelReferenceException;
import net.dpml.transit.management.ModificationListener;
import net.dpml.transit.management.ModificationEvent;

@@ -60,14 +61,18 @@

private final List m_list = Collections.synchronizedList( new
LinkedList() );

+ private ContentRegistryHome m_home;
+
//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------

public DefaultContentRegistryManager(
- Logger logger, Date creation, URI uri, ContentManager[] managers )
throws DuplicateKeyException
+ Logger logger, Date creation, ContentRegistryHome home,
+ URI uri, ContentManager[] managers ) throws DuplicateKeyException
{
- super( logger, creation, uri );
+ super( logger, creation, home, uri );
+ m_home = home;
for( int i=0; i<managers.length; i++ )
{
ContentManager manager = managers[i];
@@ -124,8 +129,13 @@

public void addContentManager( String type ) throws DuplicateKeyException
{
- Logger logger = getLogger();
- ContentManager manager = new DefaultContentManager( logger, type );
+ ContentManager manager = m_home.createContentManager( type );
+ addContentManager( manager );
+ }
+
+ public void addContentManager( String type, String title, URI uri )
throws DuplicateKeyException
+ {
+ ContentManager manager = m_home.createContentManager( type, title,
uri );
addContentManager( manager );
}


Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultHostManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultHostManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultHostManager.java
Tue Jun 7 02:41:36 2005
@@ -45,12 +45,13 @@
import net.dpml.transit.model.PluginModel;
import net.dpml.transit.model.PluginChangeEvent;

+import net.dpml.transit.management.HostHome;
import net.dpml.transit.management.HostManager;
import net.dpml.transit.management.BootstrapException;
+import net.dpml.transit.management.ModificationListener;

import net.dpml.transit.network.RequestIdentifier;

-
/**
* Default implementation of a host manager. The implementation establishes
* a preferences change listener on a supplied preferences instance
representing
@@ -82,20 +83,12 @@
//
------------------------------------------------------------------------

public DefaultHostManager(
- Logger logger, String id, LayoutModel layout )
- {
- this(
- logger, new Date(), id,
- new Local( "", false ),
- getDefaultHostURL(), null, id, false, false, 900, layout, null,
"", "" );
- }
-
- public DefaultHostManager(
- Logger logger, Date creation, String id, Strategy strategy, URL base,
URL index,
+ Logger logger, Date creation, HostHome home,
+ String id, Strategy strategy, URL base, URL index,
String name, boolean trusted, boolean enabled, int priority,
LayoutModel layout,
PasswordAuthentication auth, String scheme, String prompt )
{
- super( logger, creation, null );
+ super( logger, creation, home, null );

m_id = id;
m_name = name;

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutManager.java
Tue Jun 7 02:41:36 2005
@@ -30,7 +30,11 @@
import net.dpml.transit.model.LayoutListener;
import net.dpml.transit.model.Logger;

+import net.dpml.transit.management.LayoutHome;
import net.dpml.transit.management.LayoutManager;
+import net.dpml.transit.management.ModificationListener;
+import net.dpml.transit.management.ModificationEvent;
+import net.dpml.transit.management.LayoutHome;
import net.dpml.transit.manager.DefaultManager.Strategy;
import net.dpml.transit.manager.DefaultManager.Plugin;
import net.dpml.transit.manager.DefaultManager.Local;
@@ -59,18 +63,14 @@
//----------------------------------------------------------------------

public DefaultLayoutManager(
- final Logger logger, final String id )
+ final Logger logger, Date creation, final LayoutHome home,
+ final String id, Strategy strategy, final String title )
{
- this( logger, new Date(), id, new Local(
"net.dpml.transit.layout.ClassicLayout", false ), id );
- }
-
- public DefaultLayoutManager(
- final Logger logger, Date creation, final String id, Strategy
strategy, final String title )
- {
- super( logger, creation, null );
+ super( logger, creation, home, null );

m_id = id;
m_title = title;
+
if( strategy instanceof Plugin )
{
Plugin plugin = (Plugin) strategy;

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutRegistryManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutRegistryManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultLayoutRegistryManager.java
Tue Jun 7 02:41:36 2005
@@ -43,6 +43,7 @@
import net.dpml.transit.model.Logger;

import net.dpml.transit.management.LayoutManager;
+import net.dpml.transit.management.LayoutRegistryHome;
import net.dpml.transit.management.LayoutRegistryManager;
import net.dpml.transit.management.ModelReferenceException;
import net.dpml.transit.management.ModificationListener;
@@ -64,15 +65,19 @@

private final List m_list = new LinkedList();

+ private final LayoutRegistryHome m_home;
+
//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------

public DefaultLayoutRegistryManager(
- Logger logger, Date creation, URI uri, LayoutManager[] managers )
+ Logger logger, Date creation, LayoutRegistryHome home, URI uri,
LayoutManager[] managers )
throws DuplicateKeyException
{
- super( logger, creation, uri );
+ super( logger, creation, home, uri );
+
+ m_home = home;
for( int i=0; i<managers.length; i++ )
{
LayoutManager manager = managers[i];
@@ -81,7 +86,7 @@
}

//
------------------------------------------------------------------------
- // ModificationListener (listen to modification to hosts)
+ // Home (listen to modification to hosts)
//
------------------------------------------------------------------------

/**
@@ -136,9 +141,8 @@

public void addLayoutManager( String id ) throws DuplicateKeyException
{
- Logger logger = getLogger();
- DefaultLayoutManager m = new DefaultLayoutManager( logger, id );
- addLayoutManager( m );
+ LayoutManager manager = m_home.createLayoutManager( id );
+ addLayoutManager( manager );
}

public void addLayoutManager( LayoutManager manager ) throws
DuplicateKeyException

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultManager.java
Tue Jun 7 02:41:36 2005
@@ -33,6 +33,7 @@
import net.dpml.transit.management.Manager;
import net.dpml.transit.management.ModificationEvent;
import net.dpml.transit.management.ModificationListener;
+import net.dpml.transit.management.Home;

/**
* A abstract base class that established an event queue and handles event
dispatch
@@ -66,11 +67,13 @@
*/
protected Date m_modification;

+ private Home m_home;
+
//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------

- public DefaultManager( Logger logger, Date creation )
+ public DefaultManager( Logger logger, Date creation, Home home )
throws NullPointerException
{
if( null == logger )
@@ -79,6 +82,11 @@
}
m_logger = logger;
m_creation = creation;
+ m_home = home;
+ if( null != home )
+ {
+ addModificationListener( home );
+ }
}

//
------------------------------------------------------------------------
@@ -145,10 +153,23 @@
removeListener( listener );
}

+ public void dispose()
+ {
+ if( null != m_home )
+ {
+ removeModificationListener( m_home );
+ }
+ }
+
//
------------------------------------------------------------------------
// DefaultManager
//
------------------------------------------------------------------------

+ protected Home getHome()
+ {
+ return m_home;
+ }
+
protected void setModified()
{
m_modification = new Date();

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultPluginManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultPluginManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultPluginManager.java
Tue Jun 7 02:41:36 2005
@@ -32,6 +32,7 @@
import net.dpml.transit.model.PluginListener;
import net.dpml.transit.model.Logger;

+import net.dpml.transit.management.PluginHome;
import net.dpml.transit.management.PluginManager;

/**
@@ -55,9 +56,9 @@
// constructor
//
------------------------------------------------------------------------

- public DefaultPluginManager( Logger logger, Date creation, URI uri )
+ public DefaultPluginManager( Logger logger, Date creation, PluginHome
home, URI uri )
{
- super( logger, creation );
+ super( logger, creation, home );
m_uri = uri;
}

@@ -85,9 +86,9 @@
m_uri = uri;
if( notify )
{
+ setModified();
PluginChangeEvent e = new PluginChangeEvent( this, m_uri );
super.enqueueEvent( e );
- setModified();
}
}
}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultProxyManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultProxyManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultProxyManager.java
Tue Jun 7 02:41:36 2005
@@ -32,7 +32,9 @@
import net.dpml.transit.model.ModelException;
import net.dpml.transit.model.Logger;

+import net.dpml.transit.management.ProxyHome;
import net.dpml.transit.management.ProxyManager;
+import net.dpml.transit.management.ModificationListener;

import net.dpml.transit.network.RequestIdentifier;

@@ -58,10 +60,11 @@
//
------------------------------------------------------------------------

public DefaultProxyManager(
- Logger logger, Date creation, URL host, PasswordAuthentication auth,
String[] excludes )
+ Logger logger, Date creation, ProxyHome home,
+ URL host, PasswordAuthentication auth, String[] excludes )
throws NullPointerException
{
- super( logger, creation );
+ super( logger, creation, home );
m_host = host;
m_authentication = auth;
m_excludes = excludes;

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultRepositoryManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultRepositoryManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultRepositoryManager.java
Tue Jun 7 02:41:36 2005
@@ -22,6 +22,7 @@
import java.util.EventObject;
import java.util.Date;

+import net.dpml.transit.management.RepositoryHome;
import net.dpml.transit.management.RepositoryManager;
import net.dpml.transit.model.PluginChangeEvent;
import net.dpml.transit.model.Logger;
@@ -33,9 +34,9 @@
*/
public class DefaultRepositoryManager extends DefaultPluginManager
implements RepositoryManager
{
- public DefaultRepositoryManager( Logger logger, Date creation, URI uri )
+ public DefaultRepositoryManager( Logger logger, Date creation,
RepositoryHome home, URI uri )
{
- super( logger, creation, uri );
+ super( logger, creation, home, uri );
}
}


Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultTransitManager.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultTransitManager.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/manager/DefaultTransitManager.java
Tue Jun 7 02:41:36 2005
@@ -29,6 +29,7 @@
import net.dpml.transit.model.ProxyModel;
import net.dpml.transit.model.LayoutRegistryModel;

+import net.dpml.transit.management.TransitHome;
import net.dpml.transit.management.TransitManager;
import net.dpml.transit.management.CacheManager;
import net.dpml.transit.management.ContentRegistryManager;
@@ -54,24 +55,18 @@
private final ContentRegistryManager m_registry;
private final RepositoryManager m_repository;
private final ProxyManager m_proxy;
- private final LayoutRegistryManager m_layout;
- private final ModificationListener m_listener;

//
------------------------------------------------------------------------
// constructor
//
------------------------------------------------------------------------

public DefaultTransitManager(
- ModificationListener listener,
- Logger logger, Date creation, LayoutRegistryManager layout,
CacheManager cache,
- ContentRegistryManager content, RepositoryManager repository,
ProxyManager proxy )
+ Logger logger, Date creation, TransitHome home, CacheManager cache,
+ ContentRegistryManager content, RepositoryManager repository,
+ ProxyManager proxy )
{
- super( logger, creation );
+ super( logger, creation, home );

- if( null == layout )
- {
- throw new NullPointerException( "layout" );
- }
if( null == cache )
{
throw new NullPointerException( "cache" );
@@ -89,23 +84,15 @@
throw new NullPointerException( "proxy" );
}

- m_layout = layout;
m_cache = cache;
m_registry = content;
m_repository = repository;
m_proxy = proxy;
- m_listener = listener;

- m_layout.addModificationListener( this );
m_cache.addModificationListener( this );
m_registry.addModificationListener( this );
m_repository.addModificationListener( this );
m_proxy.addModificationListener( this );
-
- if( m_listener != null )
- {
- addModificationListener( m_listener );
- }
}

//
------------------------------------------------------------------------
@@ -164,16 +151,6 @@
return m_repository;
}

- /**
- * Return the layout registry manager.
- *
- * @return the layout model
- */
- public LayoutRegistryManager getLayoutRegistryManager()
- {
- return m_layout;
- }
-
//
------------------------------------------------------------------------
// TransitModel
//
------------------------------------------------------------------------
@@ -217,16 +194,5 @@
{
return getRepositoryManager();
}
-
- /**
- * Return the model maintaining configuration information about
- * the available location resolvers.
- *
- * @return the layout model
- */
- public LayoutRegistryModel getLayoutRegistryModel()
- {
- return getLayoutRegistryManager();
- }
}


Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/model/CacheModel.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/model/CacheModel.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/model/CacheModel.java
Tue Jun 7 02:41:36 2005
@@ -56,4 +56,17 @@
*/
void removeCacheListener( CacheListener listener );

+ /**
+ * Return the cache layout strategy model.
+ * @return the layout model
+ */
+ LayoutModel getLayoutModel();
+
+ /**
+ * Return the layout registry model.
+ * @return the layout registry model
+ */
+ LayoutRegistryModel getLayoutRegistryModel();
+
+
}

Added:
development/main/transit/core/handler/src/main/net/dpml/transit/model/ModelRuntimeException.java
==============================================================================
--- (empty file)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/model/ModelRuntimeException.java
Tue Jun 7 02:41:36 2005
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2005 Stephen J. McConnell.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.dpml.transit.model;
+
+import net.dpml.transit.TransitRuntimeException;
+
+/**
+ * Exception to indicate that there was a configuration model related error.
+ *
+ * @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
+ */
+public class ModelRuntimeException extends TransitRuntimeException
+{
+ /**
+ * Construct a new <code>ModelRuntimeException</code> instance.
+ *
+ * @param message The detail message for this exception.
+ */
+ public ModelRuntimeException( final String message )
+ {
+ this( message, null );
+ }
+
+ /**
+ * Construct a new <code>ModelRuntimeException</code> instance.
+ *
+ * @param message The detail message for this exception.
+ * @param cause the root cause of the exception
+ */
+ public ModelRuntimeException( final String message, final Throwable
cause )
+ {
+ super( message, cause );
+ }
+}
+

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/model/TransitModel.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/model/TransitModel.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/model/TransitModel.java
Tue Jun 7 02:41:36 2005
@@ -52,12 +52,4 @@
*/
RepositoryModel getRepositoryModel();

- /**
- * Return the model maintaining configuration information about
- * the available location resolvers.
- *
- * @return the layout model
- */
- LayoutRegistryModel getLayoutRegistryModel();
-
}

Modified:
development/main/transit/core/handler/src/main/net/dpml/transit/repository/Repository.java
==============================================================================
---
development/main/transit/core/handler/src/main/net/dpml/transit/repository/Repository.java
(original)
+++
development/main/transit/core/handler/src/main/net/dpml/transit/repository/Repository.java
Tue Jun 7 02:41:36 2005
@@ -87,6 +87,6 @@
* @param params a priority ordered array of instances values to be used
in
* constructor parameter value assignment
*/
- Object instantiate( Class clazz, Object[] params ) throws
RepositoryException;
+ Object instantiate( Class clazz, Object[] params ) throws Exception;

}

Modified:
development/main/transit/core/handler/src/test/net/dpml/transit/manager/ProxyManagerTestCase.java
==============================================================================
---
development/main/transit/core/handler/src/test/net/dpml/transit/manager/ProxyManagerTestCase.java
(original)
+++
development/main/transit/core/handler/src/test/net/dpml/transit/manager/ProxyManagerTestCase.java
Tue Jun 7 02:41:36 2005
@@ -36,8 +36,8 @@
import net.dpml.transit.manager.DefaultProxyManager;
import net.dpml.transit.management.ProxyManager;
import net.dpml.transit.management.TransitManager;
-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.management.TransitHome;
+import net.dpml.transit.builder.TransitStorageUnit;

/**
* @author <a href="http://www.dpml.net";>The Digital Product Meta Library</a>
@@ -54,28 +54,11 @@
System.setProperty( "dpml.data", path );
Preferences prefs =
Preferences.userNodeForPackage( Transit.class ).node( "test"
).node( "proxy-manager-test" );
- TransitHome home = new PreferencesStorageHome();
- home.setPreferences( prefs );
+ TransitHome home = new TransitStorageUnit( prefs );
home.clearBeforeInitialization( true );
m_manager = home.create();
}

- public void testProxyAuthentication() throws Exception
- {
- String username = "peter";
- String password = "rabbit";
- Logger logger = m_manager.getLogger().getChildLogger( "proxy-test" );
- PasswordAuthentication auth =
- new PasswordAuthentication( username, password.toCharArray() );
- URL host = new URL( "http://localhost"; );
- String[] excludes = new String[]{ "http://abc";, "http://xyz"; };
- ProxyManager manager = new DefaultProxyManager( logger, new Date(),
host, auth, excludes );
- assertEquals( "host", host, manager.getHost() );
- assertEquals( "auth", auth, manager.getAuthentication() );
- assertEquals( "logger", logger, manager.getLogger() );
- assertEquals( "excludes", excludes.length,
manager.getExcludes().length );
- }
-
public void testProxyAuthenticationListener() throws Exception
{
String username = "peter";

Modified:
development/main/transit/core/handler/src/test/net/dpml/transit/manager/TransitManagerTestCase.java
==============================================================================
---
development/main/transit/core/handler/src/test/net/dpml/transit/manager/TransitManagerTestCase.java
(original)
+++
development/main/transit/core/handler/src/test/net/dpml/transit/manager/TransitManagerTestCase.java
Tue Jun 7 02:41:36 2005
@@ -28,9 +28,9 @@

import net.dpml.transit.Transit;
import net.dpml.transit.adapter.LoggingAdapter;
+import net.dpml.transit.builder.TransitStorageUnit;
import net.dpml.transit.model.Logger;
-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.management.TransitHome;
import net.dpml.transit.management.TransitManager;

/**
@@ -47,8 +47,7 @@
m_data = new File( path );
System.setProperty( "dpml.data", path );
Preferences prefs = Preferences.userNodeForPackage( Transit.class
).node( "test" );
- TransitHome home = new PreferencesStorageHome();
- home.setPreferences( prefs );
+ TransitHome home = new TransitStorageUnit( prefs );
home.clearBeforeInitialization( true );
m_manager = home.create();
}

Modified:
development/main/transit/core/handler/src/test/net/dpml/transit/test/LinkTestCase.java
==============================================================================
---
development/main/transit/core/handler/src/test/net/dpml/transit/test/LinkTestCase.java
(original)
+++
development/main/transit/core/handler/src/test/net/dpml/transit/test/LinkTestCase.java
Tue Jun 7 02:41:36 2005
@@ -33,9 +33,8 @@
import net.dpml.transit.util.StreamUtils;
import net.dpml.transit.adapter.LoggingAdapter;
import net.dpml.transit.Transit;
-
-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.builder.TransitStorageUnit;
+import net.dpml.transit.management.TransitHome;
import net.dpml.transit.management.TransitManager;

/**
@@ -61,8 +60,7 @@
Logger logger = Logger.getLogger( "test" );
//logger.setLevel( Level.parse( "FINE" ) );
LoggingAdapter adapter = new LoggingAdapter( logger );
- TransitHome home = new PreferencesStorageHome();
- home.setPreferences( prefs );
+ TransitHome home = new TransitStorageUnit( prefs );
home.clearBeforeInitialization( true );
home.setAuthority( authority );
TransitManager manager = home.create();

Modified:
development/main/transit/core/handler/src/test/net/dpml/transit/test/OfflineTestCase.java
==============================================================================
---
development/main/transit/core/handler/src/test/net/dpml/transit/test/OfflineTestCase.java
(original)
+++
development/main/transit/core/handler/src/test/net/dpml/transit/test/OfflineTestCase.java
Tue Jun 7 02:41:36 2005
@@ -33,8 +33,8 @@

import junit.framework.TestCase;

-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.builder.TransitStorageUnit;
+import net.dpml.transit.management.TransitHome;
import net.dpml.transit.management.TransitManager;
import net.dpml.transit.adapter.LoggingAdapter;
import net.dpml.transit.Transit;
@@ -64,8 +64,7 @@
Logger logger = Logger.getLogger( "test" );
//logger.setLevel( Level.parse( "FINE" ) );
LoggingAdapter adapter = new LoggingAdapter( logger );
- TransitHome home = new PreferencesStorageHome();
- home.setPreferences( prefs );
+ TransitHome home = new TransitStorageUnit( prefs );
home.clearBeforeInitialization( true );
home.setAuthority( authority );
home.setLogger( adapter );

Modified:
development/main/transit/core/handler/src/test/net/dpml/transit/test/OnlineTestCase.java
==============================================================================
---
development/main/transit/core/handler/src/test/net/dpml/transit/test/OnlineTestCase.java
(original)
+++
development/main/transit/core/handler/src/test/net/dpml/transit/test/OnlineTestCase.java
Tue Jun 7 02:41:36 2005
@@ -33,8 +33,8 @@

import net.dpml.transit.Transit;
import net.dpml.transit.management.TransitManager;
-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.management.TransitHome;
+import net.dpml.transit.builder.TransitStorageUnit;

/**
* URL Handler TestCase for Offline operations.
@@ -52,8 +52,7 @@
{
Preferences prefs =
Preferences.userNodeForPackage( Transit.class
).node("test").node( "online-test" );
- TransitHome home = new PreferencesStorageHome();
- home.setPreferences( prefs );
+ TransitHome home = new TransitStorageUnit( prefs );
home.clearBeforeInitialization( true );
TransitManager manager = home.create();
TRANSIT = Transit.getInstance( manager );

Modified:
development/main/transit/core/tools/src/main/net/dpml/transit/tools/ImportArtifactTask.java
==============================================================================
---
development/main/transit/core/tools/src/main/net/dpml/transit/tools/ImportArtifactTask.java
(original)
+++
development/main/transit/core/tools/src/main/net/dpml/transit/tools/ImportArtifactTask.java
Tue Jun 7 02:41:36 2005
@@ -28,12 +28,12 @@
import net.dpml.transit.Transit;
import net.dpml.transit.TransitAlreadyInitializedException;
import net.dpml.transit.artifact.Handler;
+import net.dpml.transit.builder.TransitStorageUnit;
import net.dpml.transit.monitors.Monitor;
import net.dpml.transit.model.Logger;
import net.dpml.transit.model.TransitModel;
import net.dpml.transit.management.TransitManager;
-import net.dpml.transit.builder.TransitHome;
-import net.dpml.transit.builder.PreferencesStorageHome;
+import net.dpml.transit.management.TransitHome;

/**
* Ant task that provides support for the import of build file templates
@@ -54,8 +54,8 @@
setTaskName( "import" );
try
{
+ TransitHome home = new TransitStorageUnit();
Logger logger = new AntAdapter( this );
- TransitHome home = new PreferencesStorageHome();
home.setLogger( logger );
TransitManager manager = home.create();
Transit.getInstance( manager );



  • svn commit: r2741 - in development/main: depot/prefs/src/main/net/dpml/depot/prefs metro/composition/content/src/main/net/dpml/composition/content test/unit/plus/src/test/net/dpml/test/acme/plus transit/core/handler/src/main/net/dpml/transit transit/core/handler/src/main/net/dpml/transit/builder transit/core/handler/src/main/net/dpml/transit/cache transit/core/handler/src/main/net/dpml/transit/content transit/core/handler/src/main/net/dpml/transit/control transit/core/handler/src/main/net/dpml/transit/layout transit/core/handler/src/main/net/dpml/transit/management transit/core/handler/src/main/net/dpml/transit/manager transit/core/handler/src/main/net/dpml/transit/model transit/core/handler/src/main/net/dpml/transit/repository transit/core/handler/src/main/net/dpml/transit/store transit/core/handler/src/test/net/dpml/transit/builder transit/core/handler/src/test/net/dpml/transit/manager transit/core/handler/src/test/net/dpml/transit/test transit/core/tools/src/main/net/dpml/transit/tools, mcconnell, 06/07/2005

Archive powered by MHonArc 2.6.24.

Top of Page