public class FarmWarDeployer extends ClusterListener implements ClusterDeployer, FileChangeListener
A farm war deployer is a class that is able to deploy/undeploy web applications in WAR from within the cluster.
Any host can act as the admin, and will have three directoriesModifier and Type | Field and Description |
---|---|
protected java.io.File |
configBase
Path where context descriptors should be deployed.
|
protected java.lang.String |
deployDir
Deployment directory.
|
protected java.util.HashMap<java.lang.String,FileMessageFactory> |
fileFactories |
protected Host |
host
The associated host.
|
protected int |
maxValidTime
The maximum valid time(in seconds) for FileMessageFactory.
|
protected javax.management.MBeanServer |
mBeanServer
MBean server.
|
protected javax.management.ObjectName |
oname
The associated deployer ObjectName.
|
protected int |
processDeployFrequency
Frequency of the Farm watchDir check.
|
protected boolean |
started |
protected java.lang.String |
tempDir
Temporary directory.
|
protected java.lang.String |
watchDir
Watch directory.
|
protected boolean |
watchEnabled |
protected WarWatcher |
watcher |
cluster
Constructor and Description |
---|
FarmWarDeployer() |
Modifier and Type | Method and Description |
---|---|
boolean |
accept(ClusterMessage msg)
Before the cluster invokes messageReceived the cluster will ask the
receiver to accept or decline the message, In the future, when messages
get big, the accept method will only take a message header
|
protected void |
addServiced(java.lang.String name)
Invoke the check method on the deployer.
|
void |
backgroundProcess()
call from container Background Process
|
protected void |
check(java.lang.String name)
Invoke the check method on the deployer.
|
protected boolean |
copy(java.io.File from,
java.io.File to)
Copy a file to the specified temp directory.
|
boolean |
equals(java.lang.Object listener) |
void |
fileModified(java.io.File newWar) |
void |
fileRemoved(java.io.File removeWar) |
java.lang.String |
getDeployDir() |
java.io.File |
getDeployDirFile() |
FileMessageFactory |
getFactory(FileMessage msg)
create factory for all transported war files
|
int |
getMaxValidTime() |
int |
getProcessDeployFrequency()
Return the frequency of watcher checks.
|
java.lang.String |
getTempDir() |
java.io.File |
getTempDirFile() |
java.lang.String |
getWatchDir() |
java.io.File |
getWatchDirFile() |
boolean |
getWatchEnabled() |
int |
hashCode() |
void |
install(java.lang.String contextName,
java.io.File webapp)
Install a new web application, whose web application archive is at the
specified URL, into this container and all the other members of the
cluster with the specified context name.
|
protected boolean |
isServiced(java.lang.String name)
Invoke the check method on the deployer.
|
boolean |
isWatchEnabled() |
void |
messageReceived(ClusterMessage msg)
Callback from the cluster, when a message is received, The cluster will
broadcast it invoking the messageReceived on the receiver.
|
protected void |
remove(java.lang.String contextName)
Invoke the remove method on the deployer.
|
void |
remove(java.lang.String contextName,
boolean undeploy)
Remove an existing web application, attached to the specified context
name.
|
void |
removeFactory(FileMessage msg)
Remove file (war) from messages)
|
protected void |
removeInvalidFileFactories() |
protected void |
removeServiced(java.lang.String name)
Invoke the check method on the deployer.
|
void |
setDeployDir(java.lang.String deployDir) |
void |
setMaxValidTime(int maxValidTime) |
void |
setProcessDeployFrequency(int processExpiresFrequency)
Set the watcher checks frequency.
|
void |
setTempDir(java.lang.String tempDir) |
void |
setWatchDir(java.lang.String watchDir) |
void |
setWatchEnabled(boolean watchEnabled) |
void |
start()
Start the cluster deployer, the owning container will invoke this
|
void |
stop()
Stops the cluster deployer, the owning container will invoke this
|
protected void |
undeployDir(java.io.File dir)
Delete the specified directory, including all of its contents and
subdirectories recursively.
|
accept, getCluster, messageReceived, setCluster
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
getCluster, setCluster
accept, messageReceived
protected boolean started
protected final java.util.HashMap<java.lang.String,FileMessageFactory> fileFactories
protected java.lang.String deployDir
protected java.lang.String tempDir
protected java.lang.String watchDir
protected boolean watchEnabled
protected WarWatcher watcher
protected int processDeployFrequency
protected java.io.File configBase
protected Host host
protected javax.management.MBeanServer mBeanServer
protected javax.management.ObjectName oname
protected int maxValidTime
public void start() throws java.lang.Exception
ClusterDeployer
start
in interface ClusterDeployer
java.lang.Exception
- - if failure to start clusterpublic void stop() throws LifecycleException
ClusterDeployer
stop
in interface ClusterDeployer
LifecycleException
public void messageReceived(ClusterMessage msg)
messageReceived
in class ClusterListener
msg
- ClusterMessage - the message received from the clusterpublic FileMessageFactory getFactory(FileMessage msg) throws java.io.FileNotFoundException, java.io.IOException
msg
- java.io.FileNotFoundException
java.io.IOException
public void removeFactory(FileMessage msg)
msg
- public boolean accept(ClusterMessage msg)
accept
in class ClusterListener
msg
- ClusterMessagepublic void install(java.lang.String contextName, java.io.File webapp) throws java.io.IOException
If this application is successfully installed locally, a ContainerEvent
of type INSTALL_EVENT
will be sent to all registered
listeners, with the newly created Context
as an argument.
install
in interface ClusterDeployer
contextName
- The context name to which this application should be installed
(must be unique)webapp
- A WAR file or unpacked directory structure containing the web
application to be installedjava.lang.IllegalArgumentException
- if the specified context name is malformedjava.lang.IllegalStateException
- if the specified context name is already deployedjava.io.IOException
- if an input/output error was encountered during
installationpublic void remove(java.lang.String contextName, boolean undeploy) throws java.io.IOException
REMOVE_EVENT
will be sent to all registered
listeners, with the removed Context
as an argument.
Deletes the web application war file and/or directory if they exist in
the Host's appBase.remove
in interface ClusterDeployer
contextName
- The context name of the application to be removedundeploy
- boolean flag to remove web application from serverjava.lang.IllegalArgumentException
- if the specified context name is malformedjava.lang.IllegalArgumentException
- if the specified context name does not identify a
currently installed web applicationjava.io.IOException
- if an input/output error occurs during removalpublic void fileModified(java.io.File newWar)
fileModified
in interface FileChangeListener
public void fileRemoved(java.io.File removeWar)
fileRemoved
in interface FileChangeListener
protected void remove(java.lang.String contextName) throws java.lang.Exception
java.lang.Exception
protected void undeployDir(java.io.File dir)
dir
- File object representing the directory to be deletedpublic void backgroundProcess()
ClusterDeployer
backgroundProcess
in interface ClusterDeployer
protected void check(java.lang.String name) throws java.lang.Exception
java.lang.Exception
protected boolean isServiced(java.lang.String name) throws java.lang.Exception
java.lang.Exception
protected void addServiced(java.lang.String name) throws java.lang.Exception
java.lang.Exception
protected void removeServiced(java.lang.String name) throws java.lang.Exception
java.lang.Exception
public boolean equals(java.lang.Object listener)
equals
in interface ChannelListener
equals
in class ClusterListener
listener
- ObjectObject.equals(Object)
public int hashCode()
hashCode
in interface ChannelListener
hashCode
in class ClusterListener
Object.hashCode()
public java.lang.String getDeployDir()
public java.io.File getDeployDirFile()
public void setDeployDir(java.lang.String deployDir)
public java.lang.String getTempDir()
public java.io.File getTempDirFile()
public void setTempDir(java.lang.String tempDir)
public java.lang.String getWatchDir()
public java.io.File getWatchDirFile()
public void setWatchDir(java.lang.String watchDir)
public boolean isWatchEnabled()
public boolean getWatchEnabled()
public void setWatchEnabled(boolean watchEnabled)
public int getProcessDeployFrequency()
public void setProcessDeployFrequency(int processExpiresFrequency)
processExpiresFrequency
- the new manager checks frequencypublic int getMaxValidTime()
public void setMaxValidTime(int maxValidTime)
protected boolean copy(java.io.File from, java.io.File to)
from
- copy from tempto
- to host appBase directoryprotected void removeInvalidFileFactories()
Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.