[exo-jcr-commits] exo-jcr SVN: r4911 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query: ispn and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Sep 14 10:11:25 EDT 2011
Author: nzamosenchuk
Date: 2011-09-14 10:11:24 -0400 (Wed, 14 Sep 2011)
New Revision: 4911
Added:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/LocalIndexMarker.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java
Log:
EXOJCR-1505 : Define index strategy by using an interface marker.
Added: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/LocalIndexMarker.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/LocalIndexMarker.java (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/LocalIndexMarker.java 2011-09-14 14:11:24 UTC (rev 4911)
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2011 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.services.jcr.impl.core.query;
+
+/**
+ * An empty interface notifying that changes filter implements LocalIndex cluster-ready
+ * strategy. This can be used to check if recovery filters should be used.
+ *
+ * @author <a href="mailto:nzamosenchuk at exoplatform.com">Nikolay Zamosenchul</a>
+ * @version $Id: LocalIndexChangesFilterMarker.java 34360 2009-07-22 23:58:59Z nzamosenchuk $
+ */
+public interface LocalIndexMarker
+{
+
+}
Property changes on: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/LocalIndexMarker.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java 2011-09-14 08:29:13 UTC (rev 4910)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java 2011-09-14 14:11:24 UTC (rev 4911)
@@ -756,11 +756,24 @@
// Recovery Filters are
String changesFilterClassName = config.getParameterValue(QueryHandlerParams.PARAM_CHANGES_FILTER_CLASS, null);
+ boolean recoveryFilterUsed = false;
- boolean recoveryFilterUsed =
- (org.exoplatform.services.jcr.impl.core.query.ispn.LocalIndexChangesFilter.class.getName().equals(
- changesFilterClassName) || org.exoplatform.services.jcr.impl.core.query.jbosscache.LocalIndexChangesFilter.class
- .getName().equals(changesFilterClassName)) ? true : false;
+ if (changesFilterClassName != null)
+ {
+ try
+ {
+ Class<?> changesFilterClass = Class.forName(changesFilterClassName);
+ // Set recoveryFilterUsed, if changes filter implements LocalIndex strategy
+ if (changesFilterClass != null)
+ {
+ recoveryFilterUsed = LocalIndexMarker.class.isAssignableFrom(changesFilterClass);
+ }
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new RepositoryConfigurationException(e.getMessage(), e);
+ }
+ }
QueryHandlerContext context =
new QueryHandlerContext(container, itemMgr, indexingTree, nodeTypeDataManager, nsReg, parentHandler,
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java 2011-09-14 08:29:13 UTC (rev 4910)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java 2011-09-14 14:11:24 UTC (rev 4911)
@@ -25,6 +25,7 @@
import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
import org.exoplatform.services.jcr.impl.core.query.IndexingTree;
+import org.exoplatform.services.jcr.impl.core.query.LocalIndexMarker;
import org.exoplatform.services.jcr.impl.core.query.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
import org.exoplatform.services.jcr.infinispan.ISPNCacheFactory;
@@ -52,7 +53,7 @@
* @author <a href="mailto:anatoliy.bazko at gmail.com">Anatoliy Bazko</a>
* @version $Id: LocalIndexChangesFilter.java 34360 2009-07-22 23:58:59Z tolusha $
*/
-public class LocalIndexChangesFilter extends IndexerChangesFilter
+public class LocalIndexChangesFilter extends IndexerChangesFilter implements LocalIndexMarker
{
/**
* Logger instance for this class
@@ -60,7 +61,7 @@
private final Log log = ExoLogger.getLogger("exo.jcr.component.core.LocalIndexChangesFilter");
public static final String PARAM_INFINISPAN_CACHESTORE_CLASS = "infinispan-cachestore-classname";
-
+
private final Cache<Serializable, Object> cache;
private final String wsId;
@@ -99,7 +100,7 @@
handler.init();
}
}
-
+
protected Log getLogger()
{
return log;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java 2011-09-14 08:29:13 UTC (rev 4910)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java 2011-09-14 14:11:24 UTC (rev 4911)
@@ -26,11 +26,12 @@
import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
import org.exoplatform.services.jcr.impl.core.query.IndexingTree;
+import org.exoplatform.services.jcr.impl.core.query.LocalIndexMarker;
import org.exoplatform.services.jcr.impl.core.query.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory;
+import org.exoplatform.services.jcr.jbosscache.PrivilegedJBossCacheHelper;
import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory.CacheType;
-import org.exoplatform.services.jcr.jbosscache.PrivilegedJBossCacheHelper;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -61,7 +62,7 @@
* @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z ksm $
*
*/
-public class LocalIndexChangesFilter extends IndexerChangesFilter
+public class LocalIndexChangesFilter extends IndexerChangesFilter implements LocalIndexMarker
{
/**
* Logger instance for this class
@@ -86,7 +87,7 @@
private final Fqn<String> rootFqn;
private final JmxRegistrationManager jmxManager;
-
+
public static final String LISTWRAPPER = "$lists".intern();
/**
@@ -126,12 +127,14 @@
initCache.getConfiguration().setCacheLoaderConfig(cacheLoaderConfig);
this.rootFqn = Fqn.fromElements(searchManager.getWsId());
this.cache =
- ExoJBossCacheFactory.getUniqueInstance(CacheType.INDEX_CACHE, rootFqn, initCache,
- config.getParameterBoolean(PARAM_JBOSSCACHE_SHAREABLE, PARAM_JBOSSCACHE_SHAREABLE_DEFAULT));
+ ExoJBossCacheFactory.getUniqueInstance(CacheType.INDEX_CACHE, rootFqn, initCache, config.getParameterBoolean(
+ PARAM_JBOSSCACHE_SHAREABLE, PARAM_JBOSSCACHE_SHAREABLE_DEFAULT));
PrivilegedJBossCacheHelper.create(cache);
PrivilegedJBossCacheHelper.start(cache);
- this.jmxManager = ExoJBossCacheFactory.getJmxRegistrationManager(searchManager.getExoContainerContext(), cache, CacheType.INDEX_CACHE);
+ this.jmxManager =
+ ExoJBossCacheFactory.getJmxRegistrationManager(searchManager.getExoContainerContext(), cache,
+ CacheType.INDEX_CACHE);
if (jmxManager != null)
{
SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
@@ -172,7 +175,7 @@
String id = IdGenerator.generate();
cache.put(Fqn.fromRelativeElements(rootFqn, id), LISTWRAPPER, changes);
}
-
+
/**
* @see java.lang.Object#finalize()
*/
@@ -191,11 +194,11 @@
return null;
}
});
- }
+ }
}
finally
{
- super.finalize();
+ super.finalize();
}
- }
+ }
}
More information about the exo-jcr-commits
mailing list