Package org.apache.jetspeed.engine

Source Code of org.apache.jetspeed.engine.SpringEngine

/*
* 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.engine;

import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.naming.NamingException;
import javax.servlet.ServletConfig;

import org.apache.commons.configuration.Configuration;
import org.apache.jetspeed.components.ComponentManager;
import org.apache.jetspeed.components.SpringComponentManager;
import org.apache.jetspeed.components.factorybeans.ServletConfigFactoryBean;

/**
* <p>
* SpringEngine
* </p>
* <p>
*
* </p>
*
* @author <a href="mailto:weaver@apache.org">Scott T. Weaver </a>
* @version $Id: SpringEngine.java,v 1.7 2004/08/02 20:32:49 weaver Exp $
*/
public class SpringEngine extends AbstractEngine
{

    /**
     * <p>
     * initComponents
     * </p>
     *
     * @see org.apache.jetspeed.engine.AbstractEngine#initComponents(org.apache.commons.configuration.Configuration)
     * @param configuration
     * @return
     * @throws IOException
     * @throws ClassNotFoundException
     * @throws NamingException
     */
    protected ComponentManager initComponents( Configuration configuration, ServletConfig servletConfig ) throws IOException, ClassNotFoundException,
            NamingException
    {
       
        ServletConfigFactoryBean.setServletConfig(servletConfig);
        String relativeApplicationRoot = getRealPath("/");
        String absApplicationRoot = new File(relativeApplicationRoot).getCanonicalPath();       
        System.setProperty("applicationRoot", absApplicationRoot);       
       
        final String assemblyDir = configuration.getString("assembly.dir","/WEB-INF/assembly");
        final String assemblyFileExtension = configuration.getString("assembly.extension",".xml");
       
        FileFilter extFilter = new FileFilter()
        {
            public boolean accept( File pathname )
            {
                boolean isConfig = pathname.getName().endsWith(assemblyFileExtension);
                if(useInternalJNDI)
                {
                    return isConfig;
                   
                }
                else
                {
                    return isConfig && pathname.getName().indexOf("pooled-datasource-support") < 0;
                }
            }
           
        };
       
        File assemblyDirFile = new File(getRealPath(assemblyDir));
        if(!assemblyDirFile.exists())
        {
            throw new FileNotFoundException("The assembly path "+assemblyDirFile.getAbsolutePath()+" does not exist.");
        }
       
        File[] configFiles = assemblyDirFile.listFiles(extFilter);
        String[] configs = new String[configFiles.length];
        for(int i=0; i<configFiles.length; i++)
        {
            configs[i] = configFiles[i].getCanonicalFile().toURL().toExternalForm();
            if(configs[i].indexOf("pooled-datasource-support") > -1 && i > 0)
            { 
                String current0Offset = configs[0];
                configs[0] = configs[i];
                configs[i] = current0Offset;
               
            }         
        }
       
        ComponentManager cm = new SpringComponentManager(configs, null);
       
        return cm;
    }   
  

}
TOP

Related Classes of org.apache.jetspeed.engine.SpringEngine

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.