taylor 2004/02/26 14:50:42
Modified:
components/registry/src/java/org/apache/jetspeed/components/portletentity
PortletEntityAccessComponentImpl.java
portal maven.xml
portal/src/java/org/apache/jetspeed/aggregator/impl
PortletRendererImpl.java
portal/src/java/org/apache/jetspeed/capability/impl
CapabilityValveImpl.java
portal/src/test/org/apache/jetspeed/capability
TestCapability.java
portal/src/webapp/WEB-INF/assembly jetspeed.groovy
portal/src/webapp/WEB-INF/conf jetspeed.properties
portal/src/webapp/WEB-INF/db/hsql Registry.script
Added: portal/src/java/org/apache/jetspeed/capability
Capabilities.java
portal/src/java/org/apache/jetspeed/capability/containers
capability-container.groovy
portal/src/java/org/apache/jetspeed/capability/impl
JetspeedCapabilities.java
Removed: portal/src/java/org/apache/jetspeed/capability
CapabilityService.java
portal/src/java/org/apache/jetspeed/capability/impl
CapabilityServiceImpl.java
Log:
convert Capabilities from fulcrum service to component
Revision Changes Path
1.4 +3 -2
jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity/PortletEntityAccessComponentImpl.java
Index: PortletEntityAccessComponentImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity/PortletEntityAccessComponentImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PortletEntityAccessComponentImpl.java 25 Feb 2004 22:22:04 -0000 1.3
+++ PortletEntityAccessComponentImpl.java 26 Feb 2004 22:50:41 -0000 1.4
@@ -111,10 +111,11 @@
else
{
PersistenceStore store = getPersistenceStore();
+ prepareTransaction(store);
+
Filter filter = store.newFilter();
filter.addEqualTo("oid", entityId);
Object q = store.newQuery(entityClass, filter);
- prepareTransaction(store);
PortletEntity portletEntity = (PortletEntity) store.getObjectByQuery(q);
entityCache.put(entityId, portletEntity);
1.50 +1 -1 jakarta-jetspeed-2/portal/maven.xml
Index: maven.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/maven.xml,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- maven.xml 26 Feb 2004 05:15:41 -0000 1.49
+++ maven.xml 26 Feb 2004 22:50:41 -0000 1.50
@@ -5,7 +5,7 @@
xmlns:maven="jelly:maven">
<!-- Target of maven test:single test -->
-<property name='testcase' value='org.apache.jetspeed.pipeline.TestPipeline'/>
+<property name='testcase' value='org.apache.jetspeed.capability.TestCapability'/>
<!-- ================================================================ -->
<!-- Set System properties for junit -->
1.8 +3 -2
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
Index: PortletRendererImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PortletRendererImpl.java 24 Feb 2004 00:43:23 -0000 1.7
+++ PortletRendererImpl.java 26 Feb 2004 22:50:41 -0000 1.8
@@ -230,7 +230,8 @@
{
ObjectID oid = JetspeedObjectID.createFromString(fragment.getId());
PortletEntityAccessComponent entityAccess = (PortletEntityAccessComponent)
Jetspeed.getComponentManager().getComponent(PortletEntityAccessComponent.class);
- PortletEntity portletEntity = entityAccess.getPortletEntity(oid);
+ // DST: PortletEntity portletEntity = entityAccess.getPortletEntity(oid);
+ PortletEntity portletEntity = null;
PortletWindow portletWindow = null;
if (portletEntity==null)
1.1
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/Capabilities.java
Index: Capabilities.java
===================================================================
/*
* 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.
* 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.capability;
import java.util.Collection;
import java.util.Iterator;
/**
* Capabilities Component Interface
*
* @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
* @version $Id: Capabilities.java,v 1.1 2004/02/26 22:50:41 taylor Exp $
*/
public interface Capabilities
{
/**
* Creates a Capability Map with Capabilities, Mimetypes and mediaTypes for the
given UserAgentPattern
* @param userAgent Agent from the request
* @return CapabilityMap populated with Capabilities, Mimetypes and Mediatype
* that match the userAgent
*/
CapabilityMap getCapabilityMap(String userAgent);
/**
* Obtain an iterator of all existing clients.
* @return Returns an iterator for all existing Clients
*/
Iterator getClients();
/**
* Finds a client for a given userAgentPattern
* @param userAgent
* @return Client that matches agent or null if no match is found
*
*/
Client findClient(String userAgent);
/**
* Returns a collection of MediaTypes that matches the MimeTypes defined in the
mimetype parameter
* @param Mimetype
*
* @return Collection of Mediatypes that matches the mimetypes
*/
Collection getMediaTypesForMimeTypes(Iterator mimetypes);
/**
* Clears CapabilityMap cache
* TODO: Roger, why is this on the public interface. It seems to be impl
specific
*/
void deleteCapabilityMapCache();
/**
* Given a media type string, look up the corresponding media type object.
*
* @param mediaType The string representation of a media type.
* @return The found media type object or if not found, null.
*/
MediaType getMediaType(String mediaType);
/**
* Given a Mimetype string lookup the corresponding media type object
* @param mimeTypeName to use for lookup
* @return MediaTypeEntry that matches the lookup in the MEDIATYPE_TO_MIMETYPE
table
*/
public MediaType getMediaTypeForMimeType(String mimeTypeName);
}
1.1
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/containers/capability-container.groovy
Index: capability-container.groovy
===================================================================
import org.picocontainer.defaults.DefaultPicoContainer
import org.picocontainer.ComponentAdapter
import org.picocontainer.defaults.ConstructorComponentAdapter
import org.picocontainer.Parameter
import org.picocontainer.defaults.ConstantParameter
import org.picocontainer.defaults.ComponentParameter
import org.hsqldb.jdbcDriver
import org.apache.jetspeed.components.hsql.HSQLServerComponent
import org.apache.jetspeed.components.hsql.HSQLServerComponent
import org.apache.jetspeed.components.jndi.JNDIComponent
import org.apache.jetspeed.components.jndi.TyrexJNDIComponent
import org.apache.jetspeed.components.datasource.DBCPDatasourceComponent
import org.apache.jetspeed.components.datasource.DatasourceComponent
import org.apache.commons.pool.impl.GenericObjectPool
import org.apache.jetspeed.components.persistence.store.ojb.OJBTypeIntializer
import org.apache.jetspeed.components.persistence.store.ojb.otm.OTMStoreImpl
import
org.apache.jetspeed.components.persistence.store.impl.DefaultPersistenceStoreContainer
import org.apache.jetspeed.components.persistence.store.PersistenceStoreContainer
import org.apache.jetspeed.capability.Capabilities
import org.apache.jetspeed.capability.impl.JetspeedCapabilities
import java.io.File
import java.util.Properties
// create the root container
container = new DefaultPicoContainer()
// This is the HSQL engine that holds the test registry
if(new File("./test/db/hsql").exists())
{
container.registerComponentInstance(new HSQLServerComponent(9001,
"sa","","./test/db/hsql/Registry",false, true))
}
else
{
container.registerComponentInstance(new HSQLServerComponent(9001,
"sa","","./portal/test/db/hsql/Registry",false, true))
}
// This JNDI component helps us publish the datasource
Class jndiClass = Class.forName("org.apache.jetspeed.components.jndi.JNDIComponent")
Class tyrexJndiClass =
Class.forName("org.apache.jetspeed.components.jndi.TyrexJNDIComponent")
container.registerComponentImplementation(jndiClass, tyrexJndiClass)
// Create a datasource based on the HSQL server we just created
Class dsClass =
Class.forName("org.apache.jetspeed.components.datasource.DatasourceComponent")
container.registerComponentInstance(dsClass, new DBCPDatasourceComponent("sa","",
"org.hsqldb.jdbcDriver", "jdbc:hsqldb:hsql://127.0.0.1", 20, 5000,
GenericObjectPool.WHEN_EXHAUSTED_GROW, true))
//
// Persistence
PersistenceContainer pContainer = new DefaultPersistenceStoreContainer(300000, 10000)
Class pContainerClass =
Class.forName("org.apache.jetspeed.components.persistence.store.PersistenceStoreContainer")
// Parameter[] storeParams = new Parameter[] {new ConstantParameter("jetspeed")}
Class OTMStoreClass =
Class.forName("org.apache.jetspeed.components.persistence.store.ojb.otm.OTMStoreImpl")
ComponentAdapter ca = new ConstructorComponentAdapter("jetspeed", OTMStoreClass, new
Parameter[] {new ConstantParameter("jetspeed")})
pContainer.registerComponent(ca)
container.registerComponentInstance(pContainerClass, pContainer);
//
// Capabilities
//
container.registerComponentInstance(Capabilities, new
JetspeedCapabilities(pContainer))
return container
1.5 +7 -7
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/CapabilityValveImpl.java
Index: CapabilityValveImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/CapabilityValveImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CapabilityValveImpl.java 8 Jan 2004 23:25:12 -0000 1.4
+++ CapabilityValveImpl.java 26 Feb 2004 22:50:41 -0000 1.5
@@ -56,16 +56,16 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.Jetspeed;
import org.apache.jetspeed.pipeline.PipelineException;
import org.apache.jetspeed.pipeline.valve.CapabilityValve;
import org.apache.jetspeed.pipeline.valve.ValveContext;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
import org.apache.jetspeed.request.RequestContext;
-import org.apache.jetspeed.capability.CapabilityService;
+import org.apache.jetspeed.capability.Capabilities;
import org.apache.jetspeed.capability.CapabilityMap;
import org.apache.jetspeed.capability.MediaType;
import org.apache.jetspeed.capability.MimeType;
-import org.apache.jetspeed.cps.CommonPortletServices;
/**
* Invokes the capability mapper in the request pipeline
@@ -86,9 +86,9 @@
}
- protected CapabilityService getService()
+ protected Capabilities getComponent()
{
- return (CapabilityService)
CommonPortletServices.getPortalService(CapabilityService.SERVICE_NAME);
+ return
(Capabilities)Jetspeed.getComponentManager().getComponent(Capabilities.class);
}
public void invoke(RequestContext request, ValveContext context)
@@ -100,10 +100,10 @@
String agent = request.getRequest().getHeader("User-Agent");
// Connect to CapabilityService
- CapabilityService service = getService();
+ Capabilities component = getComponent();
// Get capability map
- CapabilityMap cm = service.getCapabilityMap(agent);
+ CapabilityMap cm = component.getCapabilityMap(agent);
if ( cm == null)
{
1.1
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/JetspeedCapabilities.java
Index: JetspeedCapabilities.java
===================================================================
/*
* 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.
* 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.capability.impl;
import java.util.Collection;
import java.util.Iterator;
import java.util.Hashtable;
import java.util.Properties;
import java.util.Vector;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.capability.Capabilities;
import org.apache.jetspeed.capability.CapabilityMap;
import org.apache.jetspeed.capability.Client;
import org.apache.jetspeed.capability.MediaType;
import org.picocontainer.Startable;
import org.apache.jetspeed.capability.Capability;
import org.apache.jetspeed.capability.MimeType;
import org.apache.jetspeed.components.persistence.store.Filter;
import org.apache.jetspeed.components.persistence.store.PersistenceStore;
import org.apache.jetspeed.components.persistence.store.PersistenceStoreContainer;
import org.apache.jetspeed.components.persistence.store.Transaction;
/**
* Jetspeed Capabilities
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
* @version $Id: JetspeedCapabilities.java,v 1.1 2004/02/26 22:50:41 taylor Exp $
*/
public class JetspeedCapabilities implements Capabilities, Startable
{
private PersistenceStoreContainer pContainer;
private String storeName = "jetspeed";
private String originalAlias;
private static final Log log =
LogFactory.getLog(JetspeedCapabilities.class);
public static final String DEFAULT_AGENT = "Mozilla/4.0";
public static final String AGENT_XML = "agentxml/1.0";
// Cache for the capability maps
Hashtable capabilityMapCache = new Hashtable();
private Collection clients = null;
private Class clientClass = ClientImpl.class;
private Class capabilityClass = CapabilityImpl.class;
private Class mimeTypeClass = MimeTypeImpl.class;
private Class mediaTypeClass = MediaTypeImpl.class;
public JetspeedCapabilities(PersistenceStoreContainer pContainer)
{
this.pContainer = pContainer;
}
/**
* Create a JetspeedProfiler with properties. Expected properties are:
*
* defaultRule = the default profiling rule
* anonymousUser = the name of the anonymous user
* storeName = The name of the persistence store component to connect to
* services.profiler.locator.impl = the pluggable Profile Locator impl
* services.profiler.principalRule.impl = the pluggable Principal Rule impl
* services.profiler.profilingRule.impl = the pluggable Profiling Rule impl
*
* @param pContainer The persistence store container
* @param properties Properties for this component described above
*/
public JetspeedCapabilities(PersistenceStoreContainer pContainer, Properties
properties)
{
this.pContainer = pContainer;
initModelClasses(properties);
}
private void initModelClasses(Properties properties)
{
String modelName = "";
try
{
if ((modelName = properties.getProperty("client.impl")) != null)
{
clientClass = Class.forName(modelName);
}
if ((modelName = properties.getProperty("capability.impl")) != null)
{
capabilityClass = Class.forName(modelName);
}
if ((modelName = properties.getProperty("mimetype.impl")) != null)
{
mimeTypeClass = Class.forName(modelName);
}
if ((modelName = properties.getProperty("mediatype.impl")) != null)
{
mediaTypeClass = Class.forName(modelName);
}
}
catch (ClassNotFoundException e)
{
log.error("Model class not found: " + modelName);
}
}
public void start()
{
}
public void stop()
{
}
/**
* @param userAgent Agent from the request
* @see
org.apache.jetspeed.services.capability.CapabilityService#getCapabilityMap(java.lang.String)
*/
public CapabilityMap getCapabilityMap(String userAgent)
{
CapabilityMap map = null;
boolean bClientFound = false;
if (userAgent == null)
{
userAgent = DEFAULT_AGENT;
}
// Check the cache if we have already a capability map for
// the given Agent
map = (CapabilityMap) capabilityMapCache.get(userAgent);
if (map != null)
{
// Entry found
return map;
}
while (!bClientFound)
{
Client entry = findClient(userAgent);
if (entry == null)
{
if (userAgent.equals(DEFAULT_AGENT))
{
log.error(
"CapabilityMap: Default agent not found in Client Registry
!");
// Stop searching -- event the default userAgent can't be found
bClientFound = true;
} else
{
// Retry with the default Agent
if (log.isDebugEnabled())
{
log.debug(
"CapabilityMap: useragent "
+ userAgent
+ "unknown, falling back to default");
}
// Use default Client
userAgent = DEFAULT_AGENT;
}
} else
{
// Found Client entry start populating the capability map.
map = new CapabilityMapImpl();
// Add client to CapabilityMap
map.setClient(entry);
// Add capabilities
Iterator capabilities = entry.getCapabilities().iterator();
while (capabilities.hasNext())
{
map.addCapability((Capability) capabilities.next());
}
Collection mediatypes =
getMediaTypesForMimeTypes(entry.getMimetypes().iterator());
// Add Mimetypes to map
Iterator mimetypes = entry.getMimetypes().iterator();
while (mimetypes.hasNext())
{
map.addMimetype((MimeType) mimetypes.next());
}
Iterator media = mediatypes.iterator();
while (media.hasNext())
{
map.addMediaType((MediaType) media.next());
}
//Set preferred Mimetype
MimeType mimeType = map.getPreferredType();
MediaType mtEntry =
getMediaTypeForMimeType(map.getPreferredType().getName());
map.setPreferredMediaType(mtEntry);
// Add map to cache
capabilityMapCache.put(userAgent, map);
return map;
}
}
return map;
}
/**
* Returns the client which matches the given useragent string.
*
* @param useragent the useragent to match
* @return the found client or null if the user-agent does not match any
* defined client
* @see
org.apache.jetspeed.capability.CapabilityService#findClient(java.lang.String)
*/
public Client findClient(String userAgent)
{
Client clientEntry = null;
Iterator clients = getClients();
if (log.isDebugEnabled())
{
log.debug(
"ClientRegistry: Looking for client with useragent :"
+ userAgent);
}
while (clients.hasNext())
{
Client client = (Client) clients.next();
if (client.getUserAgentPattern() != null)
{
try
{
// Java 1.4 has regular expressions build in
String exp = client.getUserAgentPattern();
//RE r = new RE(client.getUserAgentPattern());
//r.setMatchFlags(RE.MATCH_CASEINDEPENDENT);
//if (r.match(userAgent))
if (userAgent.matches(exp))
{
if (log.isDebugEnabled())
{
log.debug(
"Client: "
+ userAgent
+ " matches "
+ client.getUserAgentPattern());
}
return client;
} else
{
if (log.isDebugEnabled())
{
log.debug(
"Client: "
+ userAgent
+ " does not match "
+ client.getUserAgentPattern());
}
}
} catch (java.util.regex.PatternSyntaxException e)
{
String message =
"CapabilityServiceImpl: UserAgentPattern not valid : "
+ client.getUserAgentPattern()
+ " : "
+ e.getMessage();
log.error(message, e);
}
}
}
return clientEntry;
}
/*
* @see org.apache.jetspeed.capability.CapabilityService#getClients()
*/
public Iterator getClients()
{
if (null == clients)
{
PersistenceStore store = getPersistenceStore();
this.clients = store.getExtent(ClientImpl.class);
}
return this.clients.iterator();
}
/*
* @see
org.apache.jetspeed.capability.CapabilityService#getMediaTypesForMimeTypes(java.util.Iterator)
*/
public Collection getMediaTypesForMimeTypes(Iterator mimetypes)
{
//Find the MediaType by matching the Mimetype
PersistenceStore store = getPersistenceStore();
Filter filter = store.newFilter();
Vector temp = new Vector();
// Add Mimetypes to map and create query
while (mimetypes.hasNext())
{
MimeType mt = (MimeType) mimetypes.next();
// Add mimetype to query
// Note: mimetypes is a member of MediaTypeImpl
// criteria.addEqualTo("mimetypes.name", mt.getName());
//stuff.add(new Integer(mt.getMimetypeId()));
temp.add(mt.getName());
}
filter.addIn("mimetypes.name", temp);
Object query = store.newQuery(mediaTypeClass, filter);
Collection co = store.getCollectionByQuery(query);
if (co.isEmpty())
{
System.out.println("collection is empty");
MediaType mt = getMediaType("html");
Vector v = new Vector();
v.add(mt);
return v;
}
System.out.println("collection is NOT empty");
return co;
}
/*
* @see
org.apache.jetspeed.capability.CapabilityService#deleteCapabilityMapCache()
*/
public void deleteCapabilityMapCache()
{
capabilityMapCache.clear();
clients = null;
}
/* (non-Javadoc)
* @see
org.apache.jetspeed.capability.CapabilityService#getMediaType(java.lang.String)
*/
public MediaType getMediaType(String mediaType)
{
PersistenceStore store = getPersistenceStore();
Filter filter = store.newFilter();
filter.addEqualTo("name", mediaType);
Object query = store.newQuery(mediaTypeClass, filter);
return (MediaType) store.getObjectByQuery(query);
}
/**
* getMediaTypeForMimeType
* @param mimeType to use for lookup
* @return MediaTypeEntry that matches the lookup in the MEDIATYPE_TO_MIMETYPE
table
*/
public MediaType getMediaTypeForMimeType(String mimeTypeName)
{
//Find the MediaType by matching the Mimetype
PersistenceStore store = getPersistenceStore();
Filter filter = store.newFilter();
filter.addEqualTo("mimetypes.name", mimeTypeName);
Object query = store.newQuery(mediaTypeClass, filter);
Collection mediaTypeCollection = store.getCollectionByQuery(query);
Iterator mtIterator = mediaTypeCollection.iterator();
if (mtIterator.hasNext())
{
return (MediaType) mtIterator.next();
} else
{
return null;
}
}
protected PersistenceStore getPersistenceStore()
{
PersistenceStore store = pContainer.getStoreForThread(storeName);
Transaction tx = store.getTransaction();
if (!tx.isOpen())
{
tx.begin();
}
return store;
}
}
1.6 +22 -25
jakarta-jetspeed-2/portal/src/test/org/apache/jetspeed/capability/TestCapability.java
Index: TestCapability.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/test/org/apache/jetspeed/capability/TestCapability.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestCapability.java 4 Feb 2004 21:35:26 -0000 1.5
+++ TestCapability.java 26 Feb 2004 22:50:41 -0000 1.6
@@ -57,11 +57,10 @@
import java.util.Iterator;
import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.apache.commons.configuration.Configuration;
-import org.apache.jetspeed.cps.CommonPortletServices;
-import org.apache.jetspeed.test.JetspeedTest;
-import org.apache.jetspeed.test.JetspeedTestSuite;
+
+import org.apache.jetspeed.components.AbstractComponentAwareTestCase;
+import org.apache.jetspeed.components.ComponentAwareTestSuite;
+import org.picocontainer.MutablePicoContainer;
/**
* Test Capability Service
@@ -69,8 +68,10 @@
* @author <a href="[EMAIL PROTECTED]">Roger Ruttimann</a>
* @version $Id$
*/
-public class TestCapability extends JetspeedTest
+public class TestCapability extends AbstractComponentAwareTestCase
{
+ private Capabilities capabilities = null;
+ private MutablePicoContainer container;
/**
* @see
org.apache.jetspeed.test.JetspeedTest#overrideProperties(org.apache.commons.configuration.Configuration)
@@ -101,11 +102,13 @@
new String[] { TestCapability.class.getName()});
}
- public void setUp() throws Exception
+ protected void setUp() throws Exception
{
- System.out.println("Setup: Testing Capability Service");
super.setUp();
+ container = (MutablePicoContainer) getContainer();
+ capabilities = (Capabilities)
container.getComponentInstance(Capabilities.class);
}
+
/**
* Creates the test suite.
*
@@ -114,14 +117,9 @@
*/
public static Test suite()
{
- // All methods starting with "test" will be executed in the test suite.
- return new JetspeedTestSuite(TestCapability.class);
- }
-
- protected CapabilityService getService()
- {
- return (CapabilityService) CommonPortletServices.getPortalService(
- CapabilityService.SERVICE_NAME);
+ ComponentAwareTestSuite suite = new
ComponentAwareTestSuite(TestCapability.class);
+
suite.setScript("org/apache/jetspeed/capability/containers/capability-container.groovy");
+ return suite;
}
/**
@@ -130,8 +128,7 @@
*/
public void testCapability() throws Exception
{
- CapabilityService service = getService();
- assertNotNull("capability service is null", service);
+ assertNotNull("capabilities component is null", capabilities);
// Find specific client -- testing pattern matching
String userAgent;
@@ -139,37 +136,37 @@
userAgent = "Opera/7.0";
System.out.println("Find pattern: " + userAgent);
- CapabilityMap cm = service.getCapabilityMap(userAgent);
+ CapabilityMap cm = capabilities.getCapabilityMap(userAgent);
assertNotNull("getCapabilityMap is null", cm);
capabilityMapReport(cm);
userAgent = "Mozilla/4.0";
System.out.println("Find pattern: " + userAgent);
- cm = service.getCapabilityMap(userAgent);
+ cm = capabilities.getCapabilityMap(userAgent);
assertNotNull("getCapabilityMap is null", cm);
capabilityMapReport(cm);
userAgent = "MSIE 5.0";
System.out.println("Find pattern: " + userAgent);
- cm = service.getCapabilityMap(userAgent);
+ cm = capabilities.getCapabilityMap(userAgent);
assertNotNull("getCapabilityMap is null", cm);
capabilityMapReport(cm);
userAgent = "Mozilla/5.0";
System.out.println("Find pattern: " + userAgent);
- cm = service.getCapabilityMap(userAgent);
+ cm = capabilities.getCapabilityMap(userAgent);
assertNotNull("getCapabilityMap is null", cm);
capabilityMapReport(cm);
userAgent = "Lynx";
System.out.println("Find pattern: " + userAgent);
- cm = service.getCapabilityMap(userAgent);
+ cm = capabilities.getCapabilityMap(userAgent);
assertNotNull("getCapabilityMap is null", cm);
capabilityMapReport(cm);
userAgent = "Nokia";
System.out.println("Find pattern: " + userAgent);
- cm = service.getCapabilityMap(userAgent);
+ cm = capabilities.getCapabilityMap(userAgent);
assertNotNull("getCapabilityMap is null", cm);
capabilityMapReport(cm);
1.14 +7 -2
jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/jetspeed.groovy
Index: jetspeed.groovy
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/assembly/jetspeed.groovy,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- jetspeed.groovy 26 Feb 2004 17:40:31 -0000 1.13
+++ jetspeed.groovy 26 Feb 2004 22:50:41 -0000 1.14
@@ -33,8 +33,9 @@
import org.apache.jetspeed.cache.file.FileCache
import org.apache.jetspeed.profiler.Profiler
import org.apache.jetspeed.profiler.impl.JetspeedProfiler
-
-
+import org.apache.jetspeed.capability.Capabilities
+import org.apache.jetspeed.capability.impl.JetspeedCapabilities
+
// WARNING!!!!!!
// DO NOT use {Class}.class as it appears to be broken in Groovy
// You end getting a Class instance of the type java.lang.Class
@@ -136,5 +137,9 @@
//
container.registerComponentInstance(Profiler, new JetspeedProfiler(pContainer))
+//
+// Capabilities
+//
+container.registerComponentInstance(Capabilities, new
JetspeedCapabilities(pContainer))
return container
1.40 +1 -13
jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/jetspeed.properties
Index: jetspeed.properties
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/jetspeed.properties,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- jetspeed.properties 26 Feb 2004 04:49:04 -0000 1.39
+++ jetspeed.properties 26 Feb 2004 22:50:42 -0000 1.40
@@ -137,18 +137,6 @@
services.PersistenceService.path.resolver.class=org.apache.jetspeed.util.JetspeedPathResloverImpl
services.PersistenceService.earlyInit = true
-
-
-# -------------------------------------------------------------------
-# C A P A B I L I T Y
-# -------------------------------------------------------------------
-services.capability.classname =
org.apache.jetspeed.capability.impl.CapabilityServiceImpl
-services.capability.earlyInit = true
-services.capability.client.impl = org.apache.jetspeed.capability.impl.ClientImpl
-services.capability.mimetype.impl = org.apache.jetspeed.capability.impl.MimeTypeImpl
-services.capability.capability.impl =
org.apache.jetspeed.capability.impl.CapabilityImpl
-services.capability.mediatype.impl =
org.apache.jetspeed.capability.impl.MediaTypeImpl
-
#--------------------------------------------------------------------
# P O R T L E T D E P L O Y M E N T D E S C R I P T O R
#--------------------------------------------------------------------
1.31 +3 -1
jakarta-jetspeed-2/portal/src/webapp/WEB-INF/db/hsql/Registry.script
Index: Registry.script
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/db/hsql/Registry.script,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- Registry.script 26 Feb 2004 05:15:41 -0000 1.30
+++ Registry.script 26 Feb 2004 22:50:42 -0000 1.31
@@ -1,6 +1,8 @@
CREATE TABLE PORTLET_APPLICATION_DUBLIN_CORE(ID INTEGER NOT NULL PRIMARY KEY)
CREATE TABLE PORTLET_APPLICATION_DUBLIN_CORE_FIELDS(ID INTEGER NOT NULL PRIMARY
KEY,OBJECT_ID INTEGER NOT NULL,VALUE LONGVARCHAR NOT NULL,LOCALE_STRING VARCHAR(50)
NOT NULL)
-CREATE TABLE PORTLET_APPLICATION(APPLICATION_ID INTEGER NOT NULL PRIMARY
KEY,APP_NAME VARCHAR(80) NOT NULL,APP_IDENTIFIER VARCHAR(80),VERSION
VARCHAR(80),APP_TYPE INTEGER,DESCRIPTION VARCHAR(80),WEB_APP_ID INTEGER NOT
NULL,DUBLIN_CORE_ID INTEGER NOT NULL,CONSTRAINT UK_APPLICATION UNIQUE(APP_NAME))
+CREATE TABLE PA_METADATA(ID INTEGER NOT NULL PRIMARY KEY)
+CREATE TABLE PA_METADATA_FIELDS(ID INTEGER NOT NULL PRIMARY KEY,OBJECT_ID INTEGER
NOT NULL,VALUE LONGVARCHAR NOT NULL,NAME VARCHAR(100) NOT NULL,LOCALE_STRING
VARCHAR(50) NOT NULL)
+CREATE TABLE PORTLET_APPLICATION(APPLICATION_ID INTEGER NOT NULL PRIMARY
KEY,APP_NAME VARCHAR(80) NOT NULL,APP_IDENTIFIER VARCHAR(80),VERSION
VARCHAR(80),APP_TYPE INTEGER,DESCRIPTION VARCHAR(80),WEB_APP_ID INTEGER NOT
NULL,METADATA_ID INTEGER NOT NULL,CONSTRAINT UK_APPLICATION UNIQUE(APP_NAME))
CREATE TABLE WEB_APPLICATION(ID INTEGER NOT NULL PRIMARY KEY,CONTEXT_ROOT
VARCHAR(255) NOT NULL)
CREATE TABLE PORTLET_DEFINITION(ID INTEGER NOT NULL PRIMARY KEY,NAME
VARCHAR(80),CLASS_NAME VARCHAR(100),APPLICATION_ID INTEGER NOT NULL,PORTLET_IDENTIFIER
VARCHAR(80),EXPIRATION_CACHE VARCHAR(30),PREFERENCE_VALIDATOR VARCHAR(255),CONSTRAINT
SYS_CT_2 UNIQUE(APPLICATION_ID,NAME))
CREATE TABLE LANGUAGE(ID INTEGER NOT NULL PRIMARY KEY,PORTLET_ID INTEGER NOT
NULL,TITLE VARCHAR(100),SHORT_TITLE VARCHAR(50),LOCALE_STRING VARCHAR(50) NOT
NULL,KEYWORDS LONGVARCHAR)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]