82 lines
2.8 KiB
Java
82 lines
2.8 KiB
Java
/*
|
|
* 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.
|
|
*/
|
|
package org.apache.catalina.ant.jmx;
|
|
|
|
import org.apache.tools.ant.BuildException;
|
|
|
|
/**
|
|
*
|
|
* Definition
|
|
* <pre>
|
|
* <path id="catalina_ant">
|
|
* <fileset dir="${catalina.home}/server/lib">
|
|
* <include name="catalina-ant.jar"/>
|
|
* </fileset>
|
|
* </path>
|
|
*
|
|
* <typedef
|
|
* name="jmxEquals"
|
|
* classname="org.apache.catalina.ant.jmx.JMXAccessorEqualsCondition"
|
|
* classpathref="catalina_ant"/>
|
|
* </pre>
|
|
*
|
|
* usage: Wait for start backup node
|
|
* <pre>
|
|
* <target name="wait">
|
|
* <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
|
|
* <and>
|
|
* <socket server="${server.name}" port="${server.port}"/>
|
|
* <http url="${url}"/>
|
|
* <jmxEquals
|
|
* host="localhost" port="9014" username="controlRole" password="tomcat"
|
|
* name="Catalina:type=IDataSender,host=localhost,senderAddress=192.168.111.1,senderPort=9025"
|
|
* attribute="connected" value="true"
|
|
* />
|
|
* </and>
|
|
* </waitfor>
|
|
* <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
|
|
* <echo message="Server ${url} alive" />
|
|
* </target>
|
|
*
|
|
* </pre>
|
|
*
|
|
* @author Peter Rossbach
|
|
* @since 5.5.10
|
|
*/
|
|
public class JMXAccessorEqualsCondition extends JMXAccessorConditionBase {
|
|
|
|
@Override
|
|
public boolean eval() {
|
|
String value = getValue();
|
|
|
|
if (value == null) {
|
|
throw new BuildException("value attribute is not set");
|
|
}
|
|
if (getName() == null || getAttribute() == null) {
|
|
throw new BuildException(
|
|
"Must specify an MBean name and attribute for equals condition");
|
|
}
|
|
//FIXME check url or host/parameter
|
|
String jmxValue = accessJMXValue();
|
|
if (jmxValue != null) {
|
|
return jmxValue.equals(value);
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|