exo-jcr SVN: r1213 - jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache.
by do-not-reply@jboss.org
Author: skabashnyuk
Date: 2009-12-28 09:21:58 -0500 (Mon, 28 Dec 2009)
New Revision: 1213
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java
Log:
EXOJCR-331 : Logger info added
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java 2009-12-28 13:53:32 UTC (rev 1212)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java 2009-12-28 14:21:58 UTC (rev 1213)
@@ -73,7 +73,7 @@
*/
public void setUpdateInProgress(boolean updateInProgress)
{
-
+ log.info("setUpdateInProgress=" + updateInProgress);
TransactionManager tm = ((CacheSPI<Serializable, Object>)cache).getTransactionManager();
try
{
@@ -109,5 +109,4 @@
}
}
-
}
16 years, 6 months
exo-jcr SVN: r1212 - jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.
by do-not-reply@jboss.org
Author: nzamosenchuk
Date: 2009-12-28 08:53:32 -0500 (Mon, 28 Dec 2009)
New Revision: 1212
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
Log:
EXOJCR-327: Removed deprecated method from MultiIndex
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2009-12-28 13:19:24 UTC (rev 1211)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java 2009-12-28 13:53:32 UTC (rev 1212)
@@ -812,13 +812,6 @@
{
synchronized (updateMonitor)
{
-
- // TODO: re-implement in less aggressive way
- if (ioMode == IndexerIoMode.READ_ONLY)
- {
- // this is temporary and extensive solution to re-read list of indexes.
- refreshIndexesList();
- }
if (multiReader != null)
{
multiReader.acquire();
@@ -2430,67 +2423,7 @@
}
/**
- * Temporary solution for indexer in cluster. This method re-reads list of indexes from FS.
- * @Deprecated, because new implementation is in the development. IndexInfos class will now callback
- * method {@link MultiIndex#refreshIndexList()}. Will be removed, when jBossCacheIndexInfos is
- * introduced.
- * @throws IOException
- */
- @Deprecated
- protected void refreshIndexesList() throws IOException
- {
- log.info("Refreshing list of indexes...");
- // release reader if any
- releaseMultiReader();
- // get new indexInfo
- IndexInfos newIndexNames = new IndexInfos();
- newIndexNames.setMultiIndex(this);
- newIndexNames.setDirectory(indexDir);
- newIndexNames.read();
- // prepare added/removed sets
- Set<String> removed = new HashSet<String>(indexNames.getNames());
- removed.removeAll(newIndexNames.getNames());
-
- Set<String> added = new HashSet<String>(newIndexNames.getNames());
- added.removeAll(indexNames.getNames());
-
- // remove removed indexes
- Iterator<PersistentIndex> iterator = indexes.iterator();
- while (iterator.hasNext())
- {
- PersistentIndex index = iterator.next();
- if (removed.contains(((PersistentIndex)index).getName()))
- {
- ((PersistentIndex)index).close();
- iterator.remove();
- }
- }
- // add added indexes
- for (String name : added)
- {
- // only open if it still exists
- // it is possible that indexNames still contains a name for
- // an index that has been deleted, but indexNames has not been
- // written to disk.
- if (!directoryManager.hasDirectory(name))
- {
- log.debug("index does not exist anymore: " + name);
- // move on to next index
- continue;
- }
- PersistentIndex index =
- new PersistentIndex(name, handler.getTextAnalyzer(), handler.getSimilarity(), cache, indexingQueue,
- directoryManager);
- index.setMaxFieldLength(handler.getMaxFieldLength());
- index.setUseCompoundFile(handler.getUseCompoundFile());
- index.setTermInfosIndexDivisor(handler.getTermInfosIndexDivisor());
- indexes.add(index);
- }
- indexNames = newIndexNames;
- }
-
- /**
- * Refresh list of indexes. Used to be called from CacheLoader. New, actual list is read from
+ * Refresh list of indexes. Used to be called asynchronously when list changes. New, actual list is read from
* IndexInfos.
* @throws IOException
*/
@@ -2499,14 +2432,11 @@
// TODO: re-study synchronization here.
synchronized (updateMonitor)
{
- log.info("Refreshing list of indexes...");
// release reader if any
releaseMultiReader();
// prepare added/removed sets
Set<String> newList = new HashSet<String>(indexNames.getNames());
- log.info("GOT NEW LIST: "+newList);
-
// remove removed indexes
Iterator<PersistentIndex> iterator = indexes.iterator();
while (iterator.hasNext())
16 years, 6 months
exo-jcr SVN: r1211 - in kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform: management/spi and 1 other directory.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2009-12-28 08:19:24 -0500 (Mon, 28 Dec 2009)
New Revision: 1211
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java
Log:
EXOJCR-330 : Enable plugability of management layer : a bit more decoupling
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java 2009-12-28 13:03:06 UTC (rev 1210)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java 2009-12-28 13:19:24 UTC (rev 1211)
@@ -31,6 +31,7 @@
import javax.management.modelmbean.ModelMBeanInfo;
import java.util.Hashtable;
import java.util.Map;
+import java.util.List;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
@@ -91,6 +92,13 @@
{
Map<String, String> props = new Hashtable<String, String>();
+ // Merge scoping properties
+ List<Map<String, String>> list = context.getScopingProperties();
+ for (Map<String, String> scopingProperties : list)
+ {
+ props.putAll(scopingProperties);
+ }
+
// Julien : I know it's does not look great but it's necessary
// for compiling under Java 5 and Java 6 properly. The methods
// ObjectName#getKeyPropertyList() returns an Hashtable with Java 5
@@ -104,12 +112,6 @@
}
//
- Map<String, String> scopingProperties = context.getScopingProperties();
-
- // Merge with scoping properties
- props.putAll(scopingProperties);
-
- //
on = JMX.createObjectName(on.getDomain(), props);
//
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 13:03:06 UTC (rev 1210)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 13:19:24 UTC (rev 1211)
@@ -28,8 +28,10 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -172,16 +174,16 @@
}
}
- public Map<String, String> getScopingProperties() {
- Map<String, String> props = new HashMap<String, String>();
+ public List<Map<String, String>> getScopingProperties() {
+ ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
for (ManagementContextImpl current = this; current != null; current = current.parent)
{
if (current.scopingProperties != null)
{
- props.putAll(current.scopingProperties);
+ list.add(current.scopingProperties);
}
}
- return props;
+ return list;
}
public ExoContainer findContainer()
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java 2009-12-28 13:03:06 UTC (rev 1210)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java 2009-12-28 13:19:24 UTC (rev 1211)
@@ -16,15 +16,14 @@
*/
package org.exoplatform.management.spi;
-import org.exoplatform.management.spi.ManagedTypeMetaData;
-
/**
* This interface is implemented by a management provider such a JMX.
*
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
+ * @param <S> the scope type
*/
-public interface ManagementProvider
+public interface ManagementProvider<S>
{
/**
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java 2009-12-28 13:03:06 UTC (rev 1210)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java 2009-12-28 13:19:24 UTC (rev 1211)
@@ -18,6 +18,7 @@
import org.exoplatform.management.ManagementContext;
+import java.util.List;
import java.util.Map;
/**
@@ -34,7 +35,7 @@
*
* @return the scoping properties
*/
- Map<String, String> getScopingProperties();
+ List<Map<String, String>> getScopingProperties();
/**
* Before a managed resource is invoked by the management layer.
16 years, 6 months
exo-jcr SVN: r1210 - in kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform: container/management and 2 other directories.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2009-12-28 08:03:06 -0500 (Mon, 28 Dec 2009)
New Revision: 1210
Added:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodParameterMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedParameterMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedPropertyMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedTypeMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java
Removed:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodParameterMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedParameterMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedPropertyMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedTypeMetaData.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/MetaDataBuilder.java
Log:
EXOJCR-350 : Enable plugability of management layer : created SPI in dedicated management package
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -18,10 +18,10 @@
*/
package org.exoplatform.container.jmx;
-import org.exoplatform.container.management.ManagedMethodMetaData;
-import org.exoplatform.container.management.ManagedMethodParameterMetaData;
-import org.exoplatform.container.management.ManagedPropertyMetaData;
-import org.exoplatform.container.management.ManagedTypeMetaData;
+import org.exoplatform.management.spi.ManagedMethodMetaData;
+import org.exoplatform.management.spi.ManagedMethodParameterMetaData;
+import org.exoplatform.management.spi.ManagedPropertyMetaData;
+import org.exoplatform.management.spi.ManagedTypeMetaData;
import org.exoplatform.container.management.MetaDataBuilder;
import java.lang.reflect.Method;
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -18,7 +18,7 @@
*/
package org.exoplatform.container.jmx;
-import org.exoplatform.container.management.spi.ManagementProviderContext;
+import org.exoplatform.management.spi.ManagementProviderContext;
import org.exoplatform.management.ManagementAware;
import org.exoplatform.management.ManagementContext;
import org.exoplatform.management.jmx.annotations.NamingContext;
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -16,9 +16,9 @@
*/
package org.exoplatform.container.jmx;
-import org.exoplatform.container.management.ManagedTypeMetaData;
-import org.exoplatform.container.management.spi.ManagementProvider;
-import org.exoplatform.container.management.spi.ManagementProviderContext;
+import org.exoplatform.management.spi.ManagedTypeMetaData;
+import org.exoplatform.management.spi.ManagementProvider;
+import org.exoplatform.management.spi.ManagementProviderContext;
import org.exoplatform.management.jmx.annotations.NameTemplate;
import javax.management.InstanceAlreadyExistsException;
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -20,9 +20,9 @@
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.component.RequestLifeCycle;
-import org.exoplatform.container.management.ManagedTypeMetaData;
+import org.exoplatform.management.spi.ManagedTypeMetaData;
import org.exoplatform.container.management.MetaDataBuilder;
-import org.exoplatform.container.management.spi.ManagementProviderContext;
+import org.exoplatform.management.spi.ManagementProviderContext;
import org.exoplatform.management.ManagementContext;
import org.exoplatform.management.annotations.ManagedBy;
Deleted: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMetaData.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMetaData.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.container.management;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public class ManagedMetaData
-{
-
- /** . */
- private String description;
-
- public String getDescription()
- {
- return description;
- }
-
- public void setDescription(String description)
- {
- this.description = description;
- }
-}
Deleted: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodMetaData.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodMetaData.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.container.management;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public class ManagedMethodMetaData extends ManagedMetaData
-{
-
- /** . */
- private final Method method;
-
- /** . */
- private final Map<Integer, ManagedMethodParameterMetaData> parameters;
-
- /**
- * Build a new instance.
- *
- * @param method the method
- * @throws NullPointerException if the method is null
- */
- public ManagedMethodMetaData(Method method) throws NullPointerException
- {
- if (method == null)
- {
- throw new NullPointerException();
- }
-
- //
- this.method = method;
- this.parameters = new HashMap<Integer, ManagedMethodParameterMetaData>();
- }
-
- public Method getMethod()
- {
- return method;
- }
-
- public void addParameter(ManagedMethodParameterMetaData parameter)
- {
- if (parameter == null)
- {
- throw new NullPointerException("No null parameter accepted");
- }
- parameters.put(parameter.getIndex(), parameter);
- }
-
- public Collection<ManagedMethodParameterMetaData> getParameters()
- {
- return Collections.unmodifiableCollection(parameters.values());
- }
-}
Deleted: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodParameterMetaData.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodParameterMetaData.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodParameterMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.container.management;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public class ManagedMethodParameterMetaData extends ManagedParameterMetaData
-{
-
- /** . */
- private final int index;
-
- /**
- * Build a managed method parameter meta data.
- *
- * @param index the parameter index
- * @throws IllegalArgumentException if the index is negative
- */
- public ManagedMethodParameterMetaData(int index) throws IllegalArgumentException
- {
- if (index < 0)
- {
- throw new IllegalArgumentException("Non negative index value accepted " + index);
- }
- this.index = index;
- }
-
- public int getIndex()
- {
- return index;
- }
-}
Deleted: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedParameterMetaData.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedParameterMetaData.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedParameterMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.container.management;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public class ManagedParameterMetaData extends ManagedMetaData
-{
-
- /** . */
- private String name;
-
- public ManagedParameterMetaData()
- {
- }
-
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-}
Deleted: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedPropertyMetaData.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedPropertyMetaData.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedPropertyMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.container.management;
-
-import java.lang.reflect.Method;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public class ManagedPropertyMetaData extends ManagedMetaData
-{
-
- /** . */
- private final String name;
-
- /** . */
- private final Method getter;
-
- /** . */
- private final String getterDescription;
-
- /** . */
- private final Method setter;
-
- /** . */
- private final String setterDescription;
-
- /** . */
- private final ManagedParameterMetaData setterParameter;
-
- public ManagedPropertyMetaData(String name, Method getter, String getterDescription, Method setter,
- String setterDescription, ManagedParameterMetaData setterParameter) throws NullPointerException,
- IllegalArgumentException
- {
- if (name == null)
- {
- throw new NullPointerException("No null name accepted");
- }
- if (setter != null)
- {
- if (setterParameter == null)
- {
- throw new IllegalArgumentException("No setter parameter provided");
- }
- }
- else
- {
- if (setterParameter != null)
- {
- throw new IllegalArgumentException("No setter provided but a setter parameter was provided");
- }
- }
-
- //
- this.name = name;
- this.getter = getter;
- this.getterDescription = getterDescription;
- this.setter = setter;
- this.setterDescription = setterDescription;
- this.setterParameter = setterParameter;
- }
-
- public String getName()
- {
- return name;
- }
-
- public Method getGetter()
- {
- return getter;
- }
-
- public Method getSetter()
- {
- return setter;
- }
-
- public String getGetterDescription()
- {
- return getterDescription;
- }
-
- public String getSetterDescription()
- {
- return setterDescription;
- }
-
- public ManagedParameterMetaData getSetterParameter()
- {
- return setterParameter;
- }
-
- @Override
- public String toString()
- {
- return "ManagedPropertyMetaData[" + "name=" + name + "getter=" + getter.getName() + "setter=" + setter.getName()
- + "]";
- }
-}
Deleted: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedTypeMetaData.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedTypeMetaData.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedTypeMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.container.management;
-
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public class ManagedTypeMetaData extends ManagedMetaData
-{
-
- /** . */
- private final Class type;
-
- /** . */
- private final Map<String, ManagedPropertyMetaData> properties;
-
- /** . */
- private final Map<MethodKey, ManagedMethodMetaData> methods;
-
- public ManagedTypeMetaData(Class type) throws NullPointerException
- {
- if (type == null)
- {
- throw new NullPointerException();
- }
-
- //
- this.type = type;
- this.properties = new HashMap<String, ManagedPropertyMetaData>();
- this.methods = new HashMap<MethodKey, ManagedMethodMetaData>();
- }
-
- public Class getType()
- {
- return type;
- }
-
- public ManagedPropertyMetaData getProperty(String propertyName)
- {
- return properties.get(propertyName);
- }
-
- public void addProperty(ManagedPropertyMetaData property)
- {
- properties.put(property.getName(), property);
- }
-
- public void addMethod(ManagedMethodMetaData method)
- {
- methods.put(new MethodKey(method.getMethod()), method);
- }
-
- public Collection<ManagedMethodMetaData> getMethods()
- {
- return methods.values();
- }
-
- public Collection<ManagedPropertyMetaData> getProperties()
- {
- return properties.values();
- }
-
- private static class MethodKey
- {
-
- private final String name;
-
- private final List<Class<?>> types;
-
- private MethodKey(Method method)
- {
- this.name = method.getName();
- this.types = Arrays.asList(method.getParameterTypes());
- }
-
- @Override
- public int hashCode()
- {
- int hashCode = name.hashCode();
- for (Class<?> type : types)
- {
- hashCode = hashCode * 41 + type.hashCode();
- }
- return hashCode;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (obj == this)
- {
- return true;
- }
- if (obj instanceof MethodKey)
- {
- MethodKey that = (MethodKey)obj;
- return this.name.equals(that.name) && this.types.equals(that.types);
- }
- return false;
- }
- }
-}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/MetaDataBuilder.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/MetaDataBuilder.java 2009-12-28 12:50:33 UTC (rev 1209)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/MetaDataBuilder.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -22,6 +22,11 @@
import org.exoplatform.management.annotations.Managed;
import org.exoplatform.management.annotations.ManagedDescription;
import org.exoplatform.management.annotations.ManagedName;
+import org.exoplatform.management.spi.ManagedMethodMetaData;
+import org.exoplatform.management.spi.ManagedMethodParameterMetaData;
+import org.exoplatform.management.spi.ManagedParameterMetaData;
+import org.exoplatform.management.spi.ManagedPropertyMetaData;
+import org.exoplatform.management.spi.ManagedTypeMetaData;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi (from rev 1207, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi)
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMetaData.java (from rev 1204, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMetaData.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMetaData.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.management.spi;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class ManagedMetaData
+{
+
+ /** . */
+ private String description;
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public void setDescription(String description)
+ {
+ this.description = description;
+ }
+}
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodMetaData.java (from rev 1204, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodMetaData.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodMetaData.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.management.spi;
+
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class ManagedMethodMetaData extends ManagedMetaData
+{
+
+ /** . */
+ private final Method method;
+
+ /** . */
+ private final Map<Integer, ManagedMethodParameterMetaData> parameters;
+
+ /**
+ * Build a new instance.
+ *
+ * @param method the method
+ * @throws NullPointerException if the method is null
+ */
+ public ManagedMethodMetaData(Method method) throws NullPointerException
+ {
+ if (method == null)
+ {
+ throw new NullPointerException();
+ }
+
+ //
+ this.method = method;
+ this.parameters = new HashMap<Integer, ManagedMethodParameterMetaData>();
+ }
+
+ public Method getMethod()
+ {
+ return method;
+ }
+
+ public void addParameter(ManagedMethodParameterMetaData parameter)
+ {
+ if (parameter == null)
+ {
+ throw new NullPointerException("No null parameter accepted");
+ }
+ parameters.put(parameter.getIndex(), parameter);
+ }
+
+ public Collection<ManagedMethodParameterMetaData> getParameters()
+ {
+ return Collections.unmodifiableCollection(parameters.values());
+ }
+}
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodParameterMetaData.java (from rev 1204, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedMethodParameterMetaData.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodParameterMetaData.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedMethodParameterMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.management.spi;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class ManagedMethodParameterMetaData extends ManagedParameterMetaData
+{
+
+ /** . */
+ private final int index;
+
+ /**
+ * Build a managed method parameter meta data.
+ *
+ * @param index the parameter index
+ * @throws IllegalArgumentException if the index is negative
+ */
+ public ManagedMethodParameterMetaData(int index) throws IllegalArgumentException
+ {
+ if (index < 0)
+ {
+ throw new IllegalArgumentException("Non negative index value accepted " + index);
+ }
+ this.index = index;
+ }
+
+ public int getIndex()
+ {
+ return index;
+ }
+}
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedParameterMetaData.java (from rev 1204, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedParameterMetaData.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedParameterMetaData.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedParameterMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.management.spi;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class ManagedParameterMetaData extends ManagedMetaData
+{
+
+ /** . */
+ private String name;
+
+ public ManagedParameterMetaData()
+ {
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+}
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedPropertyMetaData.java (from rev 1204, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedPropertyMetaData.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedPropertyMetaData.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedPropertyMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.management.spi;
+
+import java.lang.reflect.Method;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class ManagedPropertyMetaData extends ManagedMetaData
+{
+
+ /** . */
+ private final String name;
+
+ /** . */
+ private final Method getter;
+
+ /** . */
+ private final String getterDescription;
+
+ /** . */
+ private final Method setter;
+
+ /** . */
+ private final String setterDescription;
+
+ /** . */
+ private final ManagedParameterMetaData setterParameter;
+
+ public ManagedPropertyMetaData(String name, Method getter, String getterDescription, Method setter,
+ String setterDescription, ManagedParameterMetaData setterParameter) throws NullPointerException,
+ IllegalArgumentException
+ {
+ if (name == null)
+ {
+ throw new NullPointerException("No null name accepted");
+ }
+ if (setter != null)
+ {
+ if (setterParameter == null)
+ {
+ throw new IllegalArgumentException("No setter parameter provided");
+ }
+ }
+ else
+ {
+ if (setterParameter != null)
+ {
+ throw new IllegalArgumentException("No setter provided but a setter parameter was provided");
+ }
+ }
+
+ //
+ this.name = name;
+ this.getter = getter;
+ this.getterDescription = getterDescription;
+ this.setter = setter;
+ this.setterDescription = setterDescription;
+ this.setterParameter = setterParameter;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public Method getGetter()
+ {
+ return getter;
+ }
+
+ public Method getSetter()
+ {
+ return setter;
+ }
+
+ public String getGetterDescription()
+ {
+ return getterDescription;
+ }
+
+ public String getSetterDescription()
+ {
+ return setterDescription;
+ }
+
+ public ManagedParameterMetaData getSetterParameter()
+ {
+ return setterParameter;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "ManagedPropertyMetaData[" + "name=" + name + "getter=" + getter.getName() + "setter=" + setter.getName()
+ + "]";
+ }
+}
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedTypeMetaData.java (from rev 1204, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManagedTypeMetaData.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedTypeMetaData.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagedTypeMetaData.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.management.spi;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class ManagedTypeMetaData extends ManagedMetaData
+{
+
+ /** . */
+ private final Class type;
+
+ /** . */
+ private final Map<String, ManagedPropertyMetaData> properties;
+
+ /** . */
+ private final Map<MethodKey, ManagedMethodMetaData> methods;
+
+ public ManagedTypeMetaData(Class type) throws NullPointerException
+ {
+ if (type == null)
+ {
+ throw new NullPointerException();
+ }
+
+ //
+ this.type = type;
+ this.properties = new HashMap<String, ManagedPropertyMetaData>();
+ this.methods = new HashMap<MethodKey, ManagedMethodMetaData>();
+ }
+
+ public Class getType()
+ {
+ return type;
+ }
+
+ public ManagedPropertyMetaData getProperty(String propertyName)
+ {
+ return properties.get(propertyName);
+ }
+
+ public void addProperty(ManagedPropertyMetaData property)
+ {
+ properties.put(property.getName(), property);
+ }
+
+ public void addMethod(ManagedMethodMetaData method)
+ {
+ methods.put(new MethodKey(method.getMethod()), method);
+ }
+
+ public Collection<ManagedMethodMetaData> getMethods()
+ {
+ return methods.values();
+ }
+
+ public Collection<ManagedPropertyMetaData> getProperties()
+ {
+ return properties.values();
+ }
+
+ private static class MethodKey
+ {
+
+ private final String name;
+
+ private final List<Class<?>> types;
+
+ private MethodKey(Method method)
+ {
+ this.name = method.getName();
+ this.types = Arrays.asList(method.getParameterTypes());
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hashCode = name.hashCode();
+ for (Class<?> type : types)
+ {
+ hashCode = hashCode * 41 + type.hashCode();
+ }
+ return hashCode;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj == this)
+ {
+ return true;
+ }
+ if (obj instanceof MethodKey)
+ {
+ MethodKey that = (MethodKey)obj;
+ return this.name.equals(that.name) && this.types.equals(that.types);
+ }
+ return false;
+ }
+ }
+}
Deleted: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java 2009-12-28 11:48:25 UTC (rev 1207)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2003-2007 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.container.management.spi;
-
-import org.exoplatform.container.jmx.ManagementContextImpl;
-import org.exoplatform.container.management.ManagedTypeMetaData;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public interface ManagementProvider
-{
-
- Object manage(ManagementContextImpl context, Object managedResource, ManagedTypeMetaData metaData);
-
- void unmanage(Object key);
-
-}
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java (from rev 1209, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProvider.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2003-2007 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.management.spi;
+
+import org.exoplatform.management.spi.ManagedTypeMetaData;
+
+/**
+ * This interface is implemented by a management provider such a JMX.
+ *
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public interface ManagementProvider
+{
+
+ /**
+ * Instruct the management provider to manage the provided resource with the specified meta data.
+ *
+ * @param context the context
+ * @param managedResource the managed resource
+ * @param metaData the meta data describing the management interface
+ * @return the key under which the resource is registered
+ */
+ Object manage(ManagementProviderContext context, Object managedResource, ManagedTypeMetaData metaData);
+
+ /**
+ * Instruct the management provider to remove the specifed resource from management.
+ *
+ * @param key the key under which the resource is registered
+ */
+ void unmanage(Object key);
+
+}
Copied: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java (from rev 1209, kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProviderContext.java)
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/spi/ManagementProviderContext.java 2009-12-28 13:03:06 UTC (rev 1210)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2003-2007 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.management.spi;
+
+import org.exoplatform.management.ManagementContext;
+
+import java.util.Map;
+
+/**
+ * The contract between a management provider and the kernel.
+ *
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public interface ManagementProviderContext extends ManagementContext
+{
+
+ /**
+ * Returns the scoping properties of the context;
+ *
+ * @return the scoping properties
+ */
+ Map<String, String> getScopingProperties();
+
+ /**
+ * Before a managed resource is invoked by the management layer.
+ *
+ * @param managedResource the managed resource
+ */
+ void beforeInvoke(Object managedResource);
+
+ /**
+ * After a managed resource is invoked by the management layer.
+ *
+ * @param managedResource the managed resource
+ */
+ void afterInvoke(Object managedResource);
+
+ /**
+ * Callback to obtain a management provider context for the specified managed resource scoped with
+ * the provided properties.
+ *
+ * @param managedResource the managed resource
+ * @param scopingProperties the scoping properties
+ * @return the context
+ */
+ ManagementProviderContext createContext(Object managedResource, Map<String, String> scopingProperties);
+
+}
16 years, 6 months
exo-jcr SVN: r1209 - in kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container: management/spi and 1 other directory.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2009-12-28 07:50:33 -0500 (Mon, 28 Dec 2009)
New Revision: 1209
Added:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProviderContext.java
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java
Log:
EXOJCR-350 : Enable plugability of management layer : more decoupling of the JMX layer
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java 2009-12-28 12:32:22 UTC (rev 1208)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoModelMBean.java 2009-12-28 12:50:33 UTC (rev 1209)
@@ -18,8 +18,7 @@
*/
package org.exoplatform.container.jmx;
-import org.exoplatform.container.ExoContainer;
-import org.exoplatform.container.component.RequestLifeCycle;
+import org.exoplatform.container.management.spi.ManagementProviderContext;
import org.exoplatform.management.ManagementAware;
import org.exoplatform.management.ManagementContext;
import org.exoplatform.management.jmx.annotations.NamingContext;
@@ -52,12 +51,12 @@
private Object mr;
/** . */
- private ManagementContextImpl parentContext;
+ private ManagementProviderContext parentContext;
/** . */
- private ManagementContextImpl context;
+ private ManagementProviderContext context;
- public ExoModelMBean(ManagementContextImpl parentContext, Object mr, ModelMBeanInfo mbi) throws MBeanException,
+ public ExoModelMBean(ManagementProviderContext parentContext, Object mr, ModelMBeanInfo mbi) throws MBeanException,
RuntimeOperationsException, InstanceNotFoundException, InvalidTargetObjectTypeException
{
super(mbi);
@@ -73,22 +72,14 @@
@Override
public Object invoke(String opName, Object[] opArgs, String[] sig) throws MBeanException, ReflectionException
{
- final ExoContainer container = context.findContainer();
- if (container != null)
+ context.beforeInvoke(mr);
+ try
{
- RequestLifeCycle.begin(container);
- try
- {
- return super.invoke(opName, opArgs, sig);
- }
- finally
- {
- RequestLifeCycle.end();
- }
+ return super.invoke(opName, opArgs, sig);
}
- else
+ finally
{
- return super.invoke(opName, opArgs, sig);
+ context.afterInvoke(mr);
}
}
@@ -119,19 +110,9 @@
Map<String, String> scopingProperties = info != null ? info.resolve(mr) : Collections.<String, String>emptyMap();
//
- if (mr instanceof ManageableContainer)
- {
- context = ((ManageableContainer)mr).managementContext;
- }
- else
- {
- context = new ManagementContextImpl(parentContext);
- }
+ context = parentContext.createContext(mr, scopingProperties);
//
- context.scopingProperties = scopingProperties;
-
- //
if (mr instanceof ManagementAware)
{
((ManagementAware)mr).setContext(this);
@@ -176,17 +157,11 @@
//
-
public ManagementContext getManagementContext()
{
return context;
}
- public Object getManagedResource()
- {
- return mr;
- }
-
//
public void register(Object o) throws IllegalArgumentException, NullPointerException
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java 2009-12-28 12:32:22 UTC (rev 1208)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java 2009-12-28 12:50:33 UTC (rev 1209)
@@ -18,6 +18,7 @@
import org.exoplatform.container.management.ManagedTypeMetaData;
import org.exoplatform.container.management.spi.ManagementProvider;
+import org.exoplatform.container.management.spi.ManagementProviderContext;
import org.exoplatform.management.jmx.annotations.NameTemplate;
import javax.management.InstanceAlreadyExistsException;
@@ -51,7 +52,7 @@
this.server = server;
}
- public Object manage(ManagementContextImpl context, Object managedResource, ManagedTypeMetaData metaData)
+ public Object manage(ManagementProviderContext context, Object managedResource, ManagedTypeMetaData metaData)
{
ExoModelMBean mbean = null;
try
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 12:32:22 UTC (rev 1208)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 12:50:33 UTC (rev 1209)
@@ -19,8 +19,10 @@
package org.exoplatform.container.jmx;
import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.component.RequestLifeCycle;
import org.exoplatform.container.management.ManagedTypeMetaData;
import org.exoplatform.container.management.MetaDataBuilder;
+import org.exoplatform.container.management.spi.ManagementProviderContext;
import org.exoplatform.management.ManagementContext;
import org.exoplatform.management.annotations.ManagedBy;
@@ -34,7 +36,7 @@
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
*/
-public class ManagementContextImpl implements ManagementContext
+public class ManagementContextImpl implements ManagementContext, ManagementProviderContext
{
/** . */
@@ -91,6 +93,25 @@
return parent;
}
+ public ManagementProviderContext createContext(Object managedResource, Map<String, String> scopingProperties)
+ {
+ ManagementContextImpl context;
+ if (managedResource instanceof ManageableContainer)
+ {
+ context = ((ManageableContainer)managedResource).managementContext;
+ }
+ else
+ {
+ context = new ManagementContextImpl(this);
+ }
+
+ //
+ context.scopingProperties = scopingProperties;
+
+ //
+ return context;
+ }
+
public void register(Object o)
{
Object view = null;
@@ -178,6 +199,20 @@
}
}
+ public void beforeInvoke(Object managedResource)
+ {
+ ExoContainer container = findContainer();
+ if (container != null)
+ {
+ RequestLifeCycle.begin(container);
+ }
+ }
+
+ public void afterInvoke(Object managedResource)
+ {
+ RequestLifeCycle.end();
+ }
+
@Override
public String toString()
{
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java 2009-12-28 12:32:22 UTC (rev 1208)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java 2009-12-28 12:50:33 UTC (rev 1209)
@@ -16,18 +16,32 @@
*/
package org.exoplatform.container.management.spi;
-import org.exoplatform.container.jmx.ManagementContextImpl;
import org.exoplatform.container.management.ManagedTypeMetaData;
/**
+ * This interface is implemented by a management provider such a JMX.
+ *
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
*/
public interface ManagementProvider
{
- Object manage(ManagementContextImpl context, Object managedResource, ManagedTypeMetaData metaData);
+ /**
+ * Instruct the management provider to manage the provided resource with the specified meta data.
+ *
+ * @param context the context
+ * @param managedResource the managed resource
+ * @param metaData the meta data describing the management interface
+ * @return the key under which the resource is registered
+ */
+ Object manage(ManagementProviderContext context, Object managedResource, ManagedTypeMetaData metaData);
+ /**
+ * Instruct the management provider to remove the specifed resource from management.
+ *
+ * @param key the key under which the resource is registered
+ */
void unmanage(Object key);
}
Added: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProviderContext.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProviderContext.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProviderContext.java 2009-12-28 12:50:33 UTC (rev 1209)
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2003-2007 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.container.management.spi;
+
+import org.exoplatform.management.ManagementContext;
+
+import java.util.Map;
+
+/**
+ * The contract between a management provider and the kernel.
+ *
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public interface ManagementProviderContext extends ManagementContext
+{
+
+ /**
+ * Returns the scoping properties of the context;
+ *
+ * @return the scoping properties
+ */
+ Map<String, String> getScopingProperties();
+
+ /**
+ * Before a managed resource is invoked by the management layer.
+ *
+ * @param managedResource the managed resource
+ */
+ void beforeInvoke(Object managedResource);
+
+ /**
+ * After a managed resource is invoked by the management layer.
+ *
+ * @param managedResource the managed resource
+ */
+ void afterInvoke(Object managedResource);
+
+ /**
+ * Callback to obtain a management provider context for the specified managed resource scoped with
+ * the provided properties.
+ *
+ * @param managedResource the managed resource
+ * @param scopingProperties the scoping properties
+ * @return the context
+ */
+ ManagementProviderContext createContext(Object managedResource, Map<String, String> scopingProperties);
+
+}
16 years, 6 months
exo-jcr SVN: r1208 - jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster.
by do-not-reply@jboss.org
Author: nzamosenchuk
Date: 2009-12-28 07:32:22 -0500 (Mon, 28 Dec 2009)
New Revision: 1208
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml
Log:
EXOJCR-325: added lock-striping=false to indexer config
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml 2009-12-28 11:48:25 UTC (rev 1207)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml 2009-12-28 12:32:22 UTC (rev 1208)
@@ -2,6 +2,8 @@
<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:jboss:jbosscache-core:config:3.1">
+ <locking useLockStriping="false" concurrencyLevel="50000" />
+
<!-- Configure the TransactionManager -->
<transaction
transactionManagerLookupClass="org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup" />
16 years, 6 months
exo-jcr SVN: r1207 - in kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container: jmx and 2 other directories.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2009-12-28 06:48:25 -0500 (Mon, 28 Dec 2009)
New Revision: 1207
Added:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/RootContainer.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
Log:
EXOJCR-350 : Enable plugability of management layer : first pass of decoupling, need more work
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2009-12-28 11:04:11 UTC (rev 1206)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/ExoContainer.java 2009-12-28 11:48:25 UTC (rev 1207)
@@ -22,7 +22,6 @@
import org.exoplatform.container.component.ComponentLifecyclePlugin;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.container.jmx.ManageableContainer;
-import org.exoplatform.container.jmx.ManagementContextImpl;
import org.exoplatform.container.util.ContainerUtil;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.services.log.ExoLogger;
@@ -30,7 +29,6 @@
import org.picocontainer.PicoContainer;
import org.picocontainer.defaults.ComponentAdapterFactory;
-import javax.management.MBeanServer;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Collections;
@@ -86,15 +84,6 @@
public ExoContainer()
{
- super(new ManagementContextImpl());
-
- //
-
- }
-
- public ExoContainer(MBeanServer mbeanServer)
- {
- super(new ManagementContextImpl(mbeanServer));
context = new ExoContainerContext(this);
context.setName(this.getClass().getName());
registerComponentInstance(context);
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/RootContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/RootContainer.java 2009-12-28 11:04:11 UTC (rev 1206)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/RootContainer.java 2009-12-28 11:48:25 UTC (rev 1207)
@@ -35,7 +35,6 @@
import org.picocontainer.ComponentAdapter;
import java.io.File;
-import java.lang.management.ManagementFactory;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
@@ -47,7 +46,6 @@
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.PriorityBlockingQueue;
-import javax.management.MBeanServer;
import javax.servlet.ServletContext;
/**
@@ -59,17 +57,6 @@
public class RootContainer extends ExoContainer
{
- private static MBeanServer findMBeanServer()
- {
- J2EEServerInfo serverenv_ = new J2EEServerInfo();
- MBeanServer server = serverenv_.getMBeanServer();
- if (server == null)
- {
- server = ManagementFactory.getPlatformMBeanServer();
- }
- return server;
- }
-
/** The field is volatile to properly implement the double checked locking pattern. */
private static volatile RootContainer singleton_;
@@ -98,9 +85,6 @@
public RootContainer()
{
- super(findMBeanServer());
-
- //
Set<String> profiles = new HashSet<String>();
// Add the profile defined by the server name
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java 2009-12-28 11:04:11 UTC (rev 1206)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ExoMBeanInfoBuilder.java 2009-12-28 11:48:25 UTC (rev 1207)
@@ -61,7 +61,7 @@
}
}
- private MetaDataBuilder metaDataBuilder;
+ private ManagedTypeMetaData typeMD;
/**
* Create a new builder.
@@ -71,12 +71,12 @@
*/
public ExoMBeanInfoBuilder(Class clazz) throws IllegalArgumentException
{
- this.metaDataBuilder = new MetaDataBuilder(clazz);
+ this.typeMD = new MetaDataBuilder(clazz).build();
}
- public boolean isBuildable()
+ public ExoMBeanInfoBuilder(ManagedTypeMetaData typeMD) throws IllegalArgumentException
{
- return metaDataBuilder.isBuildable();
+ this.typeMD = typeMD;
}
private ModelMBeanOperationInfo buildOperationInfo(Method method, String description, Role role,
@@ -126,9 +126,6 @@
*/
public ModelMBeanInfo build() throws IllegalStateException
{
- ManagedTypeMetaData typeMD = metaDataBuilder.build();
-
- //
String mbeanDescription = "Exo model mbean";
if (typeMD.getDescription() != null)
{
Added: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/JMXManagementProvider.java 2009-12-28 11:48:25 UTC (rev 1207)
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2003-2007 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.container.jmx;
+
+import org.exoplatform.container.management.ManagedTypeMetaData;
+import org.exoplatform.container.management.spi.ManagementProvider;
+import org.exoplatform.management.jmx.annotations.NameTemplate;
+
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.modelmbean.ModelMBeanInfo;
+import java.util.Hashtable;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class JMXManagementProvider implements ManagementProvider
+{
+
+ /** . */
+ private final MBeanServer server;
+
+ public JMXManagementProvider()
+ {
+ this(MBeanServerFactory.createMBeanServer());
+ }
+
+ public JMXManagementProvider(MBeanServer server)
+ {
+ this.server = server;
+ }
+
+ public Object manage(ManagementContextImpl context, Object managedResource, ManagedTypeMetaData metaData)
+ {
+ ExoModelMBean mbean = null;
+ try
+ {
+ ExoMBeanInfoBuilder infoBuilder = new ExoMBeanInfoBuilder(metaData);
+ ModelMBeanInfo info = infoBuilder.build();
+ mbean = new ExoModelMBean(context, managedResource, info);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ //
+ if (mbean != null)
+ {
+ ObjectName on = null;
+ PropertiesInfo oni = PropertiesInfo.resolve(managedResource.getClass(), NameTemplate.class);
+ if (oni != null)
+ {
+ try
+ {
+ Map<String, String> foo = oni.resolve(managedResource);
+ on = JMX.createObjectName("exo", foo);
+ }
+ catch (MalformedObjectNameException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ if (on != null)
+ {
+ // Merge with the container hierarchy context
+ try
+ {
+ Map<String, String> props = new Hashtable<String, String>();
+
+ // Julien : I know it's does not look great but it's necessary
+ // for compiling under Java 5 and Java 6 properly. The methods
+ // ObjectName#getKeyPropertyList() returns an Hashtable with Java 5
+ // and a Hashtable<String, String> with Java 6.
+ for (Object o : on.getKeyPropertyList().entrySet())
+ {
+ Map.Entry entry = (Map.Entry)o;
+ String key = (String)entry.getKey();
+ String value = (String)entry.getValue();
+ props.put(key, value);
+ }
+
+ //
+ Map<String, String> scopingProperties = context.getScopingProperties();
+
+ // Merge with scoping properties
+ props.putAll(scopingProperties);
+
+ //
+ on = JMX.createObjectName(on.getDomain(), props);
+
+ //
+ attemptToRegister(on, mbean);
+
+ //
+ return on;
+ }
+ catch (MalformedObjectNameException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ //
+ return null;
+ }
+
+ private void attemptToRegister(ObjectName name, Object mbean)
+ {
+ synchronized (server)
+ {
+ try
+ {
+ server.registerMBean(mbean, name);
+ }
+ catch (InstanceAlreadyExistsException e)
+ {
+ try
+ {
+
+ server.unregisterMBean(name);
+ server.registerMBean(mbean, name);
+
+ }
+ catch (Exception e1)
+ {
+ throw new RuntimeException("Failed to register MBean '" + name + " due to " + e.getMessage(), e);
+ }
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Failed to register MBean '" + name + " due to " + e.getMessage(), e);
+ }
+ }
+ }
+
+ public void unmanage(Object key)
+ {
+ ObjectName name = (ObjectName)key;
+ try
+ {
+ server.unregisterMBean(name);
+ }
+ catch (InstanceNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ catch (MBeanRegistrationException e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java 2009-12-28 11:04:11 UTC (rev 1206)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManageableContainer.java 2009-12-28 11:48:25 UTC (rev 1207)
@@ -19,6 +19,7 @@
package org.exoplatform.container.jmx;
import org.exoplatform.container.CachingContainer;
+import org.exoplatform.container.monitor.jvm.J2EEServerInfo;
import org.exoplatform.management.ManagementContext;
import org.exoplatform.management.annotations.Managed;
import org.exoplatform.management.annotations.ManagedDescription;
@@ -30,20 +31,12 @@
import org.picocontainer.defaults.ComponentAdapterFactory;
import org.picocontainer.defaults.DuplicateComponentKeyRegistrationException;
+import java.lang.management.ManagementFactory;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
import java.util.Set;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanInfo;
-import javax.management.MBeanOperationInfo;
-import javax.management.MBeanParameterInfo;
import javax.management.MBeanServer;
-import javax.management.ObjectName;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
@@ -52,6 +45,17 @@
public class ManageableContainer extends CachingContainer
{
+ private static MBeanServer findMBeanServer()
+ {
+ J2EEServerInfo serverenv_ = new J2EEServerInfo();
+ MBeanServer server = serverenv_.getMBeanServer();
+ if (server == null)
+ {
+ server = ManagementFactory.getPlatformMBeanServer();
+ }
+ return server;
+ }
+
/** . */
private static final ThreadLocal<ManageableComponentAdapterFactory> hack =
new ThreadLocal<ManageableComponentAdapterFactory>();
@@ -59,30 +63,54 @@
/** . */
protected ManagementContextImpl managementContext;
- public ManageableContainer(ManagementContextImpl managementContext)
+ /** . */
+ protected MBeanServer server;
+
+ public ManageableContainer()
{
- super(getComponentAdapterFactory(new MX4JComponentAdapterFactory()));
- this.managementContext = managementContext;
- managementContext.container = this;
- init(null);
+ this((PicoContainer)null);
}
public ManageableContainer(PicoContainer parent)
{
- super(getComponentAdapterFactory(new MX4JComponentAdapterFactory()), parent);
- init(parent);
+ this(new MX4JComponentAdapterFactory(), parent);
}
public ManageableContainer(ComponentAdapterFactory componentAdapterFactory, PicoContainer parent)
{
super(getComponentAdapterFactory(componentAdapterFactory), parent);
- init(parent);
+
+ // Yeah this is not pretty but a necessary evil to make it work
+ ManageableComponentAdapterFactory factory = hack.get();
+ factory.container = this;
+ hack.set(null);
+
+ // Reference the same mbean server that the parent has
+ if (parent instanceof ManageableContainer)
+ {
+ ManageableContainer manageableParent = (ManageableContainer)parent;
+
+ //
+ ManagementContextImpl parentManagementContext = manageableParent.managementContext;
+ if (parentManagementContext != null)
+ {
+ managementContext = new ManagementContextImpl(parentManagementContext);
+ }
+
+ // Get server from parent
+ server = manageableParent.server;
+ } else {
+ server = findMBeanServer();
+ managementContext = new ManagementContextImpl(new JMXManagementProvider(server));
+ }
+
+ //
+ this.managementContext.container = this;
}
public ManageableContainer(ComponentAdapterFactory componentAdapterFactory)
{
- super(getComponentAdapterFactory(componentAdapterFactory));
- init(null);
+ this(componentAdapterFactory, null);
}
@Managed
@@ -109,25 +137,6 @@
return factory;
}
- private void init(PicoContainer parent)
- {
- // Yeah this is not pretty but a necessary evil to make it work
- ManageableComponentAdapterFactory factory = hack.get();
- factory.container = this;
- hack.set(null);
-
- // Reference the same mbean server that the parent has
- if (parent instanceof ManageableContainer)
- {
- ManagementContextImpl parentManagementContext = ((ManageableContainer)parent).managementContext;
- if (parentManagementContext != null)
- {
- managementContext = new ManagementContextImpl(parentManagementContext);
- managementContext.container = this;
- }
- }
- }
-
public ManagementContext getManagementContext()
{
return managementContext;
@@ -135,7 +144,7 @@
public final MBeanServer getMBeanServer()
{
- return managementContext != null ? managementContext.server : null;
+ return server;
}
@Override
@@ -155,49 +164,4 @@
}
return adapter;
}
-
- //
-
- public void printMBeanServer()
- {
- MBeanServer server = getMBeanServer();
- final Set names = server.queryNames(null, null);
- for (final Iterator i = names.iterator(); i.hasNext();)
- {
- ObjectName name = (ObjectName)i.next();
- try
- {
- MBeanInfo info = server.getMBeanInfo(name);
- MBeanAttributeInfo[] attrs = info.getAttributes();
- if (attrs == null)
- continue;
- for (int j = 0; j < attrs.length; j++)
- {
- if (attrs[j].isReadable())
- {
- try
- {
- Object o = server.getAttribute(name, attrs[j].getName());
- }
- catch (Exception x)
- {
- x.printStackTrace();
- }
- }
- }
- MBeanOperationInfo[] methods = info.getOperations();
- for (int j = 0; j < methods.length; j++)
- {
- MBeanParameterInfo[] params = methods[j].getSignature();
- for (int k = 0; k < params.length; k++)
- {
- }
- }
- }
- catch (Exception x)
- {
- // x.printStackTrace(System. err);
- }
- }
- }
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 11:04:11 UTC (rev 1206)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/jmx/ManagementContextImpl.java 2009-12-28 11:48:25 UTC (rev 1207)
@@ -19,26 +19,17 @@
package org.exoplatform.container.jmx;
import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.management.ManagedTypeMetaData;
+import org.exoplatform.container.management.MetaDataBuilder;
import org.exoplatform.management.ManagementContext;
import org.exoplatform.management.annotations.ManagedBy;
-import org.exoplatform.management.jmx.annotations.NameTemplate;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Hashtable;
import java.util.Map;
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBeanInfo;
-
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
@@ -50,29 +41,29 @@
Map<String, String> scopingProperties;
/** The registrations done by this mbean. */
- private final Map<Object, ObjectName> registrations;
+ private final Map<Object, Object> registrations;
/** . */
private final ManagementContextImpl parent;
/** . */
- final MBeanServer server;
+ final JMXManagementProvider provider;
/** An optional container setup when the management context is attached to a container. */
ManageableContainer container;
public ManagementContextImpl()
{
- this(MBeanServerFactory.createMBeanServer());
+ this(new JMXManagementProvider());
}
- public ManagementContextImpl(MBeanServer server)
+ public ManagementContextImpl(JMXManagementProvider provider)
{
- if (server == null)
+ if (provider == null)
{
throw new NullPointerException();
}
- this.registrations = new HashMap<Object, ObjectName>();
+ this.registrations = new HashMap<Object, Object>();
this.parent = null;
// This is the root container that never have scoping properties
@@ -80,7 +71,7 @@
// as the scoping properties would not exist since the root container would not be yet
this.scopingProperties = Collections.emptyMap();
- this.server = server;
+ this.provider = provider;
}
public ManagementContextImpl(ManagementContextImpl parent)
@@ -89,10 +80,10 @@
{
throw new NullPointerException();
}
- this.registrations = new HashMap<Object, ObjectName>();
+ this.registrations = new HashMap<Object, Object>();
this.parent = parent;
this.scopingProperties = null;
- this.server = parent.server;
+ this.provider = parent.provider;
}
public ManagementContext getParent()
@@ -102,35 +93,17 @@
public void register(Object o)
{
- ObjectName name = manageMBean(o);
- if (name != null)
- {
- registrations.put(o, name);
- }
- }
-
- public void unregister(Object o)
- {
- ObjectName name = registrations.remove(o);
- if (name != null)
- {
- unmanageMBean(name);
- }
- }
-
- private ExoModelMBean createExoMBean(Object bean)
- {
Object view = null;
// Apply managed by annotation
- ManagedBy managedBy = bean.getClass().getAnnotation(ManagedBy.class);
+ ManagedBy managedBy = o.getClass().getAnnotation(ManagedBy.class);
if (managedBy != null)
{
try
{
Class managedByClass = managedBy.value();
- Constructor<?> blah = managedByClass.getConstructor(bean.getClass());
- view = blah.newInstance(bean);
+ Constructor<?> blah = managedByClass.getConstructor(o.getClass());
+ view = blah.newInstance(o);
}
catch (NoSuchMethodException e)
{
@@ -151,140 +124,43 @@
}
else
{
- view = bean;
+ view = o;
}
//
- if (view != null)
- {
- ExoMBeanInfoBuilder infoBuilder = new ExoMBeanInfoBuilder(view.getClass());
- if (infoBuilder.isBuildable())
- {
- try
- {
- ModelMBeanInfo info = infoBuilder.build();
- return new ExoModelMBean(this, view, info);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }
+ if (view != null) {
- //
- return null;
- }
-
- public ObjectName manageMBean(Object bean)
- {
-
- //
- ExoModelMBean mbean = createExoMBean(bean);
-
- //
- if (mbean != null)
- {
- Object mr = mbean.getManagedResource();
- ObjectName on = null;
- PropertiesInfo oni = PropertiesInfo.resolve(mr.getClass(), NameTemplate.class);
- if (oni != null)
- {
- try
+ MetaDataBuilder builder = new MetaDataBuilder(view.getClass());
+ if (builder.isBuildable()) {
+ ManagedTypeMetaData metaData = builder.build();
+ Object name = provider.manage(this, view, metaData);
+ if (name != null)
{
- Map<String, String> foo = oni.resolve(mr);
- on = JMX.createObjectName("exo", foo);
+ registrations.put(o, name);
}
- catch (MalformedObjectNameException e)
- {
- e.printStackTrace();
- }
}
-
- //
- if (on != null)
- {
- // Merge with the container hierarchy context
- try
- {
- Map<String, String> props = new Hashtable<String, String>();
-
- // Julien : I know it's does not look great but it's necessary
- // for compiling under Java 5 and Java 6 properly. The methods
- // ObjectName#getKeyPropertyList() returns an Hashtable with Java 5
- // and a Hashtable<String, String> with Java 6.
- for (Object o : on.getKeyPropertyList().entrySet())
- {
- Map.Entry entry = (Map.Entry)o;
- String key = (String)entry.getKey();
- String value = (String)entry.getValue();
- props.put(key, value);
- }
- for (ManagementContextImpl current = this; current != null; current = current.parent)
- {
- if (current.scopingProperties != null)
- {
- props.putAll(current.scopingProperties);
- }
- }
- on = JMX.createObjectName(on.getDomain(), props);
- attemptToRegister(on, mbean);
- return on;
- }
- catch (MalformedObjectNameException e)
- {
- e.printStackTrace();
- }
- }
}
-
- //
- return null;
}
- public void unmanageMBean(ObjectName name)
+ public void unregister(Object o)
{
- try
+ Object name = registrations.remove(o);
+ if (name != null)
{
- server.unregisterMBean(name);
+ provider.unmanage(name);
}
- catch (InstanceNotFoundException e)
- {
- e.printStackTrace();
- }
- catch (MBeanRegistrationException e)
- {
- e.printStackTrace();
- }
}
- synchronized void attemptToRegister(ObjectName name, Object mbean)
- {
- synchronized (server)
+ public Map<String, String> getScopingProperties() {
+ Map<String, String> props = new HashMap<String, String>();
+ for (ManagementContextImpl current = this; current != null; current = current.parent)
{
- try
+ if (current.scopingProperties != null)
{
- server.registerMBean(mbean, name);
+ props.putAll(current.scopingProperties);
}
- catch (InstanceAlreadyExistsException e)
- {
- try
- {
-
- server.unregisterMBean(name);
- server.registerMBean(mbean, name);
-
- }
- catch (Exception e1)
- {
- throw new RuntimeException("Failed to register MBean '" + name + " due to " + e.getMessage(), e);
- }
- }
- catch (Exception e)
- {
- throw new RuntimeException("Failed to register MBean '" + name + " due to " + e.getMessage(), e);
- }
}
+ return props;
}
public ExoContainer findContainer()
Added: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java (rev 0)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/spi/ManagementProvider.java 2009-12-28 11:48:25 UTC (rev 1207)
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2003-2007 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.container.management.spi;
+
+import org.exoplatform.container.jmx.ManagementContextImpl;
+import org.exoplatform.container.management.ManagedTypeMetaData;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public interface ManagementProvider
+{
+
+ Object manage(ManagementContextImpl context, Object managedResource, ManagedTypeMetaData metaData);
+
+ void unmanage(Object key);
+
+}
16 years, 6 months
exo-jcr SVN: r1206 - in jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow: session and 1 other directory.
by do-not-reply@jboss.org
Author: tolusha
Date: 2009-12-28 06:04:11 -0500 (Mon, 28 Dec 2009)
New Revision: 1206
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LocalWorkspaceDataManagerStub.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
Log:
EXOJCR-273: return unmodifiableList lists from persisted layer
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LocalWorkspaceDataManagerStub.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LocalWorkspaceDataManagerStub.java 2009-12-28 09:25:48 UTC (rev 1205)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LocalWorkspaceDataManagerStub.java 2009-12-28 11:04:11 UTC (rev 1206)
@@ -19,6 +19,7 @@
package org.exoplatform.services.jcr.impl.dataflow.persistent;
import org.exoplatform.services.jcr.datamodel.NodeData;
+import org.exoplatform.services.jcr.datamodel.PropertyData;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -52,5 +53,32 @@
{
return Collections.unmodifiableList(super.getChildNodesData(nodeData));
}
-
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<PropertyData> getChildPropertiesData(NodeData parent) throws RepositoryException
+ {
+ return Collections.unmodifiableList(super.getChildPropertiesData(parent));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<PropertyData> listChildPropertiesData(final NodeData parent) throws RepositoryException
+ {
+ return Collections.unmodifiableList(super.listChildPropertiesData(parent));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<PropertyData> getReferencesData(String identifier, boolean skipVersionStorage)
+ throws RepositoryException
+ {
+ return Collections.unmodifiableList(super.getReferencesData(identifier, skipVersionStorage));
+ }
}
Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java 2009-12-28 09:25:48 UTC (rev 1205)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/LocalWorkspaceStorageDataManagerProxy.java 2009-12-28 11:04:11 UTC (rev 1206)
@@ -222,7 +222,7 @@
private List<NodeData> copyNodes(final List<NodeData> childNodes) throws RepositoryException
{
final List<NodeData> copyOfChildsNodes = new LinkedList<NodeData>();
- synchronized (childNodes)
+ synchronized (childNodes) // TODO EXOJCR-273
{
for (NodeData nodeData : childNodes)
{
@@ -235,7 +235,7 @@
private List<PropertyData> copyProperties(final List<PropertyData> traverseProperties) throws RepositoryException
{
final List<PropertyData> copyOfChildsProperties = new LinkedList<PropertyData>();
- synchronized (traverseProperties)
+ synchronized (traverseProperties) // TODO EXOJCR-273
{
for (PropertyData nodeProperty : traverseProperties)
{
@@ -249,7 +249,7 @@
throws RepositoryException
{
final List<PropertyData> copyOfChildsProperties = new LinkedList<PropertyData>();
- synchronized (traverseProperties)
+ synchronized (traverseProperties) // TODO EXOJCR-273
{
for (PropertyData nodeProperty : traverseProperties)
{
16 years, 6 months
exo-jcr SVN: r1205 - kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2009-12-28 04:25:48 -0500 (Mon, 28 Dec 2009)
New Revision: 1205
Modified:
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java
Log:
EXOJCR-349 : Perform XSD configuration validation only in development mode
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java 2009-12-28 09:14:20 UTC (rev 1204)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java 2009-12-28 09:25:48 UTC (rev 1205)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.container.configuration;
+import org.exoplatform.commons.utils.PropertyManager;
import org.exoplatform.container.xml.Configuration;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -172,10 +173,13 @@
public Configuration unmarshall(URL url) throws Exception
{
- boolean valid = isValid(url);
- if (!valid)
+ if (PropertyManager.isDevelopping())
{
- log.info("The configuration file " + url + " was not found valid according to its XSD");
+ boolean valid = isValid(url);
+ if (!valid)
+ {
+ log.info("The configuration file " + url + " was not found valid according to its XSD");
+ }
}
//
16 years, 6 months
exo-jcr SVN: r1204 - jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster.
by do-not-reply@jboss.org
Author: nzamosenchuk
Date: 2009-12-28 04:14:20 -0500 (Mon, 28 Dec 2009)
New Revision: 1204
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/readme.txt
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws1.xml
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws2.xml
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws3.xml
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck.xml
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck1.xml
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck2.xml
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml
Log:
EXOJCR-325: Clustering config fixed: changed ports for each ws to avoid JGroups warning of message discarding.
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/readme.txt
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/readme.txt 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/readme.txt 2009-12-28 09:14:20 UTC (rev 1204)
@@ -16,9 +16,6 @@
Please configure index-dir of query handler to the same (*shared?) folder for
each cluster node (i.e. "/tmp/jcr-clustering/index/db1/ws" or "/mnt/server-nfs/index/db1/ws").
<property name="index-dir" value="target/temp/index/db1/ws" />
-
-** TODO **
-Re-configure jGroups ports, to avoid warnings of message discarding.
Appendix A: DB script
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws1.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws1.xml 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws1.xml 2009-12-28 09:14:20 UTC (rev 1204)
@@ -37,7 +37,7 @@
<PING num_initial_members="3" timeout="2000" /
-->
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true"
+ <TCP bind_addr="127.0.0.1" start_port="9810" loopback="true"
recv_buf_size="20000000" send_buf_size="640000"
discard_incompatible_packets="true" max_bundle_size="64000"
max_bundle_timeout="30" use_incoming_packet_handler="true"
@@ -52,7 +52,7 @@
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34521"
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34522"
bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws2.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws2.xml 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws2.xml 2009-12-28 09:14:20 UTC (rev 1204)
@@ -37,7 +37,7 @@
<PING num_initial_members="3" timeout="2000" /
-->
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true"
+ <TCP bind_addr="127.0.0.1" start_port="9820" loopback="true"
recv_buf_size="20000000" send_buf_size="640000"
discard_incompatible_packets="true" max_bundle_size="64000"
max_bundle_timeout="30" use_incoming_packet_handler="true"
@@ -52,7 +52,7 @@
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34521"
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34523"
bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws3.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws3.xml 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-ws3.xml 2009-12-28 09:14:20 UTC (rev 1204)
@@ -37,7 +37,7 @@
<PING num_initial_members="3" timeout="2000" /
-->
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true"
+ <TCP bind_addr="127.0.0.1" start_port="9830" loopback="true"
recv_buf_size="20000000" send_buf_size="640000"
discard_incompatible_packets="true" max_bundle_size="64000"
max_bundle_timeout="30" use_incoming_packet_handler="true"
@@ -52,7 +52,7 @@
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34521"
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34524"
bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck.xml 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck.xml 2009-12-28 09:14:20 UTC (rev 1204)
@@ -37,7 +37,7 @@
<PING num_initial_members="3" timeout="2000" /
-->
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true"
+ <TCP bind_addr="127.0.0.1" start_port="9840" loopback="true"
recv_buf_size="20000000" send_buf_size="640000"
discard_incompatible_packets="true" max_bundle_size="64000"
max_bundle_timeout="30" use_incoming_packet_handler="true"
@@ -52,7 +52,7 @@
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34521"
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34525"
bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck1.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck1.xml 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck1.xml 2009-12-28 09:14:20 UTC (rev 1204)
@@ -37,7 +37,7 @@
<PING num_initial_members="3" timeout="2000" /
-->
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true"
+ <TCP bind_addr="127.0.0.1" start_port="9850" loopback="true"
recv_buf_size="20000000" send_buf_size="640000"
discard_incompatible_packets="true" max_bundle_size="64000"
max_bundle_timeout="30" use_incoming_packet_handler="true"
@@ -52,7 +52,7 @@
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34521"
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34526"
bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck2.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck2.xml 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-config-wstck2.xml 2009-12-28 09:14:20 UTC (rev 1204)
@@ -37,7 +37,7 @@
<PING num_initial_members="3" timeout="2000" /
-->
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true"
+ <TCP bind_addr="127.0.0.1" start_port="9860" loopback="true"
recv_buf_size="20000000" send_buf_size="640000"
discard_incompatible_packets="true" max_bundle_size="64000"
max_bundle_timeout="30" use_incoming_packet_handler="true"
@@ -52,7 +52,7 @@
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34521"
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34527"
bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml 2009-12-28 09:09:38 UTC (rev 1203)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml 2009-12-28 09:14:20 UTC (rev 1204)
@@ -30,7 +30,7 @@
<PING num_initial_members="3" timeout="2000" /
-->
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true"
+ <TCP bind_addr="127.0.0.1" start_port="9900" loopback="true"
recv_buf_size="20000000" send_buf_size="640000"
discard_incompatible_packets="true" max_bundle_size="64000"
max_bundle_timeout="30" use_incoming_packet_handler="true"
@@ -45,7 +45,7 @@
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34521"
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34530"
bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
16 years, 6 months