You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by we...@apache.org on 2004/07/20 15:42:06 UTC
cvs commit: jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components SpringComponentManager.java PicoComponentManager.java ComponentAssemblyTestCase.java ContainerManagement.java ComponentManager.java
weaver 2004/07/20 06:42:06
Modified: components/cm/src/java/org/apache/jetspeed/components
ComponentAssemblyTestCase.java
ContainerManagement.java ComponentManager.java
Added: components/cm/src/java/org/apache/jetspeed/components
SpringComponentManager.java
PicoComponentManager.java
Log:
- Added support for Spring Framework for component management.
- ComponentManager converted to an interface
Revision Changes Path
1.6 +2 -2 jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/ComponentAssemblyTestCase.java
Index: ComponentAssemblyTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/ComponentAssemblyTestCase.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ComponentAssemblyTestCase.java 23 Jun 2004 18:29:48 -0000 1.5
+++ ComponentAssemblyTestCase.java 20 Jul 2004 13:42:06 -0000 1.6
@@ -84,7 +84,7 @@
File containerAssembler = new File(applicationRoot + "/assembly/" + getTestName() + getAssemblyScriptType());
assertTrue(containerAssembler.exists());
- componentManager = new ComponentManager(containerAssembler, null, "TEST_SCOPE");
+ componentManager = new PicoComponentManager(containerAssembler, null, "TEST_SCOPE");
assertNotNull(componentManager.getRootContainer());
1.4 +3 -5 jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/ContainerManagement.java
Index: ContainerManagement.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/ContainerManagement.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ContainerManagement.java 23 Jun 2004 18:29:48 -0000 1.3
+++ ContainerManagement.java 20 Jul 2004 13:42:06 -0000 1.4
@@ -17,8 +17,6 @@
import java.util.Collection;
-import org.picocontainer.MutablePicoContainer;
-
/**
* ContainerManagement
*
@@ -28,9 +26,9 @@
public interface ContainerManagement
{
- MutablePicoContainer getContainer(String containerName);
+ Object getContainer(String containerName);
- MutablePicoContainer getRootContainer();
+ Object getRootContainer();
Collection getContainers();
1.10 +7 -112 jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/ComponentManager.java
Index: ComponentManager.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/ComponentManager.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ComponentManager.java 9 Jul 2004 20:02:51 -0000 1.9
+++ ComponentManager.java 20 Jul 2004 13:42:06 -0000 1.10
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2004 The Apache Software Foundation.
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,123 +15,18 @@
*/
package org.apache.jetspeed.components;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.nanocontainer.NanoContainer;
-import org.nanocontainer.script.ScriptedContainerBuilder;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.PicoContainer;
-import org.picocontainer.defaults.ObjectReference;
-import org.picocontainer.defaults.SimpleReference;
-
/**
* <p>
* ComponentManager
* </p>
- *
+ * <p>
+ *
+ * </p>
* @author <a href="mailto:weaver@apache.org">Scott T. Weaver</a>
- * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
* @version $Id$
*
*/
-public class ComponentManager implements ComponentManagement, ContainerManagement
-{
- protected ScriptedContainerBuilder containerBuilder;
- protected ObjectReference rootContainerRef;
- protected MutablePicoContainer rootContainer;
-
- /**
- *
- * @param assemblyFile
- * @param parent
- * @param scope
- * @throws IOException
- * @throws ClassNotFoundException
- */
- public ComponentManager( File assemblyFile, PicoContainer parent, String scope) throws IOException, ClassNotFoundException
- {
- rootContainerRef = new SimpleReference();
- NanoContainer nano = new NanoContainer(assemblyFile, this.getClass().getClassLoader());
- ObjectReference parentRef = null;
- if(parent != null)
- {
- parentRef = new SimpleReference();
- parentRef.set(parent);
- }
- containerBuilder = nano.getContainerBuilder();
- containerBuilder.buildContainer(rootContainerRef, parentRef, scope);
- this.rootContainer = (MutablePicoContainer) rootContainerRef.get();
- }
-
- /**
- * @see org.apache.jetspeed.components.ComponentManagement#getComponent(java.lang.String)
- */
- public Object getComponent(Object componentName)
- {
-
- return getRootContainer().getComponentInstance(componentName);
- }
-
- public MutablePicoContainer getRootContainer()
- {
- return rootContainer;
- }
-
- /**
- * @see org.apache.jetspeed.components.ComponentManagement#getComponent(java.lang.String, java.lang.String)
- */
- public Object getComponent(Object containerName, Object componentName)
- {
- MutablePicoContainer container = (MutablePicoContainer) getRootContainer().getComponentInstance(containerName);
- if(container != null)
- {
- return container.getComponentInstance(componentName);
- }
-
- return null;
- }
-
- /**
- * @see org.apache.jetspeed.components.ContainerManagement#getContainer(java.lang.String)
- */
- public MutablePicoContainer getContainer(String containerName)
- {
- return (MutablePicoContainer) getRootContainer().getComponentInstance(containerName);
- }
-
- /**
- * @see org.apache.jetspeed.components.ContainerManagement#getContainers()
- */
- public Collection getContainers()
- {
- Iterator itr = getRootContainer().getComponentInstances().iterator();
- ArrayList list = new ArrayList();
- while(itr.hasNext())
- {
- Object comp = itr.next();
- if(comp instanceof PicoContainer)
- {
- list.add(comp);
- }
- }
- return list;
- }
-
- /**
- * <p>
- * stop
- * </p>
- *
- * @see org.apache.jetspeed.components.ContainerManagement#stop()
- *
- */
- public void stop()
- {
- containerBuilder.killContainer(rootContainerRef);
+public interface ComponentManager extends ComponentManagement, ContainerManagement
+{
- }
}
1.1 jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/SpringComponentManager.java
Index: SpringComponentManager.java
===================================================================
/*
* Created on Jul 16, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package org.apache.jetspeed.components;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Properties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
/**
* <p>
* SpringComponentManager
* </p>
* <p>
*
* </p>
* @author <a href="mailto:weaver@apache.org">Scott T. Weaver</a>
* @version $Id: SpringComponentManager.java,v 1.1 2004/07/20 13:42:06 weaver Exp $
*
*/
public class SpringComponentManager implements ComponentManager
{
protected FileSystemXmlApplicationContext appContext;
protected ArrayList factories;
public SpringComponentManager(String[] springConfigs, ApplicationContext parentAppContext)
{
factories = new ArrayList();
appContext = new FileSystemXmlApplicationContext(springConfigs, parentAppContext );
factories.add(appContext);
}
/**
* <p>
* getComponent
* </p>
*
* @see org.apache.jetspeed.components.ComponentManagement#getComponent(java.lang.Object)
* @param componentName
* @return
*/
public Object getComponent( Object componentName )
{
if(componentName instanceof Class)
{
return appContext.getBean(((Class)componentName).getName());
}
else
{
return appContext.getBean(componentName.toString());
}
}
/**
* <p>
* getComponent
* </p>
*
* @see org.apache.jetspeed.components.ComponentManagement#getComponent(java.lang.Object, java.lang.Object)
* @param containerName
* @param componentName
* @return
*/
public Object getComponent( Object containerName, Object componentName )
{
return getComponent(componentName);
}
/**
* <p>
* getContainer
* </p>
*
* @see org.apache.jetspeed.components.ContainerManagement#getContainer(java.lang.String)
* @param containerName
* @return
*/
public Object getContainer( String containerName )
{
return appContext;
}
/**
* <p>
* getRootContainer
* </p>
*
* @see org.apache.jetspeed.components.ContainerManagement#getRootContainer()
* @return
*/
public Object getRootContainer()
{
return appContext;
}
/**
* <p>
* getContainers
* </p>
*
* @see org.apache.jetspeed.components.ContainerManagement#getContainers()
* @return
*/
public Collection getContainers()
{
return factories;
}
/**
* <p>
* stop
* </p>
*
* @see org.apache.jetspeed.components.ContainerManagement#stop()
*
*/
public void stop()
{
appContext.close();
}
}
1.1 jakarta-jetspeed-2/components/cm/src/java/org/apache/jetspeed/components/PicoComponentManager.java
Index: PicoComponentManager.java
===================================================================
/*
* Copyright 2000-2004 The Apache Software Foundation.
*
* 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 org.apache.jetspeed.components;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.nanocontainer.NanoContainer;
import org.nanocontainer.script.ScriptedContainerBuilder;
import org.picocontainer.MutablePicoContainer;
import org.picocontainer.PicoContainer;
import org.picocontainer.defaults.ObjectReference;
import org.picocontainer.defaults.SimpleReference;
/**
* <p>
* ComponentManager
* </p>
*
* @author <a href="mailto:weaver@apache.org">Scott T. Weaver</a>
* @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
* @version $Id: PicoComponentManager.java,v 1.1 2004/07/20 13:42:06 weaver Exp $
*
*/
public class PicoComponentManager implements ComponentManager
{
protected ScriptedContainerBuilder containerBuilder;
protected ObjectReference rootContainerRef;
protected MutablePicoContainer rootContainer;
/**
*
* @param assemblyFile
* @param parent
* @param scope
* @throws IOException
* @throws ClassNotFoundException
*/
public PicoComponentManager( File assemblyFile, PicoContainer parent, String scope) throws IOException, ClassNotFoundException
{
rootContainerRef = new SimpleReference();
NanoContainer nano = new NanoContainer(assemblyFile, this.getClass().getClassLoader());
ObjectReference parentRef = null;
if(parent != null)
{
parentRef = new SimpleReference();
parentRef.set(parent);
}
containerBuilder = nano.getContainerBuilder();
containerBuilder.buildContainer(rootContainerRef, parentRef, scope);
this.rootContainer = (MutablePicoContainer) rootContainerRef.get();
}
/**
* @see org.apache.jetspeed.components.ComponentManagement#getComponent(java.lang.String)
*/
public Object getComponent(Object componentName)
{
return rootContainer.getComponentInstance(componentName);
}
public Object getRootContainer()
{
return rootContainer;
}
/**
* @see org.apache.jetspeed.components.ComponentManagement#getComponent(java.lang.String, java.lang.String)
*/
public Object getComponent(Object containerName, Object componentName)
{
MutablePicoContainer container = (MutablePicoContainer) rootContainer.getComponentInstance(containerName);
if(container != null)
{
return container.getComponentInstance(componentName);
}
return null;
}
/**
* @see org.apache.jetspeed.components.ContainerManagement#getContainer(java.lang.String)
*/
public Object getContainer(String containerName)
{
return (MutablePicoContainer) rootContainer.getComponentInstance(containerName);
}
/**
* @see org.apache.jetspeed.components.ContainerManagement#getContainers()
*/
public Collection getContainers()
{
Iterator itr = rootContainer.getComponentInstances().iterator();
ArrayList list = new ArrayList();
while(itr.hasNext())
{
Object comp = itr.next();
if(comp instanceof PicoContainer)
{
list.add(comp);
}
}
return list;
}
/**
* <p>
* stop
* </p>
*
* @see org.apache.jetspeed.components.ContainerManagement#stop()
*
*/
public void stop()
{
containerBuilder.killContainer(rootContainerRef);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org