taylor 2004/12/27 11:36:24
Modified: fusion project.xml
Added: fusion/src/java/org/apache/jetspeed/cps
CPSInitializationException.java CommonService.java
BaseCommonService.java CPSConstants.java
CPSException.java CommonPortletServices.java
CPSTest.java
Log:
fusion was broken in october when the cps project was removed from j2
this patch recovers the cps project from j2 cleanup-20041013 tag
the cps project now exists inside of the fusion jar
Revision Changes Path
1.1
jakarta-jetspeed/fusion/src/java/org/apache/jetspeed/cps/CPSInitializationException.java
Index: CPSInitializationException.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.cps;
import org.apache.fulcrum.InitializationException;
/**
* Services should throw this exception when an error occurs during service
initialization.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: CPSInitializationException.java,v 1.1 2004/12/27 19:36:23
taylor Exp $
**/
public class CPSInitializationException extends InitializationException
{
public CPSInitializationException(String error)
{
super(error);
}
public CPSInitializationException(String error, Throwable t)
{
super(error, t);
}
}
1.1
jakarta-jetspeed/fusion/src/java/org/apache/jetspeed/cps/CommonService.java
Index: CommonService.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.cps;
import org.apache.fulcrum.Service;
/**
* <P>Common Service</P>
*
* Marks a common service. Could be useful when we replace Fulcrum with
another service manager.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: CommonService.java,v 1.1 2004/12/27 19:36:23 taylor Exp $
*
*/
public interface CommonService extends Service
{
/**
* Load an implementation class from the configuration.
*
* @param configurationName
* @return
* @throws CPSInitializationException
*/
public Class loadModelClass(String configurationName)
throws CPSInitializationException;
/**
* Creates objects given the class.
* Throws exceptions if the class is not found in the default class path,
* or the class is not an instance of CmsObject.
*
* @param classe the class of object
* @return the newly created object
* @throws ContentManagementException
*/
public Object createObject(Class classe);
}
1.1
jakarta-jetspeed/fusion/src/java/org/apache/jetspeed/cps/BaseCommonService.java
Index: BaseCommonService.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.cps;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.fulcrum.BaseService;
/**
* <P>Base Common Service</P>
*
* Marks a common service. Could be useful when we replace Fulcrum with
another service manager.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: BaseCommonService.java,v 1.1 2004/12/27 19:36:23 taylor Exp $
*
*/
public abstract class BaseCommonService extends BaseService implements
CommonService
{
private static Map modelClasses = new HashMap();
protected final static Log log =
LogFactory.getLog(BaseCommonService.class);
/**
* Load an implementation class from the configuration.
*
* @param configurationName
* @return
* @throws CPSInitializationException
*/
public Class loadModelClass(String configurationName)
throws CPSInitializationException
{
String className = getConfiguration().getString(configurationName,
null);
if (null == className)
{
throw new CPSInitializationException(configurationName + "
implementation configuration not found.");
}
try
{
Class classe = (Class)modelClasses.get(className);
if (null == classe)
{
classe = Class.forName(className);
modelClasses.put(className, classe);
}
return classe;
}
catch (ClassNotFoundException e)
{
throw new CPSInitializationException("Could not preload " +
className + " implementation class.", e);
}
}
/**
* Creates objects given the class.
* Throws exceptions if the class is not found in the default class path,
* or the class is not an instance of CmsObject.
*
* @param classe the class of object
* @return the newly created object
* @throws ContentManagementException
*/
public Object createObject(Class classe)
{
Object object = null;
try
{
object = classe.newInstance();
}
catch (Exception e)
{
log.error("Factory failed to create object: " + classe.getName(),
e);
}
return object;
}
}
1.1
jakarta-jetspeed/fusion/src/java/org/apache/jetspeed/cps/CPSConstants.java
Index: CPSConstants.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.cps;
/**
* This interface contains all the constants for the CPS configuration.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: CPSConstants.java,v 1.1 2004/12/27 19:36:23 taylor Exp $
*/
public interface CPSConstants
{
/**
* <p>The prefix used to denote the namespace reserved for and
* used by Jetspeed-specific configuration parameters (such as
* those passed in via servlet container's config file
* (<code>server.xml</code>), or the web app deployment descriptor
* (<code>web.xml</code>).</p>
*
* <p>For example, a parameter in the Jetspeed namespace would be
* <code>org.apache.jetspeed.loggingRoot</code>.</p>
*/
public static final String CONFIG_NAMESPACE = "org.apache.jetspeed.cps";
/** The key for the Log4J File */
public static final String LOG4J_CONFIG_FILE = "log4j.file";
/** The default value for the Log4J File */
public static final String LOG4J_CONFIG_FILE_DEFAULT =
"/WEB-INF/conf/cps-logging.properties";
/** This is the default log file to be used for logging */
public static final String DEFAULT_LOGGER = "cps";
public static final String CONSOLE_LOGGER = "console";
/** Default Value for the Logging Directory, relative to the webroot */
public static final String LOGGING_ROOT_DEFAULT = "/logs";
public static final String LOGGING_ROOT = "loggingRoot";
public static final String CPS_PROPERTIES_KEY = "properties";
public static final String CPS_PROPERTIES_DEFAULT =
"/WEB-INF/conf/cps.properties";
public static final String CPS_CONFIGURATION_KEY = "configuration";
public static final String CPS_CONFIGURATION_DEFAULT =
"/WEB-INF/conf/cps.xml";
/** If this value is set as applicationRoot, then the webContext is used
* as application root
*/
public static final String WEB_CONTEXT = "webContext";
/** Key for the Path to the cps.properties File */
public static final String APPLICATION_ROOT_KEY = "applicationRoot";
/** Default Value for the Path to the TurbineResources.properties File */
public static final String APPLICATION_ROOT_DEFAULT = WEB_CONTEXT;
}
1.1
jakarta-jetspeed/fusion/src/java/org/apache/jetspeed/cps/CPSException.java
Index: CPSException.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.cps;
import org.apache.commons.lang.exception.NestableException;
/**
* Occurs when anything unexpected happens within a CPS.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: CPSException.java,v 1.1 2004/12/27 19:36:23 taylor Exp $
**/
public class CPSException extends NestableException
{
public CPSException()
{
super();
}
public CPSException(String message)
{
super(message);
}
public CPSException(Throwable nested)
{
super(nested);
}
public CPSException(String msg, Throwable nested)
{
super(msg, nested);
}
}
1.1
jakarta-jetspeed/fusion/src/java/org/apache/jetspeed/cps/CommonPortletServices.java
Index: CommonPortletServices.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.cps;
import java.util.Properties;
import java.io.FileInputStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.impl.Log4jFactory;
import org.apache.log4j.PropertyConfigurator;
import org.apache.commons.configuration.Configuration;
import org.apache.fulcrum.ServiceManager;
import org.apache.fulcrum.BaseServiceBroker;
/**
* This is a singleton utility class that acts as a Services broker.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: CommonPortletServices.java,v 1.1 2004/12/27 19:36:23 taylor
Exp $
*/
public class CommonPortletServices extends BaseServiceBroker implements
ServiceManager, CPSConstants
{
/** The single instance of this class. */
private static CommonPortletServices instance = new
CommonPortletServices();
private static final Log log =
LogFactory.getLog(CommonPortletServices.class);
private boolean initialized = false;
/**
* This constructor is protected to force clients to use
* getInstance() to access this class.
*/
protected CommonPortletServices()
{
super();
}
/**
* The method through which this class is accessed as a broker.
*
* @return The single instance of this class.
*/
public static CommonPortletServices getInstance()
{
return instance;
}
/**
*
* <p>
* init
* </p>
* Initializes th CPS with the <code>configuration</code>
* and <code>applicationRoot provided</code>.
*
* @param configuration Configuration to use to configure all CPS services
* @param applicationRoot The application root of the system
* @param initLog4j <code>true</code> means that CPS will attempt
configure
* Log4j, <code>false</code> Log4j will not be configured (used if the
implementation
* system already initializes Log4j)
* @throws CPSInitializationException
*
*/
public void init(Configuration configuration, String applicationRoot,
boolean initLog4j) throws CPSInitializationException
{
try
{
if (initialized)
{
return;
}
//
// bootstrap the initable services
//
this.setApplicationRoot(applicationRoot);
this.setConfiguration(configuration);
if (initLog4j)
{
String log4jFile = configuration.getString(LOG4J_CONFIG_FILE,
LOG4J_CONFIG_FILE_DEFAULT);
log4jFile = this.getRealPath(log4jFile);
Properties p = new Properties();
p.load(new FileInputStream(log4jFile));
p.setProperty(APPLICATION_ROOT_KEY, applicationRoot);
PropertyConfigurator.configure(p);
log.info("Configured log4j from " + log4jFile);
// Set up Commons Logging to use the Log4J Logging
System.getProperties().setProperty(LogFactory.class.getName(),
Log4jFactory.class.getName());
}
else
{
log.info("Skipping Log4j configuration");
}
this.init();
}
catch (Throwable e)
{
e.printStackTrace();
log.error(e.toString());
throw new CPSInitializationException("CPS Initialization
exception!", e);
}
}
/**
*
* <p>
* init
* </p>
* Initializes th CPS with the <code>configuration</code>
* and <code>applicationRoot provided</code>. Will configure Log4j
* by default. This is the same acalling <code>init(Configuration,
AppRoot, true)</code>
*
* @param configuration
* @param applicationRoot
* @throws CPSInitializationException
*
*/
public void init(Configuration configuration, String applicationRoot)
throws CPSInitializationException
{
init(configuration, applicationRoot, true);
}
public void shutdown() throws CPSException
{
getInstance().shutdownServices();
System.gc();
}
/**
* @param String name of the service. For Fulcrum
* services this is easily accessible from the Service's interface
* via <code>SERVICE_NAME</code> field.
* @return Object a service
*/
public static CommonService getPortalService(String name)
{
Object service = getInstance().getService(name);
if (service instanceof CommonService)
{
return (CommonService) service;
}
return null;
}
/*
private void publishServices()
throws CPSInitializationException
{
try
{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.FSContextFactory");
env.put(Context.PROVIDER_URL, "file:/");
env.put(Context.OBJECT_FACTORIES, "foo.bar.ObjFactory");
env.put("foo", "bar");
Context ctx = new InitialContext(env);
ctx.bind("cps/services", this);
}
catch (NamingException e)
{
throw new CPSInitializationException(e.toString());
}
}
*/
public boolean isInitialized()
{
return initialized;
}
}
1.1
jakarta-jetspeed/fusion/src/java/org/apache/jetspeed/cps/CPSTest.java
Index: CPSTest.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.cps;
import java.io.File;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.PropertiesConfiguration;
/**
* Base class for CPS tests.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @since 2.0
* @version $Id: CPSTest.java,v 1.1 2004/12/27 19:36:23 taylor Exp $
*/
public abstract class CPSTest
extends TestCase
implements CPSConstants
{
Configuration configuration = null;
/**
* Creates a new instance.
*/
public CPSTest(String testName)
{
super(testName);
}
/**
* Return the Test
*/
public static Test suite()
{
return new TestSuite(CPSTest.class);
}
protected CommonPortletServices cps = null;
/**
* Setup the test.
*/
public void setUp()
{
try
{
if (cps != null)
{
return;
}
String propertiesFilename = getPropertiesFile();
String applicationRoot = getApplicationRoot();
configuration = (Configuration)
new PropertiesConfiguration(propertiesFilename);
configuration.setProperty(APPLICATION_ROOT_KEY, applicationRoot);
//properties.setProperty(WEBAPP_ROOT_KEY, null);
cps = CommonPortletServices.getInstance();
cps.init(configuration, applicationRoot);
}
catch (Exception e)
{
e.printStackTrace();
assertTrue(false);
}
}
/**
* Override to set your own properties file
*
*/
public String getPropertiesFile()
{
return getApplicationRoot() + "/WEB-INF/conf/cps.properties";
}
public Configuration getConfiguration()
{
return this.configuration;
}
/**
* Override to set your own application root
* If the default directory does not exist, then look in
* the cps directory. If the directory exist in the cps directory,
* then return this directory. Yes this is a hack, but it works.
*/
public String getApplicationRoot()
{
String applicationRoot = "test";
File testPath = new File(applicationRoot);
if (!testPath.exists())
{
testPath = new File( "cps" + File.separator + applicationRoot);
if (testPath.exists())
{
applicationRoot = testPath.getAbsolutePath();
}
}
return applicationRoot;
}
/**
* Tear down the test.
*/
public void tearDown()
{
try
{
if (cps != null)
{
cps.shutdown();
}
}
catch (CPSException e)
{
e.printStackTrace();
}
finally
{
cps = null;
}
}
}
1.10 +7 -0 jakarta-jetspeed/fusion/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/fusion/project.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- project.xml 23 Nov 2004 07:25:19 -0000 1.9
+++ project.xml 27 Dec 2004 19:36:24 -0000 1.10
@@ -169,6 +169,13 @@
<war.bundle>false</war.bundle>
</properties>
</dependency>
+ <dependency>
+ <id>junit</id>
+ <version>3.8.1</version>
+ <properties>
+ <war.bundle>false</war.bundle>
+ </properties>
+ </dependency>
</dependencies>
<build>
<nagEmailAddress>[EMAIL PROTECTED]</nagEmailAddress>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]