exo-jcr SVN: r4811 - kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-08-30 09:12:37 -0400 (Tue, 30 Aug 2011)
New Revision: 4811
Modified:
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
Log:
EXOJCR-1499: Cleaned code
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-08-30 13:03:17 UTC (rev 4810)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-08-30 13:12:37 UTC (rev 4811)
@@ -373,15 +373,10 @@
String clusterName = cfg.getClusterName();
if (clusterName != null && (clusterName = clusterName.trim()).length() > 0)
{
- cfg.setClusterName(clusterName + "-" + ctx.getName());
+ cfg.setClusterName(clusterName + "-" + ctx.getName() + (!allowShareableCache ? "-" + region : ""));
}
if (!allowShareableCache)
{
- // Rename the cluster name
- if (clusterName != null && clusterName.length() > 0)
- {
- cfg.setClusterName(clusterName + "-" + region);
- }
return cache;
}
ConfigurationKey key;
12 years, 8 months
exo-jcr SVN: r4810 - kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-08-30 09:03:17 -0400 (Tue, 30 Aug 2011)
New Revision: 4810
Modified:
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
Log:
EXOJCR-1499: added a test to check the size of the cluster name
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-08-30 12:58:58 UTC (rev 4809)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-08-30 13:03:17 UTC (rev 4810)
@@ -378,7 +378,7 @@
if (!allowShareableCache)
{
// Rename the cluster name
- if (clusterName != null)
+ if (clusterName != null && clusterName.length() > 0)
{
cfg.setClusterName(clusterName + "-" + region);
}
12 years, 8 months
exo-jcr SVN: r4809 - in kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src: test/java/org/exoplatform/services/cache/impl/jboss and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-08-30 08:58:58 -0400 (Tue, 30 Aug 2011)
New Revision: 4809
Modified:
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java
Log:
EXOJCR-1499: Collision between cache regions on a cluster using several portal containers
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-08-30 12:48:10 UTC (rev 4808)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-08-30 12:58:58 UTC (rev 4809)
@@ -95,6 +95,11 @@
private final boolean allowShareableCache;
/**
+ * The current {@link ExoContainerContext}
+ */
+ private final ExoContainerContext ctx;
+
+ /**
* The mapping between the configuration types and the creators
*/
private final Map<Class<? extends ExoCacheConfig>, ExoCacheCreator> mappingConfigTypeCreators =
@@ -126,14 +131,15 @@
*/
private final ExoCacheCreator defaultCreator = new FIFOExoCacheCreator();
- public ExoCacheFactoryImpl(InitParams params, ConfigurationManager configManager)
+ public ExoCacheFactoryImpl(ExoContainerContext ctx, InitParams params, ConfigurationManager configManager)
{
- this(getValueParam(params, CACHE_CONFIG_TEMPLATE_KEY), configManager, getBooleanParam(params,
+ this(ctx, getValueParam(params, CACHE_CONFIG_TEMPLATE_KEY), configManager, getBooleanParam(params,
ALLOW_SHAREABLE_CACHE, ALLOW_SHAREABLE_CACHE_DEFAULT));
}
- ExoCacheFactoryImpl(String cacheConfigTemplate, ConfigurationManager configManager, boolean allowShareableCache)
+ ExoCacheFactoryImpl(ExoContainerContext ctx, String cacheConfigTemplate, ConfigurationManager configManager, boolean allowShareableCache)
{
+ this.ctx = ctx;
this.configManager = configManager;
this.cacheConfigTemplate = cacheConfigTemplate;
this.allowShareableCache = allowShareableCache;
@@ -363,11 +369,16 @@
}
}
Configuration cfg = cache.getConfiguration();
+ // Rename the cluster name
+ String clusterName = cfg.getClusterName();
+ if (clusterName != null && (clusterName = clusterName.trim()).length() > 0)
+ {
+ cfg.setClusterName(clusterName + "-" + ctx.getName());
+ }
if (!allowShareableCache)
{
// Rename the cluster name
- String clusterName = cfg.getClusterName();
- if (clusterName != null && (clusterName = clusterName.trim()).length() > 0)
+ if (clusterName != null)
{
cfg.setClusterName(clusterName + "-" + region);
}
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java 2011-08-30 12:48:10 UTC (rev 4808)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java 2011-08-30 12:58:58 UTC (rev 4809)
@@ -240,7 +240,7 @@
{
PortalContainer pc = PortalContainer.getInstance();
ExoCacheFactoryImpl factory =
- new ExoCacheFactoryImpl("jar:/conf/portal/cache-configuration-template.xml", (ConfigurationManager)pc
+ new ExoCacheFactoryImpl(pc.getContext(), "jar:/conf/portal/cache-configuration-template.xml", (ConfigurationManager)pc
.getComponentInstanceOfType(ConfigurationManager.class), Boolean.valueOf(
System.getProperty("allow.shareable.cache")).booleanValue());
InitParams params = new InitParams();
12 years, 8 months
exo-jcr SVN: r4808 - kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-08-30 08:48:10 -0400 (Tue, 30 Aug 2011)
New Revision: 4808
Modified:
kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/AbstractExoCache.java
kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java
Log:
EXOJCR-1475: The logger id was out dated
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/AbstractExoCache.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/AbstractExoCache.java 2011-08-30 11:36:06 UTC (rev 4807)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/AbstractExoCache.java 2011-08-30 12:48:10 UTC (rev 4808)
@@ -60,7 +60,7 @@
/**
* Logger.
*/
- private static final Log LOG = ExoLogger.getLogger("exo.kernel.component.ext.cache.impl.infinispan.v4.AbstractExoCache");
+ private static final Log LOG = ExoLogger.getLogger("exo.kernel.component.ext.cache.impl.infinispan.v5.AbstractExoCache");
private final AtomicInteger hits = new AtomicInteger(0);
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java 2011-08-30 11:36:06 UTC (rev 4807)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java 2011-08-30 12:48:10 UTC (rev 4808)
@@ -65,7 +65,7 @@
* The logger
*/
private static final Log LOG =
- ExoLogger.getLogger("exo.kernel.component.ext.cache.impl.infinispan.v4.ExoCacheFactoryImpl");
+ ExoLogger.getLogger("exo.kernel.component.ext.cache.impl.infinispan.v5.ExoCacheFactoryImpl");
/**
* The initial parameter key that defines the full path of the configuration template
12 years, 8 months
exo-jcr SVN: r4807 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: core/version and 1 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-08-30 07:36:06 -0400 (Tue, 30 Aug 2011)
New Revision: 4807
Removed:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java
Log:
EXOJCR-923: DefaultItemDataCopyVisitory refactoring
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/WorkspaceImpl.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -34,8 +34,8 @@
import org.exoplatform.services.jcr.impl.core.query.QueryManagerImpl;
import org.exoplatform.services.jcr.impl.core.version.VersionImpl;
import org.exoplatform.services.jcr.impl.dataflow.ItemDataCloneVisitor;
+import org.exoplatform.services.jcr.impl.dataflow.ItemDataCopyVisitor;
import org.exoplatform.services.jcr.impl.dataflow.ItemDataMoveVisitor;
-import org.exoplatform.services.jcr.impl.dataflow.WorkspaceItemDataCopyVisitor;
import org.exoplatform.services.jcr.impl.dataflow.session.SessionChangesLog;
import org.exoplatform.services.jcr.impl.dataflow.session.TransactionableDataManager;
import org.exoplatform.services.jcr.impl.dataflow.version.VersionHistoryDataHelper;
@@ -208,8 +208,8 @@
}
}
- WorkspaceItemDataCopyVisitor initializer =
- new WorkspaceItemDataCopyVisitor((NodeData)destParentNode.getData(), destNodePath.getName().getInternalName(),
+ ItemDataCopyVisitor initializer =
+ new ItemDataCopyVisitor((NodeData)destParentNode.getData(), destNodePath.getName().getInternalName(),
nodeTypeManager, srcSession.getTransientNodesManager(), session.getTransientNodesManager(), false);
srcNode.getData().accept(initializer);
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataCopyIgnoredVisitor.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -53,7 +53,7 @@
public ItemDataCopyIgnoredVisitor(NodeData context, InternalQName destNodeName, NodeTypeDataManager nodeTypeManager,
SessionDataManager dataManager, SessionChangesLog changes)
{
- super(context, destNodeName, nodeTypeManager, dataManager, true);
+ super(context, destNodeName, nodeTypeManager, dataManager, dataManager, true);
this.restoredChanges = changes;
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataMergeVisitor.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -267,7 +267,7 @@
ItemDataCopyVisitor copier =
new ItemDataCopyVisitor(context.getParent(), corrNode.getQPath().getName(), mergeSession
- .getWorkspace().getNodeTypesHolder(), mergeDataManager, true);
+ .getWorkspace().getNodeTypesHolder(), mergeDataManager, mergeDataManager, true);
corrNode.accept(copier);
changes.addAll(copier.getItemAddStates());
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/version/ItemDataRestoreVisitor.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -815,9 +815,9 @@
if (existed != null)
{
// copy existed - i.e. left unchanged
- ItemDataCopyVisitor copyVisitor = new ItemDataCopyVisitor(currentNode(), frozen.getQPath().getName(),
- // node,
- nodeTypeDataManager, userSession.getTransientNodesManager(), true);
+ ItemDataCopyVisitor copyVisitor =
+ new ItemDataCopyVisitor(currentNode(), frozen.getQPath().getName(), nodeTypeDataManager,
+ userSession.getTransientNodesManager(), userSession.getTransientNodesManager(), true);
existed.accept(copyVisitor);
changes.addAll(copyVisitor.getItemAddStates());
} // else - nothing to do, i.e. left unchanged
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/DefaultItemDataCopyVisitor.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -50,6 +50,11 @@
{
/**
+ * Destination data manager.
+ */
+ protected SessionDataManager dstDataManager;
+
+ /**
* Destination node name
*/
protected InternalQName destNodeName;
@@ -86,17 +91,18 @@
* - Destination node name
* @param nodeTypeManager
* - The NodeTypeManager
- * @param dataManager
+ * @param srcDataManager
* - Source data manager
* @param keepIdentifiers
* - Is it necessity to keep <code>Identifier</code>
*/
public DefaultItemDataCopyVisitor(NodeData parent, InternalQName destNodeName, NodeTypeDataManager nodeTypeManager,
- SessionDataManager dataManager, boolean keepIdentifiers)
+ SessionDataManager srcDataManager, SessionDataManager dstDataManager, boolean keepIdentifiers)
{
- super(dataManager);
+ super(srcDataManager);
+ this.dstDataManager = dstDataManager;
this.keepIdentifiers = keepIdentifiers;
this.ntManager = nodeTypeManager;
this.destNodeName = destNodeName;
@@ -264,7 +270,7 @@
protected int calculateNewNodeOrderNumber() throws RepositoryException
{
- return dataManager.getLastOrderNumber(curParent()) + 1;
+ return dstDataManager.getLastOrderNumber(curParent()) + 1;
}
protected QPath calculateNewNodePath(NodeData node, int level) throws RepositoryException
@@ -273,7 +279,7 @@
InternalQName qname = null;
- List<NodeData> existedChilds = dataManager.getChildNodesData(parent);
+ List<NodeData> existedChilds = dstDataManager.getChildNodesData(parent);
int newIndex = 1;
if (level == 0)
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCloneVisitor.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -54,8 +54,6 @@
*/
protected List<ItemState> itemDeletedExistingStates = new ArrayList<ItemState>();
- protected final SessionDataManager dstDataManager;
-
private boolean removeExisting;
private boolean deletedExistingPropery = false;
@@ -87,9 +85,8 @@
SessionDataManager srcDataManager, SessionDataManager dstDataManager, boolean removeExisting,
SessionChangesLog changes)
{
- super(parent, dstNodeName, nodeTypeManager, srcDataManager, false);
+ super(parent, dstNodeName, nodeTypeManager, srcDataManager, dstDataManager, false);
- this.dstDataManager = dstDataManager;
this.removeExisting = removeExisting;
this.changes = changes;
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/ItemDataCopyVisitor.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -44,9 +44,9 @@
private Log log = ExoLogger.getLogger("exo.jcr.component.core.ItemDataCopyVisitor");
public ItemDataCopyVisitor(NodeData parent, InternalQName destNodeName, NodeTypeDataManager nodeTypeManager,
- SessionDataManager dataManager, boolean keepIdentifiers)
+ SessionDataManager srcDataManager, SessionDataManager dstDataManager, boolean keepIdentifiers)
{
- super(parent, destNodeName, nodeTypeManager, dataManager, keepIdentifiers);
+ super(parent, destNodeName, nodeTypeManager, srcDataManager, dstDataManager, keepIdentifiers);
}
@Override
Deleted: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java 2011-08-30 09:41:24 UTC (rev 4806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/WorkspaceItemDataCopyVisitor.java 2011-08-30 11:36:06 UTC (rev 4807)
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2003-2010 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.services.jcr.impl.dataflow;
-
-import org.exoplatform.services.jcr.core.nodetype.NodeTypeDataManager;
-import org.exoplatform.services.jcr.datamodel.InternalQName;
-import org.exoplatform.services.jcr.datamodel.NodeData;
-import org.exoplatform.services.jcr.datamodel.PropertyData;
-import org.exoplatform.services.jcr.impl.core.SessionDataManager;
-
-import javax.jcr.RepositoryException;
-
-/**
- * This ItemData copy visitor uses two data managers:
- * <UL>
- * <LI>srcDataManager - used for service data that comes from source workspace (visit all items on
- * source workspace);
- * <LI>destDataManager - used for adding data to destination workspace (used to check like
- * DefaultItemDataVisitor.calculateNewNodePath(), etc);
- * </UL>
- *
- * Created by The eXo Platform SAS.
- *
- * <br/>Date:
- *
- * @author <a href="karpenko.sergiy(a)gmail.com">Karpenko Sergiy</a>
- * @version $Id: WorkspaceItemDataCopyVisitor.java 111 2010-26-08 11:11:11Z serg $
- */
-public class WorkspaceItemDataCopyVisitor extends ItemDataCopyVisitor
-{
- private SessionDataManager srcDataManager;
-
- /**
- * Constructor.
- *
- * @param parent - parent node, where copied item tree must be saved;
- * @param destNodeName - copied nodes destination name;
- * @param nodeTypeManager - node type manager;
- * @param srcDataManager - used for service data that comes from source workspace (visit all items
- * on source workspace)
- * @param destDataManager - used for adding data to destination workspace (used to check like
- * DefaultItemDataVisitor.calculateNewNodePath(), etc);
- * @param keepIdentifiers - should we keep items identifiers or not;
- */
- public WorkspaceItemDataCopyVisitor(NodeData parent, InternalQName destNodeName,
- NodeTypeDataManager nodeTypeManager, SessionDataManager srcDataManager, SessionDataManager destDataManager,
- boolean keepIdentifiers)
- {
- super(parent, destNodeName, nodeTypeManager, destDataManager, keepIdentifiers);
- this.srcDataManager = srcDataManager;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void visit(NodeData node) throws RepositoryException
- {
- try
- {
- entering(node, currentLevel);
- if (maxLevel == -1 || currentLevel < maxLevel)
- {
- currentLevel++;
- for (PropertyData data : srcDataManager.getChildPropertiesData(node))
- data.accept(this);
- for (NodeData data : srcDataManager.getChildNodesData(node))
- data.accept(this);
- currentLevel--;
- }
- leaving(node, currentLevel);
- }
- catch (RepositoryException re)
- {
- currentLevel = 0;
- throw re;
- }
-
- }
-}
12 years, 8 months
exo-jcr SVN: r4806 - in jcr/trunk/exo.jcr.component.core/src: test/java/org/exoplatform/services/jcr/api/core/query and 1 other directory.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2011-08-30 05:41:24 -0400 (Tue, 30 Aug 2011)
New Revision: 4806
Added:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java
Log:
EXOJCR-1239: patch from JCR-1571 committed (node index stored in lucene index)
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java 2011-08-30 08:15:45 UTC (rev 4805)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/ChildAxisQuery.java 2011-08-30 09:41:24 UTC (rev 4806)
@@ -538,15 +538,14 @@
{
if (position != LocationStepQueryNode.NONE)
{
- Document node = reader.document(i, FieldSelectors.UUID_AND_PARENT);
+ Document node = reader.document(i, FieldSelectors.UUID_AND_PARENT_AND_INDEX);
String parentId = node.get(FieldNames.PARENT);
String id = node.get(FieldNames.UUID);
try
{
- //NodeState state = (NodeState) itemMgr.getItemState(parentId);
- NodeData state = (NodeData)itemMgr.getItemData(parentId);
if (nameTest == null)
{
+ NodeData state = (NodeData)itemMgr.getItemData(parentId);
// only select this node if it is the child at
// specified position
if (position == LocationStepQueryNode.LAST)
@@ -574,6 +573,7 @@
// specified position
if (position == LocationStepQueryNode.LAST)
{
+ NodeData state = (NodeData)itemMgr.getItemData(parentId);
// only select last
if (state == null)
@@ -591,6 +591,11 @@
}
}
}
+ else if (version.getVersion() >= IndexFormatVersion.V4.getVersion())
+ {
+ if (Integer.valueOf(node.get(FieldNames.INDEX)) != position)
+ return false;
+ }
else
{
NodeData nodeData = (NodeData)itemMgr.getItemData(id);
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java 2011-08-30 08:15:45 UTC (rev 4805)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldNames.java 2011-08-30 09:41:24 UTC (rev 4806)
@@ -64,6 +64,11 @@
public static final String LOCAL_NAME = "_:LOCAL_NAME".intern();
/**
+ * Name of the field that contains the index of the item.
+ */
+ public static final String INDEX = "_:INDEX".intern();
+
+ /**
* Name of the field that contains the namespace URI of the node name. Terms
* are not tokenized.
*/
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java 2011-08-30 08:15:45 UTC (rev 4805)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/FieldSelectors.java 2011-08-30 09:41:24 UTC (rev 4806)
@@ -63,4 +63,25 @@
}
}
};
+
+ public static final FieldSelector UUID_AND_PARENT_AND_INDEX = new FieldSelector() {
+ /**
+ * Accepts {@link FieldNames#UUID}, {@link FieldNames#PARENT}
+ * and {@link FieldNames#INDEX}.
+ *
+ * @param fieldName the field name to check.
+ * @return result.
+ */
+ public FieldSelectorResult accept(String fieldName) {
+ if (FieldNames.UUID == fieldName) {
+ return FieldSelectorResult.LOAD;
+ } else if (FieldNames.PARENT == fieldName) {
+ return FieldSelectorResult.LOAD;
+ } else if (FieldNames.INDEX == fieldName) {
+ return FieldSelectorResult.LOAD;
+ } else {
+ return FieldSelectorResult.NO_LOAD;
+ }
+ }
+ };
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java 2011-08-30 08:15:45 UTC (rev 4805)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/IndexFormatVersion.java 2011-08-30 09:41:24 UTC (rev 4806)
@@ -16,10 +16,10 @@
*/
package org.exoplatform.services.jcr.impl.core.query.lucene;
+import org.apache.lucene.index.IndexReader;
+
import java.util.Collection;
-import org.apache.lucene.index.IndexReader;
-
/**
* This class indicates the lucene index format that is used.
* <ul>
@@ -52,11 +52,16 @@
public static final IndexFormatVersion V2 = new IndexFormatVersion(2);
/**
- * V3 is the index format for Jackrabbit releases >= 1.5
+ * V3 is the index format for Jackrabbit releases 1.5.x
*/
public static final IndexFormatVersion V3 = new IndexFormatVersion(3);
/**
+ * V4 is the index format for Jackrabbit releases >= 1.6
+ */
+ public static final IndexFormatVersion V4 = new IndexFormatVersion(4);
+
+ /**
* The used version of the index format
*/
private final int version;
@@ -104,7 +109,9 @@
public static IndexFormatVersion getVersion(IndexReader indexReader) {
Collection fields = indexReader.getFieldNames(
IndexReader.FieldOption.ALL);
- if (fields.contains(FieldNames.LOCAL_NAME) || indexReader.numDocs() == 0) {
+ if (fields.contains(FieldNames.INDEX) || indexReader.numDocs() == 0) {
+ return IndexFormatVersion.V4;
+ } else if (fields.contains(FieldNames.LOCAL_NAME)) {
return IndexFormatVersion.V3;
} else if (fields.contains(FieldNames.PROPERTIES_SET)) {
return IndexFormatVersion.V2;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java 2011-08-30 08:15:45 UTC (rev 4805)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/NodeIndexer.java 2011-08-30 09:41:24 UTC (rev 4806)
@@ -217,6 +217,12 @@
// unknown uri<->prefix mappings
}
+ if (indexFormatVersion.getVersion() >= IndexFormatVersion.V4.getVersion())
+ {
+ doc.add(new Field(FieldNames.INDEX, Integer.toString(node.getQPath().getIndex()), Field.Store.YES,
+ Field.Index.NOT_ANALYZED_NO_NORMS));
+ }
+
Collection<PropertyData> props = node.getChildPropertiesData();
if (props == null)
{
@@ -334,7 +340,7 @@
if (encProp == null)
{
encProp =
- (PropertyData)stateProvider.getItemData(node, new QPathEntry(Constants.JCR_ENCODING, 0),
+ (PropertyData)stateProvider.getItemData(node, new QPathEntry(Constants.JCR_ENCODING, 0),
ItemType.PROPERTY);
}
Added: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/api/core/query/TestQueryIndexReordering.java 2011-08-30 09:41:24 UTC (rev 4806)
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2003-2011 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.services.jcr.api.core.query;
+
+import org.exoplatform.services.jcr.usecases.BaseUsecasesTest;
+
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.query.Query;
+import javax.jcr.query.QueryManager;
+import javax.jcr.query.QueryResult;
+
+/**
+ * Created by The eXo Platform SAS.
+ *
+ * <br/>Date:
+ *
+ * @author <a href="karpenko.sergiy(a)gmail.com">Karpenko Sergiy</a>
+ * @version $Id: TestIndexReordering.java 111 2008-11-11 11:11:11Z serg $
+ */
+public class TestQueryIndexReordering extends BaseUsecasesTest
+{
+
+ public void testReordering() throws Exception
+ {
+ Node testRoot = this.root.addNode("testSameNameSiblingDelete");
+
+ Node subNode_1 = testRoot.addNode("node", "nt:unstructured"); // 1
+ subNode_1.addMixin("mix:referenceable");
+ subNode_1.setProperty("prop", "data 1");
+ Node subNode_2 = testRoot.addNode("node", "nt:unstructured"); // 2
+ subNode_2.addMixin("mix:referenceable");
+ subNode_2.setProperty("prop", "data 2");
+ Node subNode_3 = testRoot.addNode("node", "nt:unstructured"); // 3
+ subNode_3.addMixin("mix:referenceable");
+ subNode_3.setProperty("prop", "data 3");
+ session.save();
+
+ //check the index
+ String sqlQuery;
+ Query query;
+ QueryResult queryResult;
+ NodeIterator iterator;
+ Node node;
+ QueryManager qm = session.getWorkspace().getQueryManager();
+
+ sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path = '/testSameNameSiblingDelete/node[1]'";
+ query = qm.createQuery(sqlQuery, Query.SQL);
+ queryResult = query.execute();
+ iterator = queryResult.getNodes();
+ assertTrue("Node expected ", iterator.getSize() == 1);
+ node = iterator.nextNode();
+ assertEquals("Wrong id ", subNode_1.getUUID(), node.getUUID());
+ assertEquals("Wrong path ", subNode_1.getPath(), node.getPath());
+
+ sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path = '/testSameNameSiblingDelete/node[2]'";
+ query = qm.createQuery(sqlQuery, Query.SQL);
+ queryResult = query.execute();
+ iterator = queryResult.getNodes();
+ assertTrue("Node expected ", iterator.getSize() == 1);
+ node = iterator.nextNode();
+ assertEquals("Wrong id ", subNode_2.getUUID(), node.getUUID());
+ assertEquals("Wrong path ", subNode_2.getPath(), node.getPath());
+
+ sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path = '/testSameNameSiblingDelete/node[3]'";
+ query = qm.createQuery(sqlQuery, Query.SQL);
+ queryResult = query.execute();
+ iterator = queryResult.getNodes();
+ assertTrue("Node expected ", iterator.getSize() == 1);
+ node = iterator.nextNode();
+ assertEquals("Wrong id ", subNode_3.getUUID(), node.getUUID());
+ assertEquals("Wrong path ", subNode_3.getPath(), node.getPath());
+
+ // usecase - order to the end,
+ // i.e. /testSameNameSiblingDelete/node[2] will be UPDATED to
+ // /testSameNameSiblingDelete/node[1]
+ // i.e. /testSameNameSiblingDelete/node[3] will be UPDATED to
+ // /testSameNameSiblingDelete/node[2]
+ subNode_1.getParent().orderBefore("node", null);
+ session.save();
+
+ sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path = '/testSameNameSiblingDelete/node[1]'";
+ query = qm.createQuery(sqlQuery, Query.SQL);
+ queryResult = query.execute();
+ iterator = queryResult.getNodes();
+ assertTrue("Node expected ", iterator.getSize() == 1);
+ node = iterator.nextNode();
+ assertEquals("Wrong id ", subNode_2.getUUID(), node.getUUID());
+ assertEquals("Wrong path ", subNode_2.getPath(), node.getPath());
+
+ sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path = '/testSameNameSiblingDelete/node[2]'";
+ query = qm.createQuery(sqlQuery, Query.SQL);
+ queryResult = query.execute();
+ iterator = queryResult.getNodes();
+ assertTrue("Node expected ", iterator.getSize() == 1);
+ node = iterator.nextNode();
+ assertEquals("Wrong id ", subNode_3.getUUID(), node.getUUID());
+ assertEquals("Wrong path ", subNode_3.getPath(), node.getPath());
+
+ sqlQuery = "SELECT * FROM nt:unstructured WHERE jcr:path = '/testSameNameSiblingDelete/node[3]'";
+ query = qm.createQuery(sqlQuery, Query.SQL);
+ queryResult = query.execute();
+ iterator = queryResult.getNodes();
+ assertTrue("Node expected ", iterator.getSize() == 1);
+ node = iterator.nextNode();
+ assertEquals("Wrong id ", subNode_1.getUUID(), node.getUUID());
+ assertEquals("Wrong path ", subNode_1.getPath(), node.getPath());
+ }
+
+}
12 years, 8 months
exo-jcr SVN: r4805 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-08-30 04:15:45 -0400 (Tue, 30 Aug 2011)
New Revision: 4805
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLMultiDbJDBCConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLSingleDbJDBCConnection.java
Log:
EXOJCR-1488: optimize query for MySQL
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLMultiDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLMultiDbJDBCConnection.java 2011-08-30 06:17:17 UTC (rev 4804)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLMultiDbJDBCConnection.java 2011-08-30 08:15:45 UTC (rev 4805)
@@ -77,6 +77,13 @@
protected void prepareQueries() throws SQLException
{
super.prepareQueries();
+
+ FIND_NODES_AND_PROPERTIES =
+ "select J.*, P.ID AS P_ID, P.NAME AS P_NAME, P.VERSION AS P_VERSION, P.P_TYPE, P.P_MULTIVALUED,"
+ + " V.DATA, V.ORDER_NUM, V.STORAGE_DESC from JCR_MVALUE V, JCR_MITEM P use index(JCR_IDX_MITEM_PARENT_ID)"
+ + " join (select I.ID, I.PARENT_ID, I.NAME, I.VERSION, I.I_INDEX, I.N_ORDER_NUM from JCR_MITEM I"
+ + " where I.I_CLASS=1 AND I.ID > ? order by I.ID LIMIT ? OFFSET ?) J on P.PARENT_ID = J.ID"
+ + " where P.I_CLASS=2 and V.PROPERTY_ID=P.ID order by J.ID";
}
/**
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLSingleDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLSingleDbJDBCConnection.java 2011-08-30 06:17:17 UTC (rev 4804)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MySQLSingleDbJDBCConnection.java 2011-08-30 08:15:45 UTC (rev 4805)
@@ -77,6 +77,13 @@
protected void prepareQueries() throws SQLException
{
super.prepareQueries();
+
+ FIND_NODES_AND_PROPERTIES =
+ "select J.*, P.ID AS P_ID, P.NAME AS P_NAME, P.VERSION AS P_VERSION, P.P_TYPE, P.P_MULTIVALUED,"
+ + " V.DATA, V.ORDER_NUM, V.STORAGE_DESC from JCR_SVALUE V, JCR_SITEM P use index(JCR_IDX_SITEM_PARENT_ID)"
+ + " join (select I.ID, I.PARENT_ID, I.NAME, I.VERSION, I.I_INDEX, I.N_ORDER_NUM from JCR_SITEM I"
+ + " where I.CONTAINER_NAME=? AND I.I_CLASS=1 AND I.ID > ? order by I.ID LIMIT ? OFFSET ?) J on P.PARENT_ID = J.ID"
+ + " where P.I_CLASS=2 and P.CONTAINER_NAME=? and V.PROPERTY_ID=P.ID order by J.ID";
}
/**
12 years, 8 months
exo-jcr SVN: r4804 - jcr/trunk/exo.jcr.component.core.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-08-30 02:17:17 -0400 (Tue, 30 Aug 2011)
New Revision: 4804
Modified:
jcr/trunk/exo.jcr.component.core/pom.xml
Log:
EXOJCR-1394: Updated versions of JDBC Drivers for MSSQL and DB2 are no accessible on maven repositories
Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml 2011-08-29 06:25:00 UTC (rev 4803)
+++ jcr/trunk/exo.jcr.component.core/pom.xml 2011-08-30 06:17:17 UTC (rev 4804)
@@ -275,13 +275,13 @@
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>db2jcc</artifactId>
- <version>9.1</version>
+ <version>9.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>db2jcc_license_cu</artifactId>
- <version>9.1</version>
+ <version>9.7</version>
<scope>test</scope>
</dependency>
<!-- For MS SQL 7/2000/2005 and Sybase ASE/Anywhere support (jTDS driver) -->
@@ -292,18 +292,12 @@
<scope>test</scope>
</dependency -->
<!-- For MS SQL 2005 support (Microsoft JDBC driver) (local-jcr repository) -->
- <!-- dependency>
- <groupId>com.microsoft.sqlserver</groupId>
- <artifactId>sqljdbc</artifactId>
- <version>9.0</version>
- <scope>test</scope>
- </dependency -->
- <!-- dependency>
+ <dependency>
<groupId>com.microsoft</groupId>
<artifactId>sqljdbc</artifactId>
<version>3.0.1301.101</version>
<scope>test</scope>
- </dependency -->
+ </dependency>
<!-- For Apache Derby support (aka JavaDB) -->
<!-- dependency>
<groupId>org.apache.derby</groupId>
12 years, 8 months
exo-jcr SVN: r4803 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation: db and 1 other directory.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-08-29 02:25:00 -0400 (Mon, 29 Aug 2011)
New Revision: 4803
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/CQJDBCStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
Log:
EXOJCR-1482: Fix sonar violations
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/CQJDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/CQJDBCStorageConnection.java 2011-08-26 13:49:43 UTC (rev 4802)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/CQJDBCStorageConnection.java 2011-08-29 06:25:00 UTC (rev 4803)
@@ -1243,8 +1243,8 @@
protected abstract int deleteValueDataByOrderNum(String id, int orderNum) throws SQLException;
- protected abstract int updateValueData(String cid, int i, InputStream stream, int streamLength, String storageId, boolean lastValue)
- throws SQLException;
+ protected abstract int updateValueData(String cid, int i, InputStream stream, int streamLength, String storageId,
+ boolean lastValue) throws SQLException;
protected abstract int addValueData(String cid, int orderNumber, InputStream stream, int streamLength,
String storageId, boolean lastValue) throws SQLException;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java 2011-08-26 13:49:43 UTC (rev 4802)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java 2011-08-29 06:25:00 UTC (rev 4803)
@@ -674,8 +674,8 @@
* {@inheritDoc}
*/
@Override
- protected int addValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc, boolean lastValue)
- throws SQLException
+ protected int addValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc,
+ boolean lastValue) throws SQLException
{
if (insertValue == null)
@@ -905,8 +905,8 @@
return findPropertyById.executeQuery();
}
- protected int updateValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc, boolean lastValue)
- throws SQLException
+ protected int updateValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc,
+ boolean lastValue) throws SQLException
{
if (updateValue == null)
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java 2011-08-26 13:49:43 UTC (rev 4802)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java 2011-08-29 06:25:00 UTC (rev 4803)
@@ -527,8 +527,8 @@
* {@inheritDoc}
*/
@Override
- protected int addValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc, boolean lastValue)
- throws SQLException
+ protected int addValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc,
+ boolean lastValue) throws SQLException
{
if (insertValue == null)
@@ -844,8 +844,8 @@
}
@Override
- protected int updateValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc, boolean lastValue)
- throws SQLException
+ protected int updateValueData(String cid, int orderNumber, InputStream stream, int streamLength, String storageDesc,
+ boolean lastValue) throws SQLException
{
if (updateValue == null)
12 years, 8 months
exo-jcr SVN: r4802 - in jcr/trunk/exo.jcr.component.core/src: test/java/org/exoplatform/services/jcr/impl/core/query and 1 other directory.
by do-not-reply@jboss.org
Author: nzamosenchuk
Date: 2011-08-26 09:49:43 -0400 (Fri, 26 Aug 2011)
New Revision: 4802
Added:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/query/TestFuzzySearch.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DescendantSelfAxisQuery.java
Log:
EXOJCR-1474 : Test and the fix added.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DescendantSelfAxisQuery.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DescendantSelfAxisQuery.java 2011-08-26 12:07:28 UTC (rev 4801)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/DescendantSelfAxisQuery.java 2011-08-26 13:49:43 UTC (rev 4802)
@@ -454,6 +454,10 @@
{
contextScorer = contextQuery.weight(searcher).scorer(reader, scoreDocsInOrder, topScorer);
subScorer = subQuery.weight(searcher).scorer(reader, scoreDocsInOrder, topScorer);
+ if (subScorer == null)
+ {
+ return null;
+ }
HierarchyResolver resolver = (HierarchyResolver)reader;
return new DescendantSelfAxisScorer(searcher.getSimilarity(), reader, resolver);
}
Added: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/query/TestFuzzySearch.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/query/TestFuzzySearch.java (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/query/TestFuzzySearch.java 2011-08-26 13:49:43 UTC (rev 4802)
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2003-2008 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.services.jcr.impl.core.query;
+
+import org.exoplatform.services.jcr.JcrImplBaseTest;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.query.Query;
+import javax.jcr.query.QueryManager;
+import javax.jcr.query.QueryResult;
+
+/**
+ * Created by The eXo Platform SAS. Originally came from https://issues.jboss.org/browse/EXOJCR-1474
+ *
+ * @author dongpd(a)exoplatform.com
+ * @version $Id: $
+ */
+public class TestFuzzySearch extends JcrImplBaseTest
+{
+ private final Log log = ExoLogger.getLogger("exo.jcr.component.core.TestFuzzySearch");
+
+ public void testFuzzySearch1() throws Exception
+ {
+ try
+ {
+ executeSQL("select * from nt:base where contains(.,'aaaaa~0.8') and jcr:path like '/%'", 1);
+ }
+ catch (Exception e)
+ {
+ log.error(e);
+ fail("Exception thrown.");
+ }
+ }
+
+ public void testFuzzySearch2() throws Exception
+ {
+ try
+ {
+ executeSQL("select * from nt:base where contains(.,'user~0.8') and jcr:path like '/%'", 0);
+ }
+ catch (Exception e)
+ {
+ log.error(e);
+ fail("Exception thrown.");
+ }
+ }
+
+ public void testFuzzySearch3() throws Exception
+ {
+ try
+ {
+ executeSQL("select * from nt:base where contains(.,'pharse~0.8') and jcr:path like '/%'", 0);
+ }
+ catch (Exception e)
+ {
+ log.error(e);
+ fail("Exception thrown.");
+ }
+ }
+
+ public void testFuzzySearch4() throws Exception
+ {
+ try
+ {
+ executeSQL("select * from nt:base where contains(.,'recherce~0.8') and jcr:path like '/%'", 0);
+ }
+ catch (Exception e)
+ {
+ log.error(e);
+ fail("Exception thrown.");
+ }
+ }
+
+ /**
+ * Execute a Jcr SQL and show node names of resultset
+ *
+ * @param param
+ * @throws RepositoryException
+ */
+ private void executeSQL(String sql, int expectedCount) throws RepositoryException
+ {
+ // Build Jcr Query
+ QueryManager qManager = session.getWorkspace().getQueryManager();
+ Query query = qManager.createQuery(sql, Query.SQL);
+
+ // Execute Jcr Query
+ QueryResult result = query.execute();
+ long totalCount = result.getNodes().getSize();
+ assertEquals("Wrong result set size.", expectedCount, totalCount);
+ }
+
+ @Override
+ public void setUp() throws Exception
+ {
+ super.setUp();
+
+ Node testRoot = root.addNode("testRooot");
+ Node testNode1 = testRoot.addNode("testNode1");
+ testNode1.setProperty("field", "aaaaa");
+ Node testNode2 = testRoot.addNode("testNode2");
+ testNode2.setProperty("field", "aaaab");
+ Node testNode3 = testRoot.addNode("testNode3");
+ testNode3.setProperty("field", "aaabb");
+ Node testNode4 = testRoot.addNode("testNode4");
+ testNode4.setProperty("field", "aabbb");
+ Node testNode5 = testRoot.addNode("testNode5");
+ testNode5.setProperty("field", "abbbb");
+ Node testNode6 = testRoot.addNode("testNode6");
+ testNode6.setProperty("field", "bbbbb");
+ Node testNode7 = testRoot.addNode("testNode7");
+ testNode7.setProperty("field", "ddddd");
+ root.save();
+ }
+
+}
\ No newline at end of file
Property changes on: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/query/TestFuzzySearch.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
12 years, 8 months