001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.geronimo.tomcat.cluster;
018
019 import org.apache.geronimo.system.serverinfo.ServerInfo;
020 import org.apache.geronimo.gbean.GBeanInfo;
021 import org.apache.geronimo.gbean.GBeanInfoBuilder;
022 import org.apache.commons.logging.Log;
023 import org.apache.commons.logging.LogFactory;
024 import org.apache.catalina.ha.deploy.FarmWarDeployer;
025
026
027 public class FarmWarDeployerGBean extends ClusterDeployerGBean{
028
029 private static final Log log = LogFactory
030 .getLog(FarmWarDeployerGBean.class);
031
032 private final ServerInfo serverInfo;
033
034 public FarmWarDeployerGBean(){
035 serverInfo = null;
036 }
037
038 public FarmWarDeployerGBean(String tempDir,
039 String deployDir,
040 String watchDir,
041 boolean watchEnabled,
042 int processDeployFrequency,
043 ServerInfo serverInfo) throws Exception {
044
045 super("org.apache.catalina.ha.deploy.FarmWarDeployer", null);
046
047 if (serverInfo == null){
048 throw new IllegalArgumentException("serverInfo cannot be null.");
049 }
050
051 this.serverInfo = serverInfo;
052
053 FarmWarDeployer farm = (FarmWarDeployer)deployer;
054
055 if (tempDir == null)
056 tempDir = "var/catalina/war-temp";
057 farm.setTempDir(serverInfo.resolvePath(tempDir));
058
059 if (deployDir == null)
060 deployDir = "var/catalina/war-deploy";
061 farm.setDeployDir(serverInfo.resolvePath(deployDir));
062
063 if (watchDir == null)
064 watchDir = "var/catalina/war-listen";
065 farm.setWatchDir(serverInfo.resolvePath(watchDir));
066
067 farm.setWatchEnabled(watchEnabled);
068
069 farm.setProcessDeployFrequency(processDeployFrequency);
070
071 }
072
073 public static final GBeanInfo GBEAN_INFO;
074
075 static {
076 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("ClusterDeployer", FarmWarDeployerGBean.class, ClusterDeployerGBean.GBEAN_INFO);
077
078 infoFactory.addAttribute("tempDir", String.class, true);
079 infoFactory.addAttribute("deployDir", String.class, true);
080 infoFactory.addAttribute("watchDir", String.class, true);
081 infoFactory.addAttribute("watchEnabled", boolean.class, true);
082 infoFactory.addAttribute("processDeployFrequency", int.class, true);
083 infoFactory.addReference("ServerInfo", ServerInfo.class, "GBean");
084 infoFactory.addOperation("getInternalObject", "Object");
085 infoFactory.setConstructor(new String[] {
086 "tempDir",
087 "deployDir",
088 "watchDir",
089 "watchEnabled",
090 "processDeployFrequency",
091 "ServerInfo"
092 });
093 GBEAN_INFO = infoFactory.getBeanInfo();
094 }
095
096 public static GBeanInfo getGBeanInfo() {
097 return GBEAN_INFO;
098 }
099 }