/*
* JBoss, Home of Professional Open Source.
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.web.tomcat.service;
import javax.management.ObjectName;
import org.jboss.security.plugins.JaasSecurityManagerServiceMBean;
/**
* The tomcat war deployer configuration passed in from the web container.
*
* @author Scott.Stark@jboss.org
* @version $Revision: 85945 $
*/
public class DeployerConfig
{
/**
* The tomcat sar class loader
*/
private ClassLoader serviceClassLoader;
/**
* The domain used for the tomcat mbeans
*/
private String catalinaDomain = "Catalina";
/**
* The fully qualified name of the class that will be used for session
* management if <tt>distributable</tt> is set to true.
*/
private String managerClass = "org.jboss.web.tomcat.service.session.JBossManager";
/**
* JMX Object name of the TreeCache MBean. Used by JBossCacheManager
*/
private String cacheName = "jboss.cache:service=TreeCache";
/**
* The web context class to create
*/
private String contextClassName;
/**
* The parent class loader first model flag
*/
private boolean java2ClassLoadingCompliance = false;
/**
* A flag indicating if war archives should be unpacked
*/
private boolean unpackWars = true;
/**
* If true, ejb-links that don't resolve don't cause an error
* (fallback to jndi-name)
*/
private boolean lenientEjbLink = false;
/**
* The tomcat service JMX object name
*/
private ObjectName serviceName;
/**
* The catalina debug level
*/
private int debugLevel;
/**
* A flag indicating if the JBoss UCL should be used
*/
private boolean useJBossWebLoader = true;
/**
* A flag indicating if the working dir for a war deployment should be
* delete when the war is undeployed.
*/
private boolean deleteWorkDirs = true;
/**
* Which snapshot mode should be used in clustered environment?
* Default: instant
*/
private String snapshotMode = "instant"; // instant or interval
/**
* With IntervalSnapshotManager use this interval (in ms) for snapshotting
*/
private int snapshotInterval = 1000;
/**
* Should the clustering code use caching or not?
*/
private boolean useLocalCache;
/**
* Whether to use MOD_JK(2) for sticky session combined with JvmRoute. If set to true,
* it will insert a JvmRouteFilter to intercept every request and replace the JvmRoute
* if it detects a failover.
*/
private boolean useJK = false;
/**
* Get the request attribute name under which the JAAS Subject is store
*/
private String subjectAttributeName = null;
/**
* The default security-domain name to use
*/
private String defaultSecurityDomain;
/** Package names that should be ignored for class loading */
private String[] filteredPackages;
/**
* Flag indicating whether web-app specific context xmls may set the privileged flag.
*/
private boolean allowSelfPrivilegedWebApps = false;
/** The service used to flush authentication cache on session invalidation. */
private JaasSecurityManagerServiceMBean secMgrService;
public ClassLoader getServiceClassLoader()
{
return serviceClassLoader;
}
public void setServiceClassLoader(ClassLoader serviceClassLoader)
{
this.serviceClassLoader = serviceClassLoader;
}
public String getManagerClass()
{
return managerClass;
}
public void setManagerClass(String managerClass)
{
this.managerClass = managerClass;
}
public String getCacheName()
{
return cacheName;
}
public void setCacheName(String cacheName)
{
this.cacheName = cacheName;
}
public String getCatalinaDomain()
{
return catalinaDomain;
}
public void setCatalinaDomain(String catalinaDomain)
{
this.catalinaDomain = catalinaDomain;
}
public String getContextClassName()
{
return contextClassName;
}
public void setContextClassName(String contextClassName)
{
this.contextClassName = contextClassName;
}
public boolean isJava2ClassLoadingCompliance()
{
return java2ClassLoadingCompliance;
}
public void setJava2ClassLoadingCompliance(boolean java2ClassLoadingCompliance)
{
this.java2ClassLoadingCompliance = java2ClassLoadingCompliance;
}
public boolean isUnpackWars()
{
return unpackWars;
}
public void setUnpackWars(boolean unpackWars)
{
this.unpackWars = unpackWars;
}
public boolean isLenientEjbLink()
{
return lenientEjbLink;
}
public void setLenientEjbLink(boolean lenientEjbLink)
{
this.lenientEjbLink = lenientEjbLink;
}
public ObjectName getServiceName()
{
return serviceName;
}
public void setServiceName(ObjectName serviceName)
{
this.serviceName = serviceName;
}
public int getDebugLevel()
{
return debugLevel;
}
public void setDebugLevel(int debugLevel)
{
this.debugLevel = debugLevel;
}
public boolean isUseJBossWebLoader()
{
return useJBossWebLoader;
}
public void setUseJBossWebLoader(boolean useJBossWebLoader)
{
this.useJBossWebLoader = useJBossWebLoader;
}
public boolean isDeleteWorkDirs()
{
return deleteWorkDirs;
}
public void setDeleteWorkDirs(boolean deleteWorkDirs)
{
this.deleteWorkDirs = deleteWorkDirs;
}
public String getSnapshotMode()
{
return snapshotMode;
}
public void setSnapshotMode(String snapshotMode)
{
this.snapshotMode = snapshotMode;
}
public int getSnapshotInterval()
{
return snapshotInterval;
}
public void setSnapshotInterval(int snapshotInterval)
{
this.snapshotInterval = snapshotInterval;
}
public boolean isUseLocalCache()
{
return useLocalCache;
}
public void setUseLocalCache(boolean useLocalCache)
{
this.useLocalCache = useLocalCache;
}
public boolean isUseJK()
{
return useJK;
}
public void setUseJK(boolean useJK)
{
this.useJK = useJK;
}
public String getSubjectAttributeName()
{
return subjectAttributeName;
}
public void setSubjectAttributeName(String subjectAttributeName)
{
this.subjectAttributeName = subjectAttributeName;
}
/**
* Get the default security domain implementation to use if a war
* does not declare a security-domain.
*
* @return jndi name of the security domain binding to use.
* @jmx:managed-attribute
*/
public String getDefaultSecurityDomain()
{
return defaultSecurityDomain;
}
/**
* Set the default security domain implementation to use if a war
* does not declare a security-domain.
*
* @param defaultSecurityDomain - jndi name of the security domain binding
* to use.
* @jmx:managed-attribute
*/
public void setDefaultSecurityDomain(String defaultSecurityDomain)
{
this.defaultSecurityDomain = defaultSecurityDomain;
}
public boolean isAllowSelfPrivilegedWebApps()
{
return allowSelfPrivilegedWebApps;
}
public void setAllowSelfPrivilegedWebApps(boolean allowSelfPrivilegedWebApps)
{
this.allowSelfPrivilegedWebApps = allowSelfPrivilegedWebApps;
}
public JaasSecurityManagerServiceMBean getSecurityManagerService()
{
return secMgrService;
}
public void setSecurityManagerService(JaasSecurityManagerServiceMBean mgr)
{
this.secMgrService = mgr;
}
public String[] getFilteredPackages()
{
return filteredPackages;
}
public void setFilteredPackages(String[] filteredPackages)
{
this.filteredPackages = filteredPackages;
}
}