All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.jetspeed.components.jndi.SpringJNDIStarter Maven / Gradle / Ivy

The newest version!
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.jndi;

/**
 * 

* Helper class to establish a jndi based datasource for commandline and maven based applications * *

* * * @ * @author Hajo Birthelmer * @version $ $ * */ import java.util.Map; import org.apache.commons.pool.impl.GenericObjectPool; import org.apache.jetspeed.components.SpringComponentManager; import org.apache.jetspeed.components.datasource.BoundDBCPDatasourceComponent; import org.apache.jetspeed.components.jndi.JNDIComponent; import org.apache.jetspeed.components.jndi.TyrexJNDIComponent; public class SpringJNDIStarter { public static final String JNDI_DS_NAME = "jetspeed"; public static final String DATASOURCE_DRIVER = "org.apache.jetspeed.database.driver".intern(); public static final String DATASOURCE_URL = "org.apache.jetspeed.database.url".intern(); public static final String DATASOURCE_USERNAME = "org.apache.jetspeed.database.user".intern(); public static final String DATASOURCE_PASSWORD = "org.apache.jetspeed.database.password".intern(); private final Map context; protected BoundDBCPDatasourceComponent datasourceComponent; protected JNDIComponent jndi; String appRoot = null; String[] bootConfig = null; String[] appConfig = null; SpringComponentManager scm = null; /** * * Create an instance with a given context and the usual SpringComponent arguments * @param context * @param appRoot root directory of the application * @param bootConfig (string-)list of files to process on boot * @param appConfig (string-)list of files to process as configuration */ public SpringJNDIStarter(Map context,String appRoot, String[] bootConfig, String[] appConfig) { this.context = context; this.appRoot = appRoot; this.bootConfig = bootConfig; this.appConfig = appConfig; } /** * The main startup routine. * Establishes a JNDI connection based on the following System parameters: *

org.apache.jetspeed.database.url *

org.apache.jetspeed.database.driver *

org.apache.jetspeed.database.user *

org.apache.jetspeed.database.password * @throws Exception */ public void setUp() throws Exception { setupJNDI(); scm = new SpringComponentManager(null, bootConfig, appConfig, appRoot, true ); } public void tearDown() throws Exception { try { datasourceComponent.stop(); } catch (Exception e) { System.out.println("datasourceComponent stop failed with " + e.getLocalizedMessage()); e.printStackTrace(); } try { scm.stop(); } catch (Exception e) { System.out.println("SpringComponentManager stop failed with " + e.getLocalizedMessage()); e.printStackTrace(); } try { jndi.unbindFromCurrentThread(); } catch (Exception e) { System.out.println("JNDI unbindFromCurrentThread failed with " + e.getLocalizedMessage()); e.printStackTrace(); } } String getProperty(String name) { String s = null; try { if (context != null) s = (String) context.get(name); } catch (Exception e) { e.printStackTrace(); } if (s == null) s = System.getProperty(name); return s; } public void setupJNDI() throws Exception { jndi = new TyrexJNDIComponent(); String url = getProperty("org.apache.jetspeed.database.url"); String driver = getProperty("org.apache.jetspeed.database.driver"); String user = getProperty("org.apache.jetspeed.database.user"); String password = getProperty("org.apache.jetspeed.database.password"); datasourceComponent = new BoundDBCPDatasourceComponent(user, password, driver, url, 20, 5000, GenericObjectPool.WHEN_EXHAUSTED_GROW, true, JNDI_DS_NAME, jndi); datasourceComponent.start(); } public SpringComponentManager getComponentManager() { return scm; } public Map getContext() { return context; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy