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 ta...@apache.org on 2005/02/16 06:38:14 UTC
cvs commit: jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/tools/pamanager RegistrationTool.java
taylor 2005/02/15 21:38:14
Added: portal/src/java/org/apache/jetspeed/tools/pamanager
RegistrationTool.java
Log:
Tool to do one thing: register (and unregister) applications (ok that makes two, technically)
had a look at the PAM, and its been a while, all kinds of couplings and who knows what going on
Felt easier to just write it from scratch - PAM no longer runs from the command line
Revision Changes Path
1.1 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/tools/pamanager/RegistrationTool.java
Index: RegistrationTool.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.tools.pamanager;
import java.io.File;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.pool.impl.GenericObjectPool;
import org.apache.jetspeed.components.dao.InitablePersistenceBrokerDaoSupport;
import org.apache.jetspeed.components.datasource.BoundDBCPDatasourceComponent;
import org.apache.jetspeed.components.jndi.JNDIComponent;
import org.apache.jetspeed.components.jndi.TyrexJNDIComponent;
import org.apache.jetspeed.components.portletregistry.PersistenceBrokerPortletRegistry;
import org.apache.jetspeed.components.portletregistry.PortletRegistry;
import org.apache.jetspeed.deployment.impl.StandardDeploymentObject;
import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
import org.apache.jetspeed.om.common.servlet.MutableWebApplication;
import org.apache.jetspeed.util.descriptor.PortletApplicationWar;
/**
* PortletApplicationManager
*
* @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
* @version $Id: RegistrationTool.java,v 1.1 2005/02/16 05:38:14 taylor Exp $
*/
/**
* This is the interface that defines the Lifecycle-related methods to control
* Portlet Applications.
*
* @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
* @version $Id: RegistrationTool.java,v 1.1 2005/02/16 05:38:14 taylor Exp $
*/
public class RegistrationTool implements Registration
{
private PortletRegistry registry;
private static final Log log = LogFactory.getLog("deployment");
private static final String PORTLET_XML = "WEB-INF/portlet.xml";
public static void main(String args[])
{
String portletApplicationName = "demo";
String warFile = "./target/demo.war";
try
{
JNDIComponent jndi = new TyrexJNDIComponent();
System.setProperty("org.apache.jetspeed.database.url", "jdbc:mysql://j2-server/xxxxx?autoReconnect=true");
System.setProperty("org.apache.jetspeed.database.driver", "com.mysql.jdbc.Driver");
System.setProperty("org.apache.jetspeed.database.user", "j2");
System.setProperty("org.apache.jetspeed.database.password", "xxxxxx");
String url = System.getProperty("org.apache.jetspeed.database.url");
String driver = System.getProperty("org.apache.jetspeed.database.driver");
String user = System.getProperty("org.apache.jetspeed.database.user");
String password = System.getProperty("org.apache.jetspeed.database.password");
BoundDBCPDatasourceComponent datasourceComponent =
new BoundDBCPDatasourceComponent(user, password, driver, url, 20, 5000,
GenericObjectPool.WHEN_EXHAUSTED_GROW, true, "jetspeed", jndi);
datasourceComponent.start();
PortletRegistry registry = new PersistenceBrokerPortletRegistry("META-INF/registry_repository.xml");
((InitablePersistenceBrokerDaoSupport)registry).init();
Registration registrator = new RegistrationTool(registry);
System.out.println("Registering Portlet Application [" + portletApplicationName + "]...");
StandardDeploymentObject deploymentObject = new StandardDeploymentObject(new File(warFile));
registrator.register(new PortletApplicationWar(deploymentObject.getFileObject(),
portletApplicationName, "/"+portletApplicationName ) );
System.out.println("...PAM Register done");
deploymentObject.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public RegistrationTool(PortletRegistry registry)
{
this.registry = registry;
}
public void register(PortletApplicationWar paWar)
throws PortletApplicationException
{
String paName = paWar.getPortletApplicationName();
MutablePortletApplication app = (MutablePortletApplication) registry.getPortletApplication(paName);
try
{
if (app == null)
{
app = paWar.createPortletApp();
if (app == null)
{
String msg = "Error loading portlet.xml: ";
log.error(msg);
throw new PortletApplicationException(msg);
}
app.setApplicationType(MutablePortletApplication.WEBAPP);
app.setChecksum(paWar.getFileSystem().getChecksum(PORTLET_XML));
// load the web.xml
log.info("Loading web.xml into memory...." + paName);
MutableWebApplication webapp = paWar.createWebApp();
paWar.validate();
app.setWebApplicationDefinition(webapp);
// register the portlet application
if (registry.getPortletApplication(paName) == null)
{
registry.registerPortletApplication(app);
log.info("Registered the portlet app... " + paName);
}
// if (searchEngine != null)
// {
// searchEngine.add(app);
// searchEngine.add(app.getPortletDefinitions());
// log.info("Registered portlet app in the search engine... " + paName);
// }
}
}
catch (Exception e)
{
String msg = "Unable to register portlet application, " + paName + ", through the portlet registry: "
+ e.toString();
log.error(msg, e);
//throw new RegistryException(msg, e);
}
}
public void unregister(String paName)
throws PortletApplicationException
{
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org