Author: nfilotto
Date: 2012-01-31 12:57:20 -0500 (Tue, 31 Jan 2012)
New Revision: 5547
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryServiceConfiguration.java
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml
Log:
EXOJCR-1737: Gives a way to get the configuration of the repositories/workspaces at
Runtime
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryServiceConfiguration.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryServiceConfiguration.java 2012-01-31
15:59:04 UTC (rev 5546)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/config/RepositoryServiceConfiguration.java 2012-01-31
17:57:20 UTC (rev 5547)
@@ -19,12 +19,21 @@
package org.exoplatform.services.jcr.config;
import org.exoplatform.commons.utils.SecurityHelper;
+import org.exoplatform.management.annotations.Managed;
+import org.exoplatform.management.annotations.ManagedDescription;
+import org.exoplatform.management.jmx.annotations.NameTemplate;
+import org.exoplatform.management.jmx.annotations.Property;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
import org.jibx.runtime.BindingDirectory;
import org.jibx.runtime.IBindingFactory;
+import org.jibx.runtime.IMarshallingContext;
import org.jibx.runtime.IUnmarshallingContext;
import org.jibx.runtime.JiBXException;
+import java.io.IOException;
import java.io.InputStream;
+import java.io.StringWriter;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.LinkedHashMap;
@@ -40,9 +49,11 @@
* @author <a href="mailto:gennady.azarenkov@exoplatform.com">Gennady
Azarenkov </a>
* @version $Id: RepositoryServiceConfiguration.java 2038 2005-10-05 16:50:11Z geaz $
*/
-
+@Managed
+@NameTemplate(@Property(key = "service", value =
"RepositoryServiceConfiguration"))
public class RepositoryServiceConfiguration extends
AbstractRepositoryServiceConfiguration
{
+ private static final Log LOG =
ExoLogger.getLogger("exo.jcr.component.core.RepositoryServiceConfiguration");
//NOSONAR
public RepositoryServiceConfiguration()
{
@@ -180,4 +191,37 @@
{
}
+ @Managed
+ @ManagedDescription("The configuration of all the repositories in XML
format.")
+ public String getConfigurationXML()
+ {
+ StringWriter sw = new StringWriter();
+ try
+ {
+ IBindingFactory bfact =
BindingDirectory.getFactory(RepositoryServiceConfiguration.class);
+ IMarshallingContext mctx = bfact.createMarshallingContext();
+ mctx.setIndent(2);
+ mctx.marshalDocument(this, "UTF-8", null, sw);
+ }
+ catch (Exception e)
+ {
+ LOG.warn("Cannot convert the configuration to XML format", e);
+ return null;
+ }
+ finally
+ {
+ try
+ {
+ sw.close();
+ }
+ catch (IOException ignore)
+ {
+ if (LOG.isTraceEnabled())
+ {
+ LOG.trace("An exception occurred: " + ignore.getMessage());
+ }
+ }
+ }
+ return sw.toString();
+ }
}
Modified:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml
===================================================================
---
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml 2012-01-31
15:59:04 UTC (rev 5546)
+++
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml 2012-01-31
17:57:20 UTC (rev 5547)
@@ -275,7 +275,7 @@
<entry>acl-bloomfilter-false-positive-probability</entry>
<entry>ACL Bloom-filter desired false positive probability. Range
- [0..1]. Default value 0.1d. (See the note below) </entry>
+ [0..1]. Default value 0.1d. (See the note below)</entry>
</row>
<row>
@@ -514,4 +514,18 @@
</listitem>
</orderedlist>
</section>
+
+ <section>
+ <title>Getting the effective configuration at Runtime of all the
+ repositories</title>
+
+ <para>The effective configuration of all the repositories and their
+ workspaces can be known thanks to the method
+ <emphasis>getConfigurationXML</emphasis>() that is exposed through JMX
at
+ the <emphasis>RepositoryServiceConfiguration</emphasis> level. This
method
+ will give you the effective configuration in XML format that has been
+ really interpreted by the the JCR core. This could be helpful to
+ understand how your repositories/workspaces are configured especially if
+ you would like to overwrite the configuration for some reasons.</para>
+ </section>
</chapter>
Show replies by date