Author: wesw
Date: Thu Mar 12 20:44:50 2009
New Revision: 753010
URL: http://svn.apache.org/viewvc?rev=753010&view=rev
Log:
struts zone deployment files
Added:
struts/current/zone/config-files/
struts/current/zone/config-files/httpd.conf.patch
struts/current/zone/config-files/jetty.xml.patch
struts/current/zone/config-files/tomcat-server.xml.patch
struts/current/zone/manifest/
struts/current/zone/manifest/jetty-6-1-14-java5.xml
struts/current/zone/manifest/s2app_deploy_daemon.xml
struts/current/zone/manifest/tomcat-5-5-27-java5.xml
struts/current/zone/s2app_deploy_daemon/
struts/current/zone/s2app_deploy_daemon/config.xml
struts/current/zone/s2app_deploy_daemon/logger.conf
struts/current/zone/s2app_deploy_daemon/s2app_deploy_daemon (with props)
struts/current/zone/startup-scripts/
struts/current/zone/startup-scripts/svc-jetty-6-1-14-java5 (with props)
struts/current/zone/startup-scripts/svc-s2app_deploy_daemon (with props)
struts/current/zone/startup-scripts/svc-tomcat-5-5-27-java5 (with props)
Added: struts/current/zone/config-files/httpd.conf.patch
URL:
http://svn.apache.org/viewvc/struts/current/zone/config-files/httpd.conf.patch?rev=753010&view=auto
==============================================================================
--- struts/current/zone/config-files/httpd.conf.patch (added)
+++ struts/current/zone/config-files/httpd.conf.patch Thu Mar 12 20:44:50 2009
@@ -0,0 +1,197 @@
+--- /etc/apache2/httpd.conf.orig Mon Jan 19 04:33:46 2009
++++ /etc/apache2/httpd.conf Thu Jan 22 14:30:27 2009
+@@ -322,7 +322,7 @@
+ # e-mailed. This address appears on some server-generated pages, such
+ # as error documents. e.g. [email protected]
+ #
+-ServerAdmin [email protected]
++ServerAdmin [email protected]
+
+ #
+ # ServerName gives the name and port that the server uses to identify itself.
+@@ -336,7 +336,7 @@
+ # You will have to access it by its address anyway, and this will make
+ # redirections work in a sensible way.
+ #
+-ServerName 127.0.0.1
++ServerName struts.zones.apache.org
+
+ #
+ # UseCanonicalName: Determines how Apache constructs self-referencing
+@@ -418,20 +418,20 @@
+ # Control access to UserDir directories. The following is an example
+ # for a site where these directories are restricted to read-only.
+ #
+-<Directory /home/*/public_html>
+- AllowOverride FileInfo AuthConfig Limit Indexes
+- Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+- <Limit GET POST OPTIONS PROPFIND>
+- Order allow,deny
+- Allow from all
+- </Limit>
+- <LimitExcept GET POST OPTIONS PROPFIND>
+- Order deny,allow
+- Deny from all
+- </LimitExcept>
+-</Directory>
+-
++#<Directory /home/*/public_html>
++# AllowOverride FileInfo AuthConfig Limit Indexes
++# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
++# <Limit GET POST OPTIONS PROPFIND>
++# Order allow,deny
++# Allow from all
++# </Limit>
++# <LimitExcept GET POST OPTIONS PROPFIND>
++# Order deny,allow
++# Deny from all
++# </LimitExcept>
++#</Directory>
+ #
++#
+ # DirectoryIndex: sets the file that Apache will serve if a directory
+ # is requested.
+ #
+@@ -580,7 +580,7 @@
+ # Set to "EMail" to also include a mailto: link to the ServerAdmin.
+ # Set to one of: On | Off | EMail
+ #
+-ServerSignature On
++ServerSignature Off
+
+ #
+ # Aliases: Add here as many aliases as you need (with no limit). The format
is
+@@ -595,37 +595,37 @@
+ # We include the /icons/ alias for FancyIndexed directory listings. If you
+ # do not use FancyIndexing, you may comment this out.
+ #
+-Alias /icons/ "/var/apache2/icons/"
++#Alias /icons/ "/var/apache2/icons/"
++#
++#<Directory "/var/apache2/icons">
++# Options Indexes MultiViews
++# AllowOverride None
++# Order allow,deny
++# Allow from all
++#</Directory>
+
+-<Directory "/var/apache2/icons">
+- Options Indexes MultiViews
+- AllowOverride None
+- Order allow,deny
+- Allow from all
+-</Directory>
+-
+ #
+ # This should be changed to the ServerRoot/manual/. The alias provides
+ # the manual, even if you choose to move your DocumentRoot. You may comment
+ # this out if you do not care for the documentation.
+ #
+-AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$
"/usr/apache2/manual$1"
+-
+-<Directory "/usr/apache2/manual">
+- Options Indexes
+- AllowOverride None
+- Order allow,deny
+- Allow from all
+-
+- <Files *.html>
+- SetHandler type-map
+- </Files>
+-
+- SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1
+- RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$
/manual/$1$2
+-</Directory>
+-
++#AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$
"/usr/apache2/manual$1"
+ #
++#<Directory "/usr/apache2/manual">
++# Options Indexes
++# AllowOverride None
++# Order allow,deny
++# Allow from all
++#
++# <Files *.html>
++# SetHandler type-map
++# </Files>
++#
++# SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1
++# RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$
/manual/$1$2
++#</Directory>
++#
++#
+ # ScriptAlias: This controls which directories contain server scripts.
+ # ScriptAliases are essentially the same as Aliases, except that
+ # documents in the realname directory are treated as applications and
+@@ -633,7 +633,7 @@
+ # The same rules about trailing "/" apply to ScriptAlias directives as to
+ # Alias.
+ #
+-ScriptAlias /cgi-bin/ "/var/apache2/cgi-bin/"
++#ScriptAlias /cgi-bin/ "/var/apache2/cgi-bin/"
+
+ <IfModule mod_cgid.c>
+ #
+@@ -647,14 +647,14 @@
+ # "/var/apache2/cgi-bin" should be changed to whatever your ScriptAliased
+ # CGI directory exists, if you have that configured.
+ #
+-<Directory "/var/apache2/cgi-bin">
+- AllowOverride None
+- Options None
+- Order allow,deny
+- Allow from all
+-</Directory>
+-
++#<Directory "/var/apache2/cgi-bin">
++# AllowOverride None
++# Options None
++# Order allow,deny
++# Allow from all
++#</Directory>
+ #
++#
+ # Redirect allows you to tell clients about documents which used to exist in
+ # your server's namespace, but do not anymore. This allows you to tell the
+ # clients where to look for the relocated document.
+@@ -1057,7 +1057,40 @@
+ Include /etc/apache2/ssl.conf
+ </IfModule>
+
++ProxyRequests off
++#######################################################################
++## HERE IS WHERE YOU ADD THE APP SERVERS CONFIGURED FOR THE STRUTS ZONE
++#######################################################################
++# Tomcat 5.5.27 running on Java 5
++ProxyPass /tomcat-5-5-27-java5-struts2-showcase
http://localhost:8080/tomcat-5-5-27-java5-struts2-showcase
++ProxyPassReverse /tomcat-5-5-27-java5-struts2-showcase
http://localhost:8080/tomcat-5-5-27-java5-struts2-showcase
++ProxyPass /tomcat-5-5-27-java5-struts2-blank
http://localhost:8080/tomcat-5-5-27-java5-struts2-blank
++ProxyPassReverse /tomcat-5-5-27-java5-struts2-blank
http://localhost:8080/tomcat-5-5-27-java5-struts2-blank
++ProxyPass /tomcat-5-5-27-java5-struts2-mailreader
http://localhost:8080/tomcat-5-5-27-java5-struts2-mailreader
++ProxyPassReverse /tomcat-5-5-27-java5-struts2-mailreader
http://localhost:8080/tomcat-5-5-27-java5-struts2-mailreader
++ProxyPass /tomcat-5-5-27-java5-struts2-portlet
http://localhost:8080/tomcat-5-5-27-java5-struts2-portlet
++ProxyPassReverse /tomcat-5-5-27-java5-struts2-portlet
http://localhost:8080/tomcat-5-5-27-java5-struts2-portlet
++ProxyPass /tomcat-5-5-27-java5-struts2-rest-showcase
http://localhost:8080/tomcat-5-5-27-java5-struts2-rest-showcase
++ProxyPassReverse /tomcat-5-5-27-java5-struts2-rest-showcase
http://localhost:8080/tomcat-5-5-27-java5-struts2-rest-showcase
+
++# Jetty 6.1.14 running on Java 5
++ProxyPass /jetty-6-1-14-java5-struts2-showcase
http://localhost:8081/jetty-6-1-14-java5-struts2-showcase
++ProxyPassReverse /jetty-6-1-14-java5-struts2-showcase
http://localhost:8081/jetty-6-1-14-java5-struts2-showcase
++ProxyPass /jetty-6-1-14-java5-struts2-blank
http://localhost:8081/jetty-6-1-14-java5-struts2-blank
++ProxyPassReverse /jetty-6-1-14-java5-struts2-blank
http://localhost:8081/jetty-6-1-14-java5-struts2-blank
++ProxyPass /jetty-6-1-14-java5-struts2-mailreader
http://localhost:8081/jetty-6-1-14-java5-struts2-mailreader
++ProxyPassReverse /jetty-6-1-14-java5-struts2-mailreader
http://localhost:8081/jetty-6-1-14-java5-struts2-mailreader
++ProxyPass /jetty-6-1-14-java5-struts2-portlet
http://localhost:8081/jetty-6-1-14-java5-struts2-portlet
++ProxyPassReverse /jetty-6-1-14-java5-struts2-portlet
http://localhost:8081/jetty-6-1-14-java5-struts2-portlet
++ProxyPass /jetty-6-1-14-java5-struts2-rest-showcase
http://localhost:8081/jetty-6-1-14-java5-struts2-rest-showcase
++ProxyPassReverse /jetty-6-1-14-java5-struts2-rest-showcase
http://localhost:8081/jetty-6-1-14-java5-struts2-rest-showcase
++
++
++#######################################################################
++# END OF ADDED APP SERVERS
++#######################################################################
++
++
+ ### Section 3: Virtual Hosts
+ #
+ # VirtualHost: If you want to maintain multiple domains/hostnames on your
Added: struts/current/zone/config-files/jetty.xml.patch
URL:
http://svn.apache.org/viewvc/struts/current/zone/config-files/jetty.xml.patch?rev=753010&view=auto
==============================================================================
--- struts/current/zone/config-files/jetty.xml.patch (added)
+++ struts/current/zone/config-files/jetty.xml.patch Thu Mar 12 20:44:50 2009
@@ -0,0 +1,18 @@
+--- /local/appservers/jetty/jetty-6.1.14/etc/jetty.xml.orig Thu Jan 22
02:04:48 2009
++++ /local/appservers/jetty/jetty-6.1.14/etc/jetty.xml Thu Jan 22 02:11:25 2009
+@@ -46,12 +46,12 @@
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.mortbay.jetty.nio.SelectChannelConnector">
+- <Set name="host"><SystemProperty name="jetty.host" /></Set>
+- <Set name="port"><SystemProperty name="jetty.port"
default="8080"/></Set>
++ <Set name="host"><SystemProperty name="jetty.host"
default="127.0.0.1" /></Set>
++ <Set name="port"><SystemProperty name="jetty.port" default="8081"
/></Set>
+ <Set name="maxIdleTime">30000</Set>
+ <Set name="Acceptors">2</Set>
+ <Set name="statsOn">false</Set>
+- <Set name="confidentialPort">8443</Set>
++ <Set name="confidentialPort">8444</Set>
+ <Set name="lowResourcesConnections">5000</Set>
+ <Set name="lowResourcesMaxIdleTime">5000</Set>
+ </New>
Added: struts/current/zone/config-files/tomcat-server.xml.patch
URL:
http://svn.apache.org/viewvc/struts/current/zone/config-files/tomcat-server.xml.patch?rev=753010&view=auto
==============================================================================
--- struts/current/zone/config-files/tomcat-server.xml.patch (added)
+++ struts/current/zone/config-files/tomcat-server.xml.patch Thu Mar 12
20:44:50 2009
@@ -0,0 +1,391 @@
+--- /local/appservers/tomcat/apache-tomcat-5.5.27/conf/server.xml.orig Mon Jan
19 03:52:38 2009
++++ /local/appservers/tomcat/apache-tomcat-5.5.27/conf/server.xml Mon Jan
19 04:01:58 2009
+@@ -1,387 +1,19 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+-<!--
+- 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.
+--->
+-<!-- Example Server Configuration File -->
+-<!-- Note that component elements are nested corresponding to their
+- parent-child relationships with each other -->
+-
+-<!-- A "Server" is a singleton element that represents the entire JVM,
+- which may contain one or more "Service" instances. The Server
+- listens for a shutdown command on the indicated port.
+-
+- Note: A "Server" is not itself a "Container", so you may not
+- define subcomponents such as "Valves" or "Loggers" at this level.
+- -->
+-
+ <Server port="8005" shutdown="SHUTDOWN">
+
+- <!-- Comment these entries out to disable JMX MBeans support used for the
+- administration web application -->
+- <Listener className="org.apache.catalina.core.AprLifecycleListener" />
+- <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
+- <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+- <Listener
className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
+-
+- <!-- Global JNDI resources -->
+- <GlobalNamingResources>
+-
+- <!-- Test entry for demonstration purposes -->
+- <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
+-
+- <!-- Editable user database that can also be used by
+- UserDatabaseRealm to authenticate users -->
+- <Resource name="UserDatabase" auth="Container"
+- type="org.apache.catalina.UserDatabase"
+- description="User database that can be updated and saved"
+- factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+- pathname="conf/tomcat-users.xml" />
+-
+- </GlobalNamingResources>
+-
+- <!-- A "Service" is a collection of one or more "Connectors" that share
+- a single "Container" (and therefore the web applications visible
+- within that Container). Normally, that Container is an "Engine",
+- but this is not required.
+-
+- Note: A "Service" is not itself a "Container", so you may not
+- define subcomponents such as "Valves" or "Loggers" at this level.
+- -->
+-
+- <!-- Define the Tomcat Stand-Alone Service -->
+ <Service name="Catalina">
+
+- <!-- A "Connector" represents an endpoint by which requests are received
+- and responses are returned. Each Connector passes requests on to the
+- associated "Container" (normally an Engine) for processing.
+-
+- By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
+- You can also enable an SSL HTTP/1.1 Connector on port 8443 by
+- following the instructions below and uncommenting the second
Connector
+- entry. SSL support requires the following steps (see the SSL Config
+- HOWTO in the Tomcat 5 documentation bundle for more detailed
+- instructions):
+- * If your JDK version 1.3 or prior, download and install JSSE 1.0.2
or
+- later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
+- * Execute:
+- %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
(Windows)
+- $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
+- with a password value of "changeit" for both the certificate and
+- the keystore itself.
+-
+- By default, DNS lookups are enabled when a web application calls
+- request.getRemoteHost(). This can have an adverse impact on
+- performance, so you can disable it by setting the
+- "enableLookups" attribute to "false". When DNS lookups are disabled,
+- request.getRemoteHost() will return the String version of the
+- IP address of the remote client.
+- -->
+-
+- <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
+- <Connector port="8080" maxHttpHeaderSize="8192"
++ <Connector address="localhost" port="8080" maxHttpHeaderSize="8192"
+ maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+ enableLookups="false" redirectPort="8443" acceptCount="100"
+ connectionTimeout="20000" disableUploadTimeout="true" />
+- <!-- Note : To disable connection timeouts, set connectionTimeout value
+- to 0 -->
+
+- <!-- Note : To use gzip compression you could set the following
properties :
+-
+- compression="on"
+- compressionMinSize="2048"
+- noCompressionUserAgents="gozilla, traviata"
+- compressableMimeType="text/html,text/xml"
+- -->
+-
+- <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
+- <!--
+- <Connector port="8443" maxHttpHeaderSize="8192"
+- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+- enableLookups="false" disableUploadTimeout="true"
+- acceptCount="100" scheme="https" secure="true"
+- clientAuth="false" sslProtocol="TLS" />
+- -->
+-
+- <!-- Define an AJP 1.3 Connector on port 8009 -->
+- <Connector port="8009"
+- enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
+-
+- <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
+- <!-- See proxy documentation for more information about using this. -->
+- <!--
+- <Connector port="8082"
+- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
+- enableLookups="false" acceptCount="100"
connectionTimeout="20000"
+- proxyPort="80" disableUploadTimeout="true" />
+- -->
+-
+- <!-- An Engine represents the entry point (within Catalina) that processes
+- every request. The Engine implementation for Tomcat stand alone
+- analyzes the HTTP headers included with the request, and passes them
+- on to the appropriate Host (virtual host). -->
+-
+- <!-- You should set jvmRoute to support load-balancing via AJP ie :
+- <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
+- -->
+-
+- <!-- Define the top level container in our container hierarchy -->
+ <Engine name="Catalina" defaultHost="localhost">
+
+- <!-- The request dumper valve dumps useful debugging information about
+- the request headers and cookies that were received, and the
response
+- headers and cookies that were sent, for all requests received by
+- this instance of Tomcat. If you care only about requests to a
+- particular virtual host, or a particular application, nest this
+- element inside the corresponding <Host> or <Context> entry instead.
+-
+- For a similar mechanism that is portable to all Servlet 2.4
+- containers, check out the "RequestDumperFilter" Filter in the
+- example application (the source for this filter may be found in
+- "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
+-
+- Note that this Valve uses the platform's default character
encoding.
+- This may cause problems for developers in another encoding, e.g.
+- UTF-8. Use the RequestDumperFilter instead.
+-
+- Also note that enabling this Valve will write a ton of stuff to
your
+- logs. They are likely to grow quite large. This extensive log
writing
+- will definitely slow down your server.
+-
+- Request dumping is disabled by default. Uncomment the following
+- element to enable it. -->
+- <!--
+- <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
+- -->
+-
+- <!-- Because this Realm is here, an instance will be shared globally -->
+-
+- <!-- This Realm uses the UserDatabase configured in the global JNDI
+- resources under the key "UserDatabase". Any edits
+- that are performed against this UserDatabase are immediately
+- available for use by the Realm. -->
+- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+- resourceName="UserDatabase"/>
+-
+- <!-- Comment out the old realm but leave here for now in case we
+- need to go back quickly -->
+- <!--
+- <Realm className="org.apache.catalina.realm.MemoryRealm" />
+- -->
+-
+- <!-- Replace the above Realm with one of the following to get a Realm
+- stored in a database and accessed via JDBC -->
+-
+- <!--
+- <Realm className="org.apache.catalina.realm.JDBCRealm"
+- driverName="org.gjt.mm.mysql.Driver"
+- connectionURL="jdbc:mysql://localhost/authority"
+- connectionName="test" connectionPassword="test"
+- userTable="users" userNameCol="user_name"
userCredCol="user_pass"
+- userRoleTable="user_roles" roleNameCol="role_name" />
+- -->
+-
+- <!--
+- <Realm className="org.apache.catalina.realm.JDBCRealm"
+- driverName="oracle.jdbc.driver.OracleDriver"
+- connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
+- connectionName="scott" connectionPassword="tiger"
+- userTable="users" userNameCol="user_name"
userCredCol="user_pass"
+- userRoleTable="user_roles" roleNameCol="role_name" />
+- -->
+-
+- <!--
+- <Realm className="org.apache.catalina.realm.JDBCRealm"
+- driverName="sun.jdbc.odbc.JdbcOdbcDriver"
+- connectionURL="jdbc:odbc:CATALINA"
+- userTable="users" userNameCol="user_name"
userCredCol="user_pass"
+- userRoleTable="user_roles" roleNameCol="role_name" />
+- -->
+-
+- <!-- Define the default virtual host
+- Note: XML Schema validation will not work with Xerces 2.2.
+- -->
+ <Host name="localhost" appBase="webapps"
+ unpackWARs="true" autoDeploy="true"
+ xmlValidation="false" xmlNamespaceAware="false">
+
+- <!-- Defines a cluster for this node,
+- By defining this element, means that every manager will be
changed.
+- So when running a cluster, only make sure that you have webapps
in there
+- that need to be clustered and remove the other ones.
+- A cluster has the following parameters:
+-
+- className = the fully qualified name of the cluster class
+-
+- clusterName = a descriptive name for your cluster, can be
anything
+-
+- mcastAddr = the multicast address, has to be the same for all
the nodes
+-
+- mcastPort = the multicast port, has to be the same for all the
nodes
+-
+- mcastBindAddress = bind the multicast socket to a specific
address
+-
+- mcastTTL = the multicast TTL if you want to limit your broadcast
+-
+- mcastSoTimeout = the multicast readtimeout
+-
+- mcastFrequency = the number of milliseconds in between sending a
"I'm alive" heartbeat
+-
+- mcastDropTime = the number a milliseconds before a node is
considered "dead" if no heartbeat is received
+-
+- tcpThreadCount = the number of threads to handle incoming
replication requests, optimal would be the same amount of threads as nodes
+-
+- tcpListenAddress = the listen address (bind address) for TCP
cluster request on this host,
+- in case of multiple ethernet cards.
+- auto means that address becomes
+- InetAddress.getLocalHost().getHostAddress()
+-
+- tcpListenPort = the tcp listen port
+-
+- tcpSelectorTimeout = the timeout (ms) for the Selector.select()
method in case the OS
+- has a wakup bug in java.nio. Set to 0 for
no timeout
+-
+- printToScreen = true means that managers will also print to
std.out
+-
+- expireSessionsOnShutdown = true means that
+-
+- useDirtyFlag = true means that we only replicate a session after
setAttribute,removeAttribute has been called.
+- false means to replicate the session after each
request.
+- false means that replication would work for the
following piece of code: (only for SimpleTcpReplicationManager)
+- <%
+- HashMap map =
(HashMap)session.getAttribute("map");
+- map.put("key","value");
+- %>
+- replicationMode = can be either 'pooled', 'synchronous' or
'asynchronous'.
+- * Pooled means that the replication happens
using several sockets in a synchronous way. Ie, the data gets replicated, then
the request return. This is the same as the 'synchronous' setting except it
uses a pool of sockets, hence it is multithreaded. This is the fastest and
safest configuration. To use this, also increase the nr of tcp threads that you
have dealing with replication.
+- * Synchronous means that the thread that
executes the request, is also the
+- thread the replicates the data to the other
nodes, and will not return until all
+- nodes have received the information.
+- * Asynchronous means that there is a specific
'sender' thread for each cluster node,
+- so the request thread will queue the
replication request into a "smart" queue,
+- and then return to the client.
+- The "smart" queue is a queue where when a
session is added to the queue, and the same session
+- already exists in the queue from a previous
request, that session will be replaced
+- in the queue instead of replicating two
requests. This almost never happens, unless there is a
+- large network delay.
+- -->
+- <!--
+- When configuring for clustering, you also add in a valve to catch
all the requests
+- coming in, at the end of the request, the session may or may not
be replicated.
+- A session is replicated if and only if all the conditions are met:
+- 1. useDirtyFlag is true or setAttribute or removeAttribute has
been called AND
+- 2. a session exists (has been created)
+- 3. the request is not trapped by the "filter" attribute
+-
+- The filter attribute is to filter out requests that could not
modify the session,
+- hence we don't replicate the session after the end of this
request.
+- The filter is negative, ie, anything you put in the filter, you
mean to filter out,
+- ie, no replication will be done on requests that match one of the
filters.
+- The filter attribute is delimited by ;, so you can't escape out ;
even if you wanted to.
+-
+- filter=".*\.gif;.*\.js;" means that we will not replicate the
session after requests with the URI
+- ending with .gif and .js are intercepted.
+-
+- The deployer element can be used to deploy apps cluster wide.
+- Currently the deployment only deploys/undeploys to working
members in the cluster
+- so no WARs are copied upons startup of a broken node.
+- The deployer watches a directory (watchDir) for WAR files when
watchEnabled="true"
+- When a new war file is added the war gets deployed to the local
instance,
+- and then deployed to the other instances in the cluster.
+- When a war file is deleted from the watchDir the war is
undeployed locally
+- and cluster wide
+- -->
+-
+- <!--
+- <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
+-
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
+- expireSessionsOnShutdown="false"
+- useDirtyFlag="true"
+- notifyListenersOnReplication="true">
+-
+- <Membership
+- className="org.apache.catalina.cluster.mcast.McastService"
+- mcastAddr="228.0.0.4"
+- mcastPort="45564"
+- mcastFrequency="500"
+- mcastDropTime="3000"/>
+-
+- <Receiver
+-
className="org.apache.catalina.cluster.tcp.ReplicationListener"
+- tcpListenAddress="auto"
+- tcpListenPort="4001"
+- tcpSelectorTimeout="100"
+- tcpThreadCount="6"/>
+-
+- <Sender
+-
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
+- replicationMode="pooled"
+- ackTimeout="15000"
+- waitForAck="true"/>
+-
+- <Valve
className="org.apache.catalina.cluster.tcp.ReplicationValve"
+-
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
+-
+- <Deployer
className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
+- tempDir="/tmp/war-temp/"
+- deployDir="/tmp/war-deploy/"
+- watchDir="/tmp/war-listen/"
+- watchEnabled="false"/>
+-
+- <ClusterListener
className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
+- </Cluster>
+- -->
+-
+-
+-
+- <!-- Normally, users must authenticate themselves to each web app
+- individually. Uncomment the following entry if you would like
+- a user to be authenticated the first time they encounter a
+- resource protected by a security constraint, and then have that
+- user identity maintained across *all* web applications contained
+- in this virtual host. -->
+- <!--
+- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+- -->
+-
+- <!-- Access log processes all requests for this virtual host. By
+- default, log files are created in the "logs" directory relative
to
+- $CATALINA_HOME. If you wish, you can specify a different
+- directory with the "directory" attribute. Specify either a
relative
+- (to $CATALINA_HOME) or absolute path to the desired directory.
+- -->
+- <!--
+- <Valve className="org.apache.catalina.valves.AccessLogValve"
+- directory="logs" prefix="localhost_access_log."
suffix=".txt"
+- pattern="common" resolveHosts="false"/>
+- -->
+-
+- <!-- Access log processes all requests for this virtual host. By
+- default, log files are created in the "logs" directory relative
to
+- $CATALINA_HOME. If you wish, you can specify a different
+- directory with the "directory" attribute. Specify either a
relative
+- (to $CATALINA_HOME) or absolute path to the desired directory.
+- This access log implementation is optimized for maximum
performance,
+- but is hardcoded to support only the "common" and "combined"
patterns.
+- -->
+- <!--
+- <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
+- directory="logs" prefix="localhost_access_log."
suffix=".txt"
+- pattern="common" resolveHosts="false"/>
+- -->
+-
+ </Host>
+
+ </Engine>
Added: struts/current/zone/manifest/jetty-6-1-14-java5.xml
URL:
http://svn.apache.org/viewvc/struts/current/zone/manifest/jetty-6-1-14-java5.xml?rev=753010&view=auto
==============================================================================
--- struts/current/zone/manifest/jetty-6-1-14-java5.xml (added)
+++ struts/current/zone/manifest/jetty-6-1-14-java5.xml Thu Mar 12 20:44:50 2009
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+
+<service_bundle type="manifest" name="tomcat">
+ <service name="network/app-servers/jetty-6-1-14-java5" type="service"
version="1">
+
+ <create_default_instance enabled="false"/>
+
+ <single_instance/>
+
+ <dependency name="filesystem" grouping="require_all" restart_on="none"
type="service">
+ <service_fmri value="svc:/system/filesystem/local"/>
+ </dependency>
+
+ <dependency name="network" grouping="require_all" restart_on="none"
type="service">
+ <service_fmri value="svc:/network/loopback"/>
+ </dependency>
+
+ <exec_method
+ type="method" name="start"
+ exec="/local/smf/scripts/svc-jetty-6-1-14-java5 start"
+ timeout_seconds="30">
+ <method_context>
+ <method_credential user="appservers" group="appservers"/>
+ </method_context>
+ </exec_method>
+
+ <exec_method
+ type="method" name="stop"
+ exec="/local/smf/scripts/svc-jetty-6-1-14-java5 stop"
+ timeout_seconds="60"/>
+
+ <exec_method
+ type="method" name="restart"
+ exec="/local/smf/scripts/svc-jetty-6-1-14-java5 restart"
+ timeout_seconds="60"/>
+
+ <stability value="Unstable"/>
+
+ <template>
+ <common_name>
+ <loctext xml:lang="C"> Tomcat </loctext>
+ </common_name>
+ </template>
+
+ </service>
+</service_bundle>
Added: struts/current/zone/manifest/s2app_deploy_daemon.xml
URL:
http://svn.apache.org/viewvc/struts/current/zone/manifest/s2app_deploy_daemon.xml?rev=753010&view=auto
==============================================================================
--- struts/current/zone/manifest/s2app_deploy_daemon.xml (added)
+++ struts/current/zone/manifest/s2app_deploy_daemon.xml Thu Mar 12 20:44:50
2009
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+
+<service_bundle type="manifest" name="s2app_deploy_daemon">
+ <service name="network/app-servers/s2app_deploy_daemon" type="service"
version="1">
+
+ <create_default_instance enabled="false"/>
+
+ <single_instance/>
+
+ <dependency name="filesystem" grouping="require_all" restart_on="none"
type="service">
+ <service_fmri value="svc:/system/filesystem/local"/>
+ </dependency>
+
+ <exec_method
+ type="method" name="start"
+ exec="/local/smf/scripts/svc-s2app_deploy_daemon start"
+ timeout_seconds="30">
+ <method_context>
+ <method_credential user="appservers" group="appservers"/>
+ </method_context>
+ </exec_method>
+
+ <exec_method
+ type="method" name="stop"
+ exec="/local/smf/scripts/svc-s2app_deploy_daemon stop"
+ timeout_seconds="120"/>
+
+ <exec_method
+ type="method" name="restart"
+ exec="/local/smf/scripts/svc-s2app_deploy_daemon restart"
+ timeout_seconds="150"/>
+
+ <stability value="Unstable"/>
+
+ <template>
+ <common_name>
+ <loctext xml:lang="C"> Tomcat </loctext>
+ </common_name>
+ </template>
+
+ </service>
+</service_bundle>
Added: struts/current/zone/manifest/tomcat-5-5-27-java5.xml
URL:
http://svn.apache.org/viewvc/struts/current/zone/manifest/tomcat-5-5-27-java5.xml?rev=753010&view=auto
==============================================================================
--- struts/current/zone/manifest/tomcat-5-5-27-java5.xml (added)
+++ struts/current/zone/manifest/tomcat-5-5-27-java5.xml Thu Mar 12 20:44:50
2009
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+
+<service_bundle type="manifest" name="tomcat">
+ <service name="network/app-servers/tomcat-5-5-27-java5" type="service"
version="1">
+
+ <create_default_instance enabled="false"/>
+
+ <single_instance/>
+
+ <dependency name="filesystem" grouping="require_all" restart_on="none"
type="service">
+ <service_fmri value="svc:/system/filesystem/local"/>
+ </dependency>
+
+ <dependency name="network" grouping="require_all" restart_on="none"
type="service">
+ <service_fmri value="svc:/network/loopback"/>
+ </dependency>
+
+ <exec_method
+ type="method" name="start"
+ exec="/local/smf/scripts/svc-tomcat-5-5-27-java5 start"
+ timeout_seconds="30">
+ <method_context>
+ <method_credential user="appservers" group="appservers"/>
+ </method_context>
+ </exec_method>
+
+ <exec_method
+ type="method" name="stop"
+ exec="/local/smf/scripts/svc-tomcat-5-5-27-java5 stop"
+ timeout_seconds="60"/>
+
+ <exec_method
+ type="method" name="restart"
+ exec="/local/smf/scripts/svc-tomcat-5-5-27-java5 restart"
+ timeout_seconds="60"/>
+
+ <stability value="Unstable"/>
+
+ <template>
+ <common_name>
+ <loctext xml:lang="C"> Tomcat </loctext>
+ </common_name>
+ </template>
+
+ </service>
+</service_bundle>
Added: struts/current/zone/s2app_deploy_daemon/config.xml
URL:
http://svn.apache.org/viewvc/struts/current/zone/s2app_deploy_daemon/config.xml?rev=753010&view=auto
==============================================================================
--- struts/current/zone/s2app_deploy_daemon/config.xml (added)
+++ struts/current/zone/s2app_deploy_daemon/config.xml Thu Mar 12 20:44:50 2009
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<config>
+ <interval>15</interval>
+ <homeDir>/var/run/s2app_deploy_daemon</homeDir>
+ <configDir>/local/appservers/s2app_deploy_daemon</configDir>
+ <deployablesDir>assembly-zip</deployablesDir>
+ <workDir>work</workDir>
+ <app-servers>
+ <app-server
+ name="tomcat-5-5-27-java5"
+ warDir="/local/appservers/tomcat/apache-tomcat-5.5.27/webapps"
+ deployCmd="" />
+ <app-server
+ name="jetty-6-1-14-java5"
+ warDir="/local/appservers/jetty/jetty-6.1.14/webapps"
+ deployCmd="/usr/bin/touch
/local/appservers/jetty/jetty-6.1.14/contexts/*" />
+ </app-servers>
+</config>
Added: struts/current/zone/s2app_deploy_daemon/logger.conf
URL:
http://svn.apache.org/viewvc/struts/current/zone/s2app_deploy_daemon/logger.conf?rev=753010&view=auto
==============================================================================
--- struts/current/zone/s2app_deploy_daemon/logger.conf (added)
+++ struts/current/zone/s2app_deploy_daemon/logger.conf Thu Mar 12 20:44:50 2009
@@ -0,0 +1,10 @@
+log4perl.rootLogger = DEBUG, myFILE
+
+log4perl.appender.myFILE = Log::Dispatch::FileRotate
+log4perl.appender.myFILE.filename = /var/run/s2app_deploy_daemon/logs/error_log
+log4perl.appender.myFILE.mode = append
+log4perl.appender.Logfile.max = 2
+log4perl.appender.Logfile.size = 10000000
+log4perl.appender.myFILE.layout = Log::Log4perl::Layout::PatternLayout
+log4perl.appender.myFILE.layout.ConversionPattern = %p (%d) %m%n
+
Added: struts/current/zone/s2app_deploy_daemon/s2app_deploy_daemon
URL:
http://svn.apache.org/viewvc/struts/current/zone/s2app_deploy_daemon/s2app_deploy_daemon?rev=753010&view=auto
==============================================================================
--- struts/current/zone/s2app_deploy_daemon/s2app_deploy_daemon (added)
+++ struts/current/zone/s2app_deploy_daemon/s2app_deploy_daemon Thu Mar 12
20:44:50 2009
@@ -0,0 +1,358 @@
+#!/usr/bin/perl
+
+use lib qw(/local/appservers/perl5/lib/site_perl);
+
+use strict;
+use POSIX qw(setsid);
+use XML::Simple;
+use Log::Log4perl;
+use File::Copy qw(move copy);
+use File::Path ;
+
+# for debugging
+use Data::Dumper;
+
+$| = 1; #flush
+
+# get config file from cmd line
+my $config_file = shift ;
+
+# go into background
+&daemonize;
+
+$SIG{'HUP'} = \&read_config ; # try to re-configure when HUP'd
+$SIG{'TERM'} = \&shutdown ; # when kill'd make sure to clean up after
yourself
+
+# setup global for configuration
+my $config ;
+&read_config;
+
+# setup global for logging
+my $logger ;
+
+&write_pid_file;
+
+while (1) {
+ &check_config;
+ &check_for_new_apps;
+ sleep(&get_config_value("interval"));
+}
+
+sub daemonize {
+# for debugging, if you want to run without daemonizing,
+# just uncomment the return
+# TODO make into a cmd line arg
+# return ;
+
+ chdir '/'; # get off of any potentially mounted fs
+ open STDIN, '/dev/null' ;
+ open STDOUT, '>>/dev/null';
+ open STDERR, '>>/dev/null';
+ defined(my $l_pid = fork) or die "Failed to fork: $!";
+ if ($l_pid) { # kill off parent
+ exit ;
+ }
+ setsid ;
+ umask 0;
+
+}
+
+sub read_config {
+
+ # parse our config file
+ if (-e $config_file ) {
+ $config = undef;
+ $config = XMLin($config_file);
+ }
+ else {
+ die "config_file does not exist - " . $config_file;
+ }
+
+ # initialize logging
+ Log::Log4perl::init( &get_config_value("configDir") . "/logger.conf" );
+ $logger = Log::Log4perl->get_logger;
+
+ $logger->debug("debug dump - ");
+ $logger->debug(Dumper($config));
+
+ my $hupFile = &get_config_value("homeDir") . "/.deployer-hup";
+ if (-e $hupFile ) {
+ unlink $hupFile ;
+ }
+
+}
+
+sub check_config {
+
+ $logger->debug("checking config, config file - $config_file");
+
+ # should we just stop now
+ my $homeDir = &get_config_value("homeDir");
+ if (! $homeDir) {
+ $logger->error("unable to find homeDir, bailing");
+ exit(1);
+ }
+
+ if (-e $homeDir . "/.deployer-quit" ) {
+ $logger->info("found a quit file");
+ &shutdown;
+ }
+
+ # should we re-read the config file
+ if (-e $homeDir . "/.deployer-hup" ) {
+ $logger->info("found a hup file");
+ &read_config;
+ }
+
+}
+
+sub check_for_new_apps {
+
+ $logger->debug("checking for new apps" );
+
+ # get deployablesDir
+ my $deployDir = &get_dir_config_value("deployablesDir");
+
+ # read deployablesDir
+ my @files ;
+ if ( opendir(DIRH, $deployDir)) {
+ @files = readdir(DIRH);
+ closedir(DIRH);
+ }
+ else {
+ $logger->error("failed to open deployablesDir - $deployDir, error $!" );
+ exit(1);
+ }
+
+ # check deploy directory for zip
+ my $goodZip = undef ;
+ foreach my $file (@files) {
+ if ( $file =~ m/\.zip$/) {
+ my $cmd = "/usr/bin/unzip -q -t $deployDir/$file";
+ $logger->debug("running: $cmd");
+ my @res = `$cmd`;
+ my $returnVal = $? >> 8;
+ $logger->debug("result = $returnVal");
+ if ($returnVal == 0 ) {
+ $logger->debug("setting goodZip to $file");
+ $goodZip = "$file";
+ last ;
+ }
+ else {
+ $logger->error("not a goodZip, unzip returned status - $returnVal");
+ }
+ }
+ }
+
+ if (!defined($goodZip)) {
+ $logger->debug("goodZip not defined, moving along");
+ return ;
+ }
+ else {
+ # get a work dir
+ my $workDir = &get_dir_config_value("workDir");
+
+ # move zip to work dir
+ my $fileMoved = move("$deployDir/$goodZip", $workDir);
+ if (! $fileMoved) {
+ $logger->error("failed to move $deployDir/$goodZip to $workDir - $!");
+ }
+ else {
+ &deploy_apps("$workDir/$goodZip");
+ }
+ }
+}
+
+sub deploy_apps {
+ my $zipFile = shift;
+ $logger->debug("deploying apps from $zipFile" );
+
+ my $workDir = &get_dir_config_value("workDir");
+ my $cmd = "/usr/bin/unzip -q -d '$workDir' '$zipFile'";
+ $logger->debug("running: $cmd");
+ my @res = `$cmd`;
+ my $returnVal = $? >> 8;
+ $logger->debug("result = $returnVal");
+ if ($returnVal != 0 ) {
+ $logger->error("unzip had a problem, return code - $returnVal");
+ move($zipFile, $zipFile.".bad");
+ return ;
+ }
+ else {
+ $logger->debug("unzip succeeded!");
+ }
+
+ my $findCmd = "/usr/bin/find '$workDir' -name \\*.war";
+ $logger->debug("running: $findCmd");
+ my @origWarFiles = `$findCmd`;
+ chomp @origWarFiles ;
+ my @newWars = ();
+ foreach my $origWarFile (@origWarFiles) {
+ my $newNameCmd = "/usr/bin/basename $origWarFile";
+ $logger->debug("running: $newNameCmd");
+ my $newName = `$newNameCmd`;
+ chomp $newName;
+ $newName =~ s/\-\d+\.\d+\.\d+\-SNAPSHOT//g;
+ $logger->debug("using $newName as basename for $origWarFile");
+ $logger->debug("copying $origWarFile to $workDir/$newName" );
+ copy("$origWarFile","$workDir/$newName");
+ push @newWars, $newName;
+ }
+
+ my $appServers = &get_config_value('app-servers');
+ unless ($appServers) {
+ $logger->warn("error parsing config for app-servers, nowhere to deploy");
+ &clean_work_dir();
+ return ;
+ }
+ # this is sort of silly, but so is using XML::Simple
+ my $appServersHashRef = $appServers->{'app-server'};
+ foreach my $appServer (keys %$appServersHashRef) {
+ $logger->debug("working on app server - " . $appServer);
+
+ # check warDir, then deploy
+ my $curWarDir = $appServersHashRef->{$appServer}{'warDir'};
+ $curWarDir =~ s/\/$//g;
+ unless (-d $curWarDir ) {
+ $logger->error("warDir for $appServer is not a directory");
+ next;
+ }
+
+ foreach my $war (@newWars) {
+ my $deployedName = "$appServer-$war" ;
+ $logger->debug("deploying $deployedName to $curWarDir");
+ if (-e "$curWarDir/$deployedName" ) {
+ unlink "$curWarDir/$deployedName" ;
+ }
+ copy("$workDir/$war", "$curWarDir/$deployedName");
+ }
+
+ # some app servers can't hot deploy, so deploy manually
+ my $deployCmd = $appServersHashRef->{$appServer}{'deployCmd'};
+ if ($deployCmd ne "") {
+ $logger->debug("running - " . $deployCmd);
+ my @res = `$deployCmd`;
+ }
+ }
+ &clean_work_dir();
+}
+
+sub get_dir_config_value {
+ my $dirName = shift;
+ $logger->debug("getting dir config for $dirName");
+ my $dir = &get_config_value($dirName);
+ unless ( -d $dir ) {
+ my $dir2 = &get_config_value("homeDir") . "/" . $dir ;
+ unless (-d $dir2 ) {
+ $logger->error("the dir for $dirName is not valid, tried $dir and
$dir2");
+ exit(1);
+ }
+ $dir = $dir2;
+ }
+ return $dir ;
+}
+
+sub write_pid_file {
+
+ my $pidFile = &get_config_value("homeDir") . "/pid";
+
+ if (-e $pidFile) {
+ die "pid file exists, please clean " . &get_config_value('homeDir') ;
+ }
+
+ open PIDFILE, ">" . $pidFile
+ or die "unable to open pid file " . $pidFile ;
+
+ print PIDFILE "$$" ;
+
+ close PIDFILE
+ or die "unable to close pid file " . $pidFile ;
+
+}
+
+sub get_config_value {
+
+ my $key = shift;
+
+ if ($config->{$key}) {
+ return $config->{$key} ;
+ }
+
+ $logger->info("unable to find a value for " . $key . " attempting defaults");
+
+ if ( $key eq "homeDir" ) {
+ return "/var/run/s2app_deploy_daemon";
+ }
+
+ if ( $key eq "configDir" ) {
+ return "/local/appservers/s2app_deploy_daemon";
+ }
+
+ if ( $key eq "deployablesDir" ) {
+ return "assembly-zip";
+ }
+
+ if ( $key eq "workDir" ) {
+ return "work";
+ }
+
+ $logger->error("unable to retrieve a value for " . $key );
+ return undef;
+
+}
+
+sub clean_work_dir {
+ my $workDir = &get_dir_config_value("workDir");
+ if (-d $workDir && $workDir ne "/" ) {
+ my @files ;
+ if ( opendir(DIRH, $workDir)) {
+ @files = readdir(DIRH);
+ closedir(DIRH);
+ }
+ else {
+ $logger->error("workDir failed to open");
+ }
+ $logger->debug("cleaning out $workDir");
+ foreach my $workDirObj (@files) {
+ if ($workDirObj eq '.' || $workDirObj eq '..') {
+ $logger->debug("skipping . or ..");
+ next;
+ }
+ if (-d "$workDir/$workDirObj") {
+ $logger->debug("rmtreeing $workDir/$workDirObj");
+ rmtree("$workDir/$workDirObj", {'keep_root'=> 1 } );
+ }
+ else {
+ $logger->debug("unlinking $workDir/$workDirObj");
+ unlink("$workDir/$workDirObj");
+ }
+ }
+ }
+}
+
+sub clean_up {
+
+ $logger->info("cleaning up");
+ my $homeDir = &get_dir_config_value("homeDir");
+
+ # clean out the workDir
+ &clean_work_dir;
+
+ # clean up .deployer- files
+ unlink $homeDir . "/.deployer-hup" ;
+ unlink $homeDir . "/.deployer-quit" ;
+
+ # remove pid file
+ unlink $homeDir . "/pid" ;
+
+}
+
+sub shutdown {
+
+ $logger->info("shutting down");
+
+ &clean_up;
+
+ exit 0;
+
+}
Propchange: struts/current/zone/s2app_deploy_daemon/s2app_deploy_daemon
------------------------------------------------------------------------------
svn:executable = *
Added: struts/current/zone/startup-scripts/svc-jetty-6-1-14-java5
URL:
http://svn.apache.org/viewvc/struts/current/zone/startup-scripts/svc-jetty-6-1-14-java5?rev=753010&view=auto
==============================================================================
--- struts/current/zone/startup-scripts/svc-jetty-6-1-14-java5 (added)
+++ struts/current/zone/startup-scripts/svc-jetty-6-1-14-java5 Thu Mar 12
20:44:50 2009
@@ -0,0 +1,37 @@
+#!/usr/bin/sh
+
+. /lib/svc/share/smf_include.sh
+
+JAVA_HOME=/usr/jdk/jdk1.5.0_17
+export JAVA_HOME
+JAVA_OPTIONS="-Xms128m -Xmx768m -XX:MaxPermSize=256m"
+export JAVA_OPTIONS
+JETTY_HOME="/local/appservers/jetty/jetty-6.1.14"
+export JETTY_HOME
+JETTY_PORT="8081"
+export JETTY_PORT
+JETTY_RUN="/var/run/jetty-6.1.14"
+export JETTY_RUN
+
+case $1 in
+'start')
+ echo "starting jetty.."
+ /local/appservers/jetty/jetty-6.1.14/bin/jetty.sh start
+ ;;
+
+'stop')
+ echo "stopping jetty.."
+ /local/appservers/jetty/jetty-6.1.14/bin/jetty.sh stop
+ ;;
+
+'restart')
+ stop
+ sleep 25
+ start
+ ;;
+
+*)
+ echo "Usage: $0 { start | stop | restart }"
+ exit 1
+ ;;
+esac
Propchange: struts/current/zone/startup-scripts/svc-jetty-6-1-14-java5
------------------------------------------------------------------------------
svn:executable = *
Added: struts/current/zone/startup-scripts/svc-s2app_deploy_daemon
URL:
http://svn.apache.org/viewvc/struts/current/zone/startup-scripts/svc-s2app_deploy_daemon?rev=753010&view=auto
==============================================================================
--- struts/current/zone/startup-scripts/svc-s2app_deploy_daemon (added)
+++ struts/current/zone/startup-scripts/svc-s2app_deploy_daemon Thu Mar 12
20:44:50 2009
@@ -0,0 +1,26 @@
+#!/usr/bin/sh
+
+. /lib/svc/share/smf_include.sh
+
+case $1 in
+'start')
+ echo "starting s2app_deploy_daemon.."
+ /local/appservers/s2app_deploy_daemon/s2app_deploy_daemon
/local/appservers/s2app_deploy_daemon/config.xml
+ ;;
+
+'stop')
+ echo "stopping s2app_deploy_daemon.."
+ /usr/bin/touch /var/run/s2app_deploy_daemon/.deployer-quit
+ ;;
+
+'restart')
+ stop
+ sleep 60
+ start
+ ;;
+
+*)
+ echo "Usage: $0 { start | stop | restart }"
+ exit 1
+ ;;
+esac
Propchange: struts/current/zone/startup-scripts/svc-s2app_deploy_daemon
------------------------------------------------------------------------------
svn:executable = *
Added: struts/current/zone/startup-scripts/svc-tomcat-5-5-27-java5
URL:
http://svn.apache.org/viewvc/struts/current/zone/startup-scripts/svc-tomcat-5-5-27-java5?rev=753010&view=auto
==============================================================================
--- struts/current/zone/startup-scripts/svc-tomcat-5-5-27-java5 (added)
+++ struts/current/zone/startup-scripts/svc-tomcat-5-5-27-java5 Thu Mar 12
20:44:50 2009
@@ -0,0 +1,29 @@
+#!/usr/bin/sh
+
+. /lib/svc/share/smf_include.sh
+
+JAVA_HOME=/usr/jdk/jdk1.5.0_17
+export JAVA_HOME
+
+case $1 in
+'start')
+ echo "starting tomcat.."
+ /local/appservers/tomcat/apache-tomcat-5.5.27/bin/startup.sh
+ ;;
+
+'stop')
+ echo "stopping tomcat.."
+ /local/appservers/tomcat/apache-tomcat-5.5.27/bin/shutdown.sh
+ ;;
+
+'restart')
+ stop
+ sleep 25
+ start
+ ;;
+
+*)
+ echo "Usage: $0 { start | stop | restart }"
+ exit 1
+ ;;
+esac
Propchange: struts/current/zone/startup-scripts/svc-tomcat-5-5-27-java5
------------------------------------------------------------------------------
svn:executable = *