...
| Bloc de code |
|---|
public class CmisFileStorageServiceImpl {
....
/**
* Bean to test if cmis is ready.
*/
private JmxTestCmis jmxTestCmis;
public void afterPropertiesSet() throws Exception{
....
Assert.notNull(this.jmxTestCmis,
"property jmxTestCmis of class " + this.getClass().getName() + " can not be null");
}
...
/**
* @param jmxTestCmis the jmxTestCmis to set
*/
public void setJmxTestCmis(final JmxTestCmis jmxTestCmis){
this.jmxTestCmis = jmxTestCmis;
}
public FileStorage getFile(...) throws IOException {
FileStorage file = null;
if (jmxTestCmis.getCmisIsReady()) {
file= ...;
}
else {
System.err.println("--------le service CMIS est indisponible");
}
return file;
}
}
|
...
Le bean JMX (MBean)
| Bloc de code |
|---|
package org.esupportail.application.services.fileStorage; |
...
| Bloc de code |
|---|
public interface JmxTestCmis {
/**
* Enable the use of CMIS.
*/
void enabledCmis();
/**
* Disable the use of CMIS.
*/
void disabledCmis();
/**
* @return the cmisIsReady
*/
Boolean getCmisIsReady();
}
|
| Bloc de code |
|---|
package org.esupportail.application.services.fileStorage;
import java.io.Serializable;
public class JmxTestCmisImpl implements JmxTestCmis, Serializable {
/**
* True if cmis is ready.
* Default value = true.
*/
private Boolean cmisIsReady;
public JmxTestCmisImpl()
{ {
super();
cmisIsReady = true;
}
@Override
public void disableCmis() {
{ cmisIsReady = false;
}
@Override
public void enableCmis() {
{ cmisIsReady = true;
}
public Boolean getCmisIsReady()
{ {
return cmisIsReady;
}
}
|
L'activation du client
...
JMX
Si l'application écoute le port jmx 9656,par exemple, au lancement de l'application, on aura les options suivantes:
| Bloc de code |
|---|
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9656 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false |
...
L'agent JMX doit être activé sur l'application délivrant le service CMIS
activationJMX.sh
| Bloc de code |
|---|
#!/bin/csh
set cmdLineJMXJar=/opt/admin-java/jmx/cmdline-jmxclient.jar
set jmxHost=host.etablissement.fr
set jmXPort=9656
#No User and password so pass '-'
echo "active l'utilisation de CMIS pour les applications en ecoute sur le port 9656"
/opt/jdk1.6.0/bin/java -jar ${cmdLineJMXJar} - ${jmxHost}:${port} bean:name=testCmis enabled
|
desactivationJMX.sh
| Bloc de code |
|---|
#!/bin/csh
set cmdLineJMXJar=/opt/admin-java/jmx/cmdline-jmxclient.jar
set port=9656
set jmxHost=host.etablissement.fr
#No User and password so pass '-'
echo "désactive l'utilisation de CMIS pour les applications en ecoute sur le port 9656"
/opt/jdk1.6.0/bin/java -jar ${cmdLineJMXJar} - ${jmxHost}:${port} bean:name=testCmis disabled
|
...