blob: 3a8837f873c9c39653594a90bbf3aa654c619db1 [file] [log] [blame]
<?xml version="1.0"?>
<!--
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.
-->
<document>
<properties>
<title>Fulcrum YAAFI Avalon Container Shutdown Service</title>
<author email="siegfried.goeschl@it20one.at">Siegfried Goeschl</author>
</properties>
<body>
<section name="Overview">
<p>
This service uses a background thread to monitor a resource. A
resource is loaded by using a resource name and an InputStreamLocator.
The a SHA-1 hashcode is derived and compared to the previous hashcode.
If a change is detected the container is disposed, either by
terminating all active threads or by calling System.exit(). This
service allows to shutdown a long-running application by writing
a timestamp into a file therefore avoiding any additional network
support.
</p>
</section>
<section name="Configuration">
<subsection name="Role Configuration">
<source>
<![CDATA[
<role
name="org.apache.fulcrum.yaafi.service.shutdown.ShutdownService"
shorthand="ShutdownService"
default-class="org.apache.fulcrum.yaafi.service.shutdown.ShutdownServiceImpl"
early-init="true"
description="Monitors a resource to force a disposal of the Avalon container"
/>
]]>
</source>
</subsection>
<subsection name="Example Component Configuration">
<p>
The following configuration checks every 5 seconds
if the files have changed. Changing "shutdown.txt"
forces a disposable of the container and invoking
System.exit() afterwards
</p>
<source>
<![CDATA[
<ShutdownService interval="5000">
<entry>
<location>./src/test/shutdown.txt</location>
<useSystemExit>true</useSystemExit>
</entry>
</ShutdownService>
]]>
</source>
</subsection>
</section>
</body>
</document>