exo-jcr SVN: r4384 - in jcr/trunk/exo.jcr.component.webdav/src: test/java/org/exoplatform/services/jcr/webdav/command and 1 other directory.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-05-17 08:00:47 -0400 (Tue, 17 May 2011)
New Revision: 4384
Modified:
jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java
jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestCopy.java
jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestMove.java
Log:
EXOJCR-1350: Impossible to move files in Webdav when the destination path contains space (Windows)
Modified: jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java 2011-05-17 09:47:29 UTC (rev 4383)
+++ jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java 2011-05-17 12:00:47 UTC (rev 4384)
@@ -74,6 +74,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
@@ -488,8 +489,10 @@
{
String serverURI = uriInfo.getBaseUriBuilder().path(getClass()).path(repoName).build().toString();
- URI dest = new URI(destinationHeader);
- URI base = new URI(serverURI);
+ // destinationHeader could begins from workspace name (passed from cms
+ // WebDAVServiceImpl) and doesn't contain neither host no repository name
+ URI dest = buildURI(destinationHeader);
+ URI base = buildURI(serverURI);
String destPath = dest.getPath();
int repoIndex = destPath.indexOf(repoName);
@@ -499,12 +502,12 @@
// or destination header is malformed
// we return BAD_GATEWAY(502) HTTP status
// more info here http://www.webdav.org/specs/rfc2518.html#METHOD_COPY
- if (!base.getHost().equals(dest.getHost()) || repoIndex == -1)
+ if (dest.getHost() != null && !base.getHost().equals(dest.getHost()))
{
return Response.status(HTTPStatus.BAD_GATEWAY).entity("Bad Gateway").build();
}
- destPath = normalizePath(dest.getPath().substring(repoIndex + repoName.length() + 1));
+ destPath = normalizePath(repoIndex == -1 ? destPath : destPath.substring(repoIndex + repoName.length() + 1));
String srcWorkspace = workspaceName(repoPath);
String srcNodePath = path(repoPath);
@@ -895,9 +898,10 @@
{
String serverURI = uriInfo.getBaseUriBuilder().path(getClass()).path(repoName).build().toString();
- URI dest = new URI(destinationHeader);
- URI base = new URI(serverURI);
-
+ // destinationHeader could begins from workspace name (passed from cms
+ // WebDAVServiceImpl) and doesn't contain neither host no repository name
+ URI dest = buildURI(destinationHeader);
+ URI base = buildURI(serverURI);
String destPath = dest.getPath();
int repoIndex = destPath.indexOf(repoName);
@@ -907,12 +911,12 @@
// or destination header is malformed
// we return BAD_GATEWAY(502) HTTP status
// more info here http://www.webdav.org/specs/rfc2518.html#METHOD_MOVE
- if (!base.getHost().equals(dest.getHost()) || repoIndex == -1)
+ if (dest.getHost() != null && !base.getHost().equals(dest.getHost()))
{
return Response.status(HTTPStatus.BAD_GATEWAY).entity("Bad Gateway").build();
}
- destPath = normalizePath(dest.getPath().substring(repoIndex + repoName.length() + 1));
+ destPath = normalizePath(repoIndex == -1 ? destPath : destPath.substring(repoIndex + repoName.length() + 1));
String destWorkspace = workspaceName(destPath);
String destNodePath = path(destPath);
@@ -1503,4 +1507,18 @@
return lockTokens;
}
+ /**
+ * Build URI from string.
+ */
+ private URI buildURI(String path) throws URISyntaxException
+ {
+ try
+ {
+ return new URI(path);
+ }
+ catch (URISyntaxException e)
+ {
+ return new URI(TextUtil.escape(path, '%', true));
+ }
+ }
}
Modified: jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestCopy.java
===================================================================
--- jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestCopy.java 2011-05-17 09:47:29 UTC (rev 4383)
+++ jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestCopy.java 2011-05-17 12:00:47 UTC (rev 4384)
@@ -225,9 +225,130 @@
ContainerResponse response = service(WebDAVMethods.COPY, getPathWS() + filename, host, headers, null);
// check if operation completed successfully, we expect a new resource to be created
assertEquals(HTTPStatus.CREATED, response.getStatus());
+ }
+ public void testCopyDestinationHeaderBeginsFromWorkspaceName() throws Exception
+ {
+ String content = TestUtils.getFileContent();
+ String filename = TestUtils.getFileName();
+ InputStream inputStream = new ByteArrayInputStream(content.getBytes());
+ TestUtils.addContent(session, filename, inputStream, defaultFileNodeType, "");
+ String destFilename = TestUtils.getFileName();
+
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+ headers.add(ExtHttpHeaders.DESTINATION, WORKSPACE + destFilename);
+
+ ContainerResponse response = service(WebDAVMethods.COPY, getPathWS() + filename, host, headers, null);
+
+ assertEquals(HTTPStatus.CREATED, response.getStatus());
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(destFilename)));
+
+ Node nodeDest = session.getRootNode().getNode(TextUtil.relativizePath(destFilename));
+ assertTrue(nodeDest.hasNode("jcr:content"));
+
+ Node nodeDestContent = nodeDest.getNode("jcr:content");
+ assertTrue(nodeDestContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamDest = (ByteArrayInputStream)nodeDestContent.getProperty("jcr:data").getStream();
+ String getContentDest = TestUtils.stream2string(streamDest, null);
+ assertEquals(content, getContentDest);
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(filename)));
+
+ Node nodeBase = session.getRootNode().getNode(TextUtil.relativizePath(filename));
+ assertTrue(nodeBase.hasNode("jcr:content"));
+
+ Node nodeBaseContent = nodeBase.getNode("jcr:content");
+ assertTrue(nodeBaseContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamBase = (ByteArrayInputStream)nodeBaseContent.getProperty("jcr:data").getStream();
+ String getContentBase = TestUtils.stream2string(streamBase, null);
+ assertEquals(content, getContentBase);
}
+ public void testCopyToFolderWithSpace() throws Exception
+ {
+ String folderNameWithSpace = "new folder - testCopyToFolderWithSpace";
+ session.getRootNode().addNode(folderNameWithSpace, "nt:folder");
+ session.save();
+
+ String content = TestUtils.getFileContent();
+ String filename = TestUtils.getFileName();
+ InputStream inputStream = new ByteArrayInputStream(content.getBytes());
+ TestUtils.addContent(session, filename, inputStream, defaultFileNodeType, "");
+ String destFilename = "/" + folderNameWithSpace + TestUtils.getFileName();
+
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+ headers.add(ExtHttpHeaders.DESTINATION, WORKSPACE + destFilename);
+
+ ContainerResponse response = service(WebDAVMethods.COPY, getPathWS() + filename, host, headers, null);
+
+ assertEquals(HTTPStatus.CREATED, response.getStatus());
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(destFilename)));
+
+ Node nodeDest = session.getRootNode().getNode(TextUtil.relativizePath(destFilename));
+ assertTrue(nodeDest.hasNode("jcr:content"));
+
+ Node nodeDestContent = nodeDest.getNode("jcr:content");
+ assertTrue(nodeDestContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamDest = (ByteArrayInputStream)nodeDestContent.getProperty("jcr:data").getStream();
+ String getContentDest = TestUtils.stream2string(streamDest, null);
+ assertEquals(content, getContentDest);
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(filename)));
+
+ Node nodeBase = session.getRootNode().getNode(TextUtil.relativizePath(filename));
+ assertTrue(nodeBase.hasNode("jcr:content"));
+
+ Node nodeBaseContent = nodeBase.getNode("jcr:content");
+ assertTrue(nodeBaseContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamBase = (ByteArrayInputStream)nodeBaseContent.getProperty("jcr:data").getStream();
+ String getContentBase = TestUtils.stream2string(streamBase, null);
+ assertEquals(content, getContentBase);
+ }
+
+ public void testCopyToFolderWithSpaceUnescapedChars() throws Exception
+ {
+ String folderNameWithSpace = "new folder - testCopyToFolderWithSpaceUnescapedChars";
+ session.getRootNode().addNode(folderNameWithSpace, "nt:folder");
+ session.save();
+
+ String content = TestUtils.getFileContent();
+ String filename = TestUtils.getFileName();
+ InputStream inputStream = new ByteArrayInputStream(content.getBytes());
+ TestUtils.addContent(session, filename, inputStream, defaultFileNodeType, "");
+ String destFilename = TextUtil.unescape("/" + folderNameWithSpace + TestUtils.getFileName(), '%');
+
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+ headers.add(ExtHttpHeaders.DESTINATION, WORKSPACE + destFilename);
+
+ ContainerResponse response = service(WebDAVMethods.COPY, getPathWS() + filename, host, headers, null);
+
+ assertEquals(HTTPStatus.CREATED, response.getStatus());
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(destFilename)));
+
+ Node nodeDest = session.getRootNode().getNode(TextUtil.relativizePath(destFilename));
+ assertTrue(nodeDest.hasNode("jcr:content"));
+
+ Node nodeDestContent = nodeDest.getNode("jcr:content");
+ assertTrue(nodeDestContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamDest = (ByteArrayInputStream)nodeDestContent.getProperty("jcr:data").getStream();
+ String getContentDest = TestUtils.stream2string(streamDest, null);
+ assertEquals(content, getContentDest);
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(filename)));
+
+ Node nodeBase = session.getRootNode().getNode(TextUtil.relativizePath(filename));
+ assertTrue(nodeBase.hasNode("jcr:content"));
+
+ Node nodeBaseContent = nodeBase.getNode("jcr:content");
+ assertTrue(nodeBaseContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamBase = (ByteArrayInputStream)nodeBaseContent.getProperty("jcr:data").getStream();
+ String getContentBase = TestUtils.stream2string(streamBase, null);
+ assertEquals(content, getContentBase);
+ }
+
@Override
protected String getRepositoryName()
{
Modified: jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestMove.java
===================================================================
--- jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestMove.java 2011-05-17 09:47:29 UTC (rev 4383)
+++ jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestMove.java 2011-05-17 12:00:47 UTC (rev 4384)
@@ -212,6 +212,98 @@
}
+ public void testMoveHeaderBeginsFromWorkspaceName() throws Exception
+ {
+ String content = TestUtils.getFileContent();
+ String filename = TestUtils.getFileName();
+ InputStream inputStream = new ByteArrayInputStream(content.getBytes());
+ TestUtils.addContent(session, filename, inputStream, defaultFileNodeType, "");
+ String destFilename = TestUtils.getFileName();
+
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+
+ headers.add(ExtHttpHeaders.DESTINATION, WORKSPACE + destFilename);
+ ContainerResponse response = service(WebDAVMethods.MOVE, getPathWS() + filename, host, headers, null);
+
+ assertEquals(HTTPStatus.CREATED, response.getStatus());
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(destFilename)));
+
+ Node nodeDest = session.getRootNode().getNode(TextUtil.relativizePath(destFilename));
+ assertTrue(nodeDest.hasNode("jcr:content"));
+
+ Node nodeDestContent = nodeDest.getNode("jcr:content");
+ assertTrue(nodeDestContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamDest = (ByteArrayInputStream)nodeDestContent.getProperty("jcr:data").getStream();
+ String getContentDest = TestUtils.stream2string(streamDest, null);
+ assertEquals(content, getContentDest);
+ assertFalse(session.getRootNode().hasNode(TextUtil.relativizePath(filename)));
+ }
+
+ public void testMoveToFolderWithSpace() throws Exception
+ {
+ String folderNameWithSpace = "new folder - testMoveToFolderWithSpace";
+ session.getRootNode().addNode(folderNameWithSpace, "nt:folder");
+ session.save();
+
+ String content = TestUtils.getFileContent();
+ String filename = TestUtils.getFileName();
+ InputStream inputStream = new ByteArrayInputStream(content.getBytes());
+ TestUtils.addContent(session, filename, inputStream, defaultFileNodeType, "");
+ String destFilename = "/" + folderNameWithSpace + TestUtils.getFileName();
+
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+
+ headers.add(ExtHttpHeaders.DESTINATION, WORKSPACE + destFilename);
+ ContainerResponse response = service(WebDAVMethods.MOVE, getPathWS() + filename, host, headers, null);
+
+ assertEquals(HTTPStatus.CREATED, response.getStatus());
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(destFilename)));
+
+ Node nodeDest = session.getRootNode().getNode(TextUtil.relativizePath(destFilename));
+ assertTrue(nodeDest.hasNode("jcr:content"));
+
+ Node nodeDestContent = nodeDest.getNode("jcr:content");
+ assertTrue(nodeDestContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamDest = (ByteArrayInputStream)nodeDestContent.getProperty("jcr:data").getStream();
+ String getContentDest = TestUtils.stream2string(streamDest, null);
+ assertEquals(content, getContentDest);
+ assertFalse(session.getRootNode().hasNode(TextUtil.relativizePath(filename)));
+ }
+
+ public void testMoveToFolderWithSpaceUnescapedChars() throws Exception
+ {
+ String folderNameWithSpace = "new folder - testMoveToFolderWithSpaceUnescapedChars";
+ session.getRootNode().addNode(folderNameWithSpace, "nt:folder");
+ session.save();
+
+ String content = TestUtils.getFileContent();
+ String filename = TestUtils.getFileName();
+ InputStream inputStream = new ByteArrayInputStream(content.getBytes());
+ TestUtils.addContent(session, filename, inputStream, defaultFileNodeType, "");
+ String destFilename = TextUtil.unescape("/" + folderNameWithSpace + TestUtils.getFileName(), '%');
+
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+
+ headers.add(ExtHttpHeaders.DESTINATION, WORKSPACE + destFilename);
+ ContainerResponse response = service(WebDAVMethods.MOVE, getPathWS() + filename, host, headers, null);
+
+ assertEquals(HTTPStatus.CREATED, response.getStatus());
+ assertTrue(session.getRootNode().hasNode(TextUtil.relativizePath(destFilename)));
+
+ Node nodeDest = session.getRootNode().getNode(TextUtil.relativizePath(destFilename));
+ assertTrue(nodeDest.hasNode("jcr:content"));
+
+ Node nodeDestContent = nodeDest.getNode("jcr:content");
+ assertTrue(nodeDestContent.hasProperty("jcr:data"));
+
+ ByteArrayInputStream streamDest = (ByteArrayInputStream)nodeDestContent.getProperty("jcr:data").getStream();
+ String getContentDest = TestUtils.stream2string(streamDest, null);
+ assertEquals(content, getContentDest);
+ assertFalse(session.getRootNode().hasNode(TextUtil.relativizePath(filename)));
+ }
+
@Override
protected String getRepositoryName()
{
14 years, 11 months
exo-jcr SVN: r4383 - jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/hierarchy/impl.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-17 05:47:29 -0400 (Tue, 17 May 2011)
New Revision: 4383
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/hierarchy/impl/NodeHierarchyCreatorImpl.java
Log:
EXOJCR-1349: Duplicate content of other workspaces in default workspace
Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/hierarchy/impl/NodeHierarchyCreatorImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/hierarchy/impl/NodeHierarchyCreatorImpl.java 2011-05-17 08:47:34 UTC (rev 4382)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/hierarchy/impl/NodeHierarchyCreatorImpl.java 2011-05-17 09:47:29 UTC (rev 4383)
@@ -129,7 +129,7 @@
*/
public void init(String repository) throws Exception
{
- init();
+ initBasePath(repository);
}
/**
@@ -137,7 +137,7 @@
*/
public void init() throws Exception
{
- initBasePath();
+ initBasePath(null);
}
private void createNode(Node rootNode, String path, String nodeType, List<String> mixinTypes,
@@ -150,14 +150,13 @@
private void processAddPathPlugin() throws Exception
{
Session session = null;
- ManageableRepository currentRepo = jcrService_.getCurrentRepository();
for (AddPathPlugin pathPlugin : pathPlugins_)
{
HierarchyConfig hierarchyConfig = pathPlugin.getPaths();
if (hierarchyConfig == null)
{
continue;
- }
+ }
List<JcrPath> jcrPaths = hierarchyConfig.getJcrPaths();
if (jcrPaths == null)
{
@@ -168,13 +167,17 @@
{
workspaceNames.addAll(hierarchyConfig.getWorkspaces());
}
- workspaceNames.add(currentRepo.getConfiguration().getDefaultWorkspaceName());
+ String repositoryName = hierarchyConfig.getRepository();
+ ManageableRepository repository = repositoryName == null || repositoryName.isEmpty() ?
+ jcrService_.getCurrentRepository() :
+ jcrService_.getRepository(repositoryName);
+
for (String workspaceName : workspaceNames)
{
JcrPath currentjcrPath = null;
try
{
- session = currentRepo.getSystemSession(workspaceName);
+ session = repository.getSystemSession(workspaceName);
Node rootNode = session.getRootNode();
for (JcrPath jcrPath : jcrPaths)
{
@@ -205,13 +208,15 @@
}
}
- private void initBasePath() throws Exception
+ private void initBasePath(String repositoryName) throws Exception
{
Session session = null;
- ManageableRepository manageableRepository = jcrService_.getCurrentRepository();
+ ManageableRepository manageableRepository =
+ repositoryName == null || repositoryName.isEmpty() ? jcrService_.getCurrentRepository() : jcrService_
+ .getRepository(repositoryName);
String defaultWorkspace = manageableRepository.getConfiguration().getDefaultWorkspaceName();
String systemWorkspace = manageableRepository.getConfiguration().getSystemWorkspaceName();
- boolean isSameWorksapce = defaultWorkspace.equalsIgnoreCase(systemWorkspace);
+ boolean isSameWorkspace = defaultWorkspace.equalsIgnoreCase(systemWorkspace);
String[] workspaceNames = manageableRepository.getWorkspaceNames();
for (AddPathPlugin pathPlugin : pathPlugins_)
{
@@ -227,7 +232,7 @@
}
for (String workspaceName : workspaceNames)
{
- if (!isSameWorksapce && workspaceName.equalsIgnoreCase(systemWorkspace))
+ if (!isSameWorkspace && workspaceName.equalsIgnoreCase(systemWorkspace))
continue;
JcrPath currentjcrPath = null;
try
14 years, 11 months
exo-jcr SVN: r4382 - in jcr/trunk/exo.jcr.component.core/src: test/java/org/exoplatform/services/jcr/impl/core/lock and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-17 04:47:34 -0400 (Tue, 17 May 2011)
New Revision: 4382
Removed:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/jdbc/
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/lock/TestLockPerstistentDataManager.java
Log:
EXOJCR-1249: FUNCTIONAL testing: test TestLockPerstistentDataManager is in error
The CacheableJDBCLockManagerImpl is experimental so it has been removed from the code base since we don't intend to support it
Deleted: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/lock/TestLockPerstistentDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/lock/TestLockPerstistentDataManager.java 2011-05-16 15:37:11 UTC (rev 4381)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/lock/TestLockPerstistentDataManager.java 2011-05-17 08:47:34 UTC (rev 4382)
@@ -1,217 +0,0 @@
-/*
- * Copyright (C) 2010 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.lock;
-
-import org.exoplatform.services.jcr.JcrImplBaseTest;
-import org.exoplatform.services.jcr.impl.core.lock.cacheable.LockData;
-import org.exoplatform.services.jcr.impl.core.lock.jbosscache.jdbc.LockJDBCConnection;
-import org.exoplatform.services.jcr.impl.core.lock.jbosscache.jdbc.LockJDBCContainer;
-
-import java.util.Set;
-
-import javax.jcr.RepositoryException;
-
-/**
- * @author <a href="mailto:nikolazius@gmail.com">Nikolay Zamosenchuk</a>
- * @version $Id: TestLockPerstistentDataManager.java 34360 2009-07-22 23:58:59Z nzamosenchuk $
- *
- */
-public class TestLockPerstistentDataManager extends JcrImplBaseTest
-{
- public void testAddLockData() throws RepositoryException
- {
- LockJDBCContainer dataManager = new LockJDBCContainer("jdbcjcrtest", "ws");
- LockJDBCConnection connection = null;
- try
- {
- // get connection to lock storage
- connection = dataManager.openConnection();
- // put lock data
- connection.addLockData(new LockData("identifier", "hash", false, false, "owner", 100));
- // commit also closes connection
- connection.commit();
- // acquire new connection
- connection = dataManager.openConnection();
- // get lock data
- LockData lockData = connection.getLockData("identifier");
- // asserts
- assertTrue("Lock data should not be null", lockData != null);
- assertEquals("identifier", lockData.getNodeIdentifier());
- assertEquals("hash", lockData.getTokenHash());
- }
- finally
- {
- if (connection != null)
- {
- connection.close();
- }
- }
- }
-
- public void testRemoveLockData() throws RepositoryException
- {
- LockJDBCContainer dataManager = new LockJDBCContainer("jdbcjcrtest", "ws");
- LockJDBCConnection connection = null;
- try
- {
- // get connection to lock storage
- connection = dataManager.openConnection();
- // put lock data
- connection.addLockData(new LockData("identifier2", "hash", false, false, "owner", 100));
- // commit also closes connection
- connection.commit();
- // acquire new connection
- connection = dataManager.openConnection();
- // get lock data
- LockData lockData = connection.getLockData("identifier2");
- // asserts
- assertTrue("Lock data should not be null", lockData != null);
- // remove lock data
- connection.removeLockData("identifier2");
- // commit also closes connection
- connection.commit();
- // acquire new connection
- connection = dataManager.openConnection();
- lockData = connection.getLockData("identifier2");
- // asserts
- assertTrue("Lock data should be null", lockData == null);
- }
- finally
- {
- if (connection != null)
- {
- connection.close();
- }
- }
- }
-
- public void testRefreshLockData() throws RepositoryException
- {
- LockJDBCContainer dataManager = new LockJDBCContainer("jdbcjcrtest", "ws");
- LockJDBCConnection connection = null;
- try
- {
- // get connection to lock storage
- connection = dataManager.openConnection();
- // put lock data
- connection.addLockData(new LockData("identifier3", "hash", false, false, "owner", 100));
- // commit also closes connection
- connection.commit();
- // sleep
- try
- {
- Thread.sleep(1000);
- }
- catch (InterruptedException e)
- {
- }
- // acquire new connection
- connection = dataManager.openConnection();
- // get lock Data
- LockData lockData = connection.getLockData("identifier3");
- Long timeToDeathOriginal = lockData.getTimeToDeath();
- // refresh lock data
- connection.refreshLockData(new LockData("identifier3", "hash", false, false, "owner", 100));
- // commit also closes connection
- connection.commit();
- // acquire new connection
- connection = dataManager.openConnection();
- lockData = connection.getLockData("identifier3");
- Long timeToDeathNew = lockData.getTimeToDeath();
- // asserts
- assertTrue("Birthday should be refreshed", timeToDeathNew > timeToDeathOriginal);
- }
- finally
- {
- if (connection != null)
- {
- connection.close();
- }
- }
- }
-
- public void testgetLockedNodes() throws RepositoryException
- {
- LockJDBCContainer dataManager = new LockJDBCContainer("jdbcjcrtest", "test_workspace");
- LockJDBCContainer dataManagerAnotherWS = new LockJDBCContainer("jdbcjcrtest", "another_workspace");
- LockJDBCConnection connection = null;
- try
- {
- // get connection to lock storage
- connection = dataManager.openConnection();
- // put lock data
- connection.addLockData(new LockData("identifier1-listTest", "hash1", false, false, "owner", 100));
- connection.addLockData(new LockData("identifier2-listTest", "hash2", false, false, "owner", 100));
- connection.addLockData(new LockData("identifier3-listTest", "hash3", false, false, "owner", 100));
- connection.addLockData(new LockData("identifier4-listTest", "hash4", false, false, "owner", 100));
- // commit also closes connection
- connection.commit();
-
- // Adding lock data to another workspace
- connection = dataManagerAnotherWS.openConnection();
- // this lock data is from another workspace and shouldn't be in result set
- connection.addLockData(new LockData("identifier1-listTest", "hash1", false, false, "owner", 100));
- connection.commit();
- // acquire new connection
- connection = dataManager.openConnection();
- // get set
- Set<String> identifiers = connection.getLockedNodes();
- assertEquals("Wrong size of result.", 4, identifiers.size());
- }
- finally
- {
- if (connection != null)
- {
- connection.close();
- }
- }
- }
-
- public void testAddLockDataTwice() throws RepositoryException
- {
- LockJDBCContainer dataManager = new LockJDBCContainer("jdbcjcrtest", "ws");
- LockJDBCConnection connection = null;
- try
- {
- // get connection to lock storage
- connection = dataManager.openConnection();
- // put lock data
- connection.addLockData(new LockData("identifier", "hash", false, false, "owner", 100));
- // commit also closes connection
- connection.commit();
- // acquire new connection
- connection = dataManager.openConnection();
- // put lock data with same identifier
- connection.addLockData(new LockData("identifier", "hash", false, false, "owner", 100));
- fail("exception expected!");
- }
- catch (RepositoryException e)
- {
- // it's ok
- }
- finally
- {
- if (connection != null)
- {
- connection.close();
- }
- }
- }
-
-}
14 years, 11 months
exo-jcr SVN: r4381 - jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-16 11:37:11 -0400 (Mon, 16 May 2011)
New Revision: 4381
Removed:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml
Modified:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-jbc.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc-jbc.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml
Log:
EXOJCR-1348: Use the DefaultChangesFilter in the configuration in case of a local mode
Deleted: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml 2011-05-16 14:32:07 UTC (rev 4380)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-indexer.xml 2011-05-16 15:37:11 UTC (rev 4381)
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-<infinispan
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:infinispan:config:4.1 http://www.infinispan.org/schemas/infinispan-config-4.1.xsd"
- xmlns="urn:infinispan:config:4.1">
-
- <global>
- <evictionScheduledExecutor factory="org.infinispan.executors.DefaultScheduledExecutorFactory">
- <properties>
- <property name="threadNamePrefix" value="EvictionThread"/>
- </properties>
- </evictionScheduledExecutor>
-
- <globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
- </global>
-
- <default>
- <locking isolationLevel="READ_COMMITTED" lockAcquisitionTimeout="20000" writeSkewCheck="false" concurrencyLevel="500" useLockStriping="false"/>
- <jmxStatistics enabled="true"/>
- <eviction strategy="NONE"/>
- <transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup" syncRollbackPhase="true" syncCommitPhase="true"/>
-
- <loaders passivation="false" shared="false" preload="false">
- <loader class="${infinispan-cachestore-classname}" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
- <async enabled="false"/>
- </loader>
- </loaders>
- </default>
-</infinispan>
Deleted: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml 2011-05-16 14:32:07 UTC (rev 4380)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml 2011-05-16 15:37:11 UTC (rev 4381)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
-
- <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
- lockAcquisitionTimeout="20000" />
- <!-- Configure the TransactionManager -->
- <transaction transactionManagerLookupClass="org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup" />
-</jbosscache>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-jbc.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-jbc.xml 2011-05-16 14:32:07 UTC (rev 4380)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-jbc.xml 2011-05-16 15:37:11 UTC (rev 4381)
@@ -70,9 +70,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws" />
</properties>
</query-handler>
@@ -124,9 +121,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws1" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -186,9 +180,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws2" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -271,9 +262,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws3" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -350,9 +338,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db2/ws" />
</properties>
</query-handler>
@@ -410,9 +395,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db2/ws1" />
</properties>
</query-handler>
@@ -481,9 +463,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -551,9 +530,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws1" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -620,9 +596,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws2" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc-jbc.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc-jbc.xml 2011-05-16 14:32:07 UTC (rev 4380)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc-jbc.xml 2011-05-16 15:37:11 UTC (rev 4381)
@@ -70,9 +70,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws" />
</properties>
</query-handler>
@@ -124,9 +121,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws1" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -186,9 +180,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws2" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -271,9 +262,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws3" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -351,9 +339,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db2/ws" />
</properties>
</query-handler>
@@ -411,9 +396,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db2/ws1" />
</properties>
</query-handler>
@@ -482,9 +464,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -552,9 +531,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws1" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -621,9 +597,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class"
- value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
- <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws2" />
<property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml 2011-05-16 14:32:07 UTC (rev 4380)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-sjdbc.xml 2011-05-16 15:37:11 UTC (rev 4381)
@@ -66,8 +66,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws" />
</properties>
</query-handler>
@@ -115,8 +113,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -170,8 +166,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -247,8 +241,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws3" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -435,8 +427,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -497,8 +487,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -558,8 +546,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml 2011-05-16 14:32:07 UTC (rev 4380)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config.xml 2011-05-16 15:37:11 UTC (rev 4381)
@@ -66,8 +66,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws" />
</properties>
</query-handler>
@@ -115,8 +113,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -170,8 +166,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -247,8 +241,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1/ws3" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -435,8 +427,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -497,8 +487,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws1" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
@@ -558,8 +546,6 @@
</cache>
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
- <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.ispn.ISPNIndexChangesFilter" />
- <property name="infinispan-configuration" value="conf/standalone/test-infinispan-indexer.xml" />
<property name="index-dir" value="target/temp/index/db1tck/ws2" />
<property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
<property name="synonymprovider-config-path" value="../../synonyms.properties" />
14 years, 11 months
exo-jcr SVN: r4380 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query: ispn and 1 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-16 10:32:07 -0400 (Mon, 16 May 2011)
New Revision: 4380
Added:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java
Removed:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.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/IndexerCacheLoader.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java
Log:
EXOJCR-1347: Clean the code of the IndexerChangesFilters
Now the class ChangesFilterListsWrapper is directly in the query package and all the common code has been moved in the root class IndexerChangesFilter
Copied: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java (from rev 4376, jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java)
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -0,0 +1,109 @@
+/*
+ * 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.services.jcr.impl.core.query;
+
+import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * FOR TESTING PURPOSES ONLY. Used to avoid batching usage in indexer cache.
+ *
+ * @author <a href="mailto:nikolazius@gmail.com">Nikolay Zamosenchuk</a>
+ * @version $Id: ChangesFilterListsWrapper.java 34360 2009-07-22 23:58:59Z nzamosenchuk $
+ *
+ */
+public class ChangesFilterListsWrapper implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private Set<String> addedNodes;
+
+ private Set<String> removedNodes;
+
+ private Set<String> parentAddedNodes;
+
+ private Set<String> parentRemovedNodes;
+
+ private ChangesHolder changes;
+
+ private ChangesHolder parentChanges;
+
+ /**
+ * Creates ChangesFilterListsWrapper data class, containing given lists.
+ *
+ * @param addedNodes
+ * @param removedNodes
+ * @param parentAddedNodes
+ * @param parentRemovedNodes
+ */
+ public ChangesFilterListsWrapper(Set<String> addedNodes, Set<String> removedNodes, Set<String> parentAddedNodes,
+ Set<String> parentRemovedNodes)
+ {
+ this.addedNodes = addedNodes;
+ this.removedNodes = removedNodes;
+ this.parentAddedNodes = parentAddedNodes;
+ this.parentRemovedNodes = parentRemovedNodes;
+ }
+
+ /**
+ * Creates ChangesFilterListsWrapper data class, containing given lists.
+ */
+ public ChangesFilterListsWrapper(ChangesHolder changes, ChangesHolder parentChanges)
+ {
+ this.changes = changes;
+ this.parentChanges = parentChanges;
+ }
+
+ public boolean withChanges()
+ {
+ return changes != null || parentChanges != null;
+ }
+
+ public ChangesHolder getChanges()
+ {
+ return changes;
+ }
+
+ public ChangesHolder getParentChanges()
+ {
+ return parentChanges;
+ }
+
+ public Set<String> getAddedNodes()
+ {
+ return addedNodes;
+ }
+
+ public Set<String> getRemovedNodes()
+ {
+ return removedNodes;
+ }
+
+ public Set<String> getParentAddedNodes()
+ {
+ return parentAddedNodes;
+ }
+
+ public Set<String> getParentRemovedNodes()
+ {
+ return parentRemovedNodes;
+ }
+}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -94,14 +94,7 @@
catch (IOException e)
{
log.error("Error indexing changes " + e, e);
- try
- {
- handler.logErrorChanges(removedNodes, addedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
- }
+ logErrorChanges(handler, removedNodes, addedNodes);
}
try
@@ -115,16 +108,12 @@
catch (IOException e)
{
log.error("Error indexing changes " + e, e);
- try
- {
- parentHandler.logErrorChanges(parentRemovedNodes, parentAddedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
- }
+ logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
}
-
}
-
+
+ protected Log getLogger()
+ {
+ return log;
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -23,9 +23,11 @@
import org.exoplatform.services.jcr.dataflow.ItemState;
import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
import org.exoplatform.services.jcr.dataflow.persistent.ItemsPersistenceListener;
+import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -44,7 +46,7 @@
/**
* Logger instance for this class
*/
- private static final Log log = ExoLogger.getLogger("exo.jcr.component.core.DefaultChangesFilter");
+ private static final Log log = ExoLogger.getLogger("exo.jcr.component.core.IndexerChangesFilter");
protected final SearchManager searchManager;
@@ -78,6 +80,10 @@
this.indexingTree = indexingTree;
this.handler = handler;
this.parentHandler = parentHandler;
+ if (log.isDebugEnabled())
+ {
+ log.debug("Will the indexing being enrolled in global transactions : " + isTXAware());
+ }
}
/**
@@ -202,9 +208,56 @@
* @param removedNodes
* @param addedNodes
*/
- protected abstract void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes,
- Set<String> parentRemovedNodes, Set<String> parentAddedNodes);
+ protected void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes, Set<String> parentRemovedNodes,
+ Set<String> parentAddedNodes)
+ {
+ ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
+ ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes, parentAddedNodes);
+ if (changes == null && parentChanges == null)
+ {
+ return;
+ }
+
+ try
+ {
+ doUpdateIndex(new ChangesFilterListsWrapper(changes, parentChanges));
+ }
+ catch (RuntimeException e)
+ {
+ if (isTXAware())
+ {
+ // The indexing is part of the global tx so the error needs to be thrown to
+ // allow to roll back other resources
+ throw e;
+ }
+ getLogger().error(e.getLocalizedMessage(), e);
+ logErrorChanges(handler, removedNodes, addedNodes);
+ logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
+ }
+ }
+
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
+ {
+ }
+
+ protected Log getLogger()
+ {
+ return log;
+ }
+
+ protected void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes, Set<String> addedNodes)
+ {
+ try
+ {
+ logHandler.logErrorChanges(addedNodes, removedNodes);
+ }
+ catch (IOException ioe)
+ {
+ getLogger().warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
+ }
+ }
+
private void createNewOrAdd(String key, ItemState state, Map<String, List<ItemState>> updatedNodes)
{
List<ItemState> list = updatedNodes.get(key);
@@ -222,7 +275,7 @@
*/
public boolean isTXAware()
{
- return true;
+ return false;
}
/**
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -19,12 +19,12 @@
package org.exoplatform.services.jcr.impl.core.query.ispn;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.Indexer;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
import org.exoplatform.services.jcr.impl.core.query.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
-import org.exoplatform.services.jcr.impl.core.query.jbosscache.ChangesFilterListsWrapper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.infinispan.container.entries.InternalCacheEntry;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -21,26 +21,23 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
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.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
-import org.exoplatform.services.jcr.impl.core.query.jbosscache.ChangesFilterListsWrapper;
-import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.jcr.infinispan.ISPNCacheFactory;
import org.exoplatform.services.jcr.infinispan.PrivilegedISPNCacheHelper;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.infinispan.Cache;
-import org.infinispan.CacheException;
import org.infinispan.context.Flag;
import org.infinispan.loaders.CacheLoaderManager;
import java.io.IOException;
import java.io.Serializable;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -110,53 +107,17 @@
handler.init();
}
}
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+
+ protected Log getLogger()
{
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes, parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
-
- ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
- try
- {
- cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
- PrivilegedISPNCacheHelper.put(cache, changesKey, new ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors.
- *
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes, Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
- }
+ ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
+ cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
+ PrivilegedISPNCacheHelper.put(cache, changesKey, changes);
}
/**
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -18,9 +18,9 @@
*/
package org.exoplatform.services.jcr.impl.core.query.ispn;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
-import org.exoplatform.services.jcr.impl.core.query.jbosscache.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.infinispan.Cache;
import org.infinispan.config.Configuration.CacheMode;
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-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -21,26 +21,23 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
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.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
-import org.exoplatform.services.jcr.impl.core.query.jbosscache.ChangesFilterListsWrapper;
-import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.jcr.infinispan.ISPNCacheFactory;
import org.exoplatform.services.jcr.infinispan.PrivilegedISPNCacheHelper;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.infinispan.Cache;
-import org.infinispan.CacheException;
import org.infinispan.context.Flag;
import org.infinispan.loaders.CacheLoaderManager;
import java.io.IOException;
import java.io.Serializable;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -103,53 +100,16 @@
handler.init();
}
}
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+
+ protected Log getLogger()
{
-
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes, parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
-
- ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
- try
- {
- cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
- PrivilegedISPNCacheHelper.put(cache, changesKey, new ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors.
- *
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes, Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
- }
+ ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
+ cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
+ PrivilegedISPNCacheHelper.put(cache, changesKey, changes);
}
}
Deleted: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -1,109 +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.services.jcr.impl.core.query.jbosscache;
-
-import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
-
-import java.io.Serializable;
-import java.util.Set;
-
-/**
- * FOR TESTING PURPOSES ONLY. Used to avoid batching usage in indexer cache.
- *
- * @author <a href="mailto:nikolazius@gmail.com">Nikolay Zamosenchuk</a>
- * @version $Id: ChangesFilterListsWrapper.java 34360 2009-07-22 23:58:59Z nzamosenchuk $
- *
- */
-public class ChangesFilterListsWrapper implements Serializable
-{
- private static final long serialVersionUID = 1L;
-
- private Set<String> addedNodes;
-
- private Set<String> removedNodes;
-
- private Set<String> parentAddedNodes;
-
- private Set<String> parentRemovedNodes;
-
- private ChangesHolder changes;
-
- private ChangesHolder parentChanges;
-
- /**
- * Creates ChangesFilterListsWrapper data class, containing given lists.
- *
- * @param addedNodes
- * @param removedNodes
- * @param parentAddedNodes
- * @param parentRemovedNodes
- */
- public ChangesFilterListsWrapper(Set<String> addedNodes, Set<String> removedNodes, Set<String> parentAddedNodes,
- Set<String> parentRemovedNodes)
- {
- this.addedNodes = addedNodes;
- this.removedNodes = removedNodes;
- this.parentAddedNodes = parentAddedNodes;
- this.parentRemovedNodes = parentRemovedNodes;
- }
-
- /**
- * Creates ChangesFilterListsWrapper data class, containing given lists.
- */
- public ChangesFilterListsWrapper(ChangesHolder changes, ChangesHolder parentChanges)
- {
- this.changes = changes;
- this.parentChanges = parentChanges;
- }
-
- public boolean withChanges()
- {
- return changes != null || parentChanges != null;
- }
-
- public ChangesHolder getChanges()
- {
- return changes;
- }
-
- public ChangesHolder getParentChanges()
- {
- return parentChanges;
- }
-
- public Set<String> getAddedNodes()
- {
- return addedNodes;
- }
-
- public Set<String> getRemovedNodes()
- {
- return removedNodes;
- }
-
- public Set<String> getParentAddedNodes()
- {
- return parentAddedNodes;
- }
-
- public Set<String> getParentRemovedNodes()
- {
- return parentRemovedNodes;
- }
-}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -17,6 +17,7 @@
package org.exoplatform.services.jcr.impl.core.query.jbosscache;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.Indexer;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl.core.query.jbosscache;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java 2011-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -21,21 +21,20 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
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.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
-import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
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;
import org.jboss.cache.Cache;
-import org.jboss.cache.CacheException;
import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.config.CacheLoaderConfig;
@@ -45,7 +44,6 @@
import java.io.IOException;
import java.io.Serializable;
import java.util.Properties;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -132,8 +130,8 @@
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);
@@ -167,50 +165,15 @@
}
}
- /**
- * {@inheritDoc}
- */
- protected void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+ protected Log getLogger()
{
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes, parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
- String id = IdGenerator.generate();
- try
- {
- PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id), LISTWRAPPER,
- new ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes, Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
-
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
- }
+ String id = IdGenerator.generate();
+ PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id), LISTWRAPPER, changes);
}
/**
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-05-13 13:03:40 UTC (rev 4379)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java 2011-05-16 14:32:07 UTC (rev 4380)
@@ -21,20 +21,19 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
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.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
-import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
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;
import org.jboss.cache.Cache;
-import org.jboss.cache.CacheException;
import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.config.CacheLoaderConfig;
@@ -42,7 +41,6 @@
import java.io.IOException;
import java.io.Serializable;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -123,8 +121,8 @@
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);
@@ -147,49 +145,14 @@
}
}
- /**
- * {@inheritDoc}
- */
- protected void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+ protected Log getLogger()
{
-
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes, parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
- String id = IdGenerator.generate();
- try
- {
- PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id), LISTWRAPPER,
- new ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes, Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
- }
+ String id = IdGenerator.generate();
+ PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id), LISTWRAPPER, changes);
}
}
14 years, 11 months
exo-jcr SVN: r4379 - jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-13 09:03:40 -0400 (Fri, 13 May 2011)
New Revision: 4379
Modified:
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml
Log:
EXOJCR-1344: remove the eviction also for the non cluster env
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml 2011-05-13 10:46:29 UTC (rev 4378)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-indexer.xml 2011-05-13 13:03:40 UTC (rev 4379)
@@ -5,13 +5,4 @@
lockAcquisitionTimeout="20000" />
<!-- Configure the TransactionManager -->
<transaction transactionManagerLookupClass="org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup" />
-
- <!-- Eviction configuration -->
- <eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
- <property name="maxNodes" value="10000" />
- <property name="minTimeToLive" value="60000" />
- </default>
- </eviction>
-
</jbosscache>
14 years, 11 months
exo-jcr SVN: r4378 - in jcr/branches/1.12.x/patch/1.12.9-GA: JCR-1629 and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-13 06:46:29 -0400 (Fri, 13 May 2011)
New Revision: 4378
Added:
jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1629/
jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1629/JCR-1629.patch
Log:
JCR-1629: This patch removes the eviction policy from the JBC config used for the indexing in cluster
Added: jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1629/JCR-1629.patch
===================================================================
--- jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1629/JCR-1629.patch (rev 0)
+++ jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1629/JCR-1629.patch 2011-05-13 10:46:29 UTC (rev 4378)
@@ -0,0 +1,34 @@
+Index: exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml
+===================================================================
+--- exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml (revision 4375)
++++ exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml (working copy)
+@@ -11,12 +11,4 @@
+ <jgroupsConfig multiplexerStack="jcr.stack" />
+ <sync />
+ </clustering>
+- <!-- Eviction configuration -->
+- <eviction wakeUpInterval="5000">
+- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
+- <property name="maxNodes" value="10000" />
+- <property name="minTimeToLive" value="60000" />
+- </default>
+- </eviction>
+-
+ </jbosscache>
+Index: exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-indexer.xml
+===================================================================
+--- exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-indexer.xml (revision 4375)
++++ exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-indexer.xml (working copy)
+@@ -9,12 +9,4 @@
+ <jgroupsConfig multiplexerStack="jcr.stack" />
+ <sync />
+ </clustering>
+- <!-- Eviction configuration -->
+- <eviction wakeUpInterval="5000">
+- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
+- <property name="maxNodes" value="10000" />
+- <property name="minTimeToLive" value="60000" />
+- </default>
+- </eviction>
+-
+ </jbosscache>
14 years, 11 months
exo-jcr SVN: r4377 - in jcr/trunk/exo.jcr.component.core/src: test/resources/conf/standalone/cluster and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-13 05:37:54 -0400 (Fri, 13 May 2011)
New Revision: 4377
Modified:
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-indexer.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml
Log:
EXOJCR-1344: No eviction policy is allowed in case of the cache for indexing
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-indexer.xml 2011-05-12 12:23:12 UTC (rev 4376)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-indexer.xml 2011-05-13 09:37:54 UTC (rev 4377)
@@ -10,12 +10,4 @@
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
<sync />
</clustering>
- <!-- Eviction configuration -->
- <eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
- <property name="maxNodes" value="10000" />
- <property name="minTimeToLive" value="60000" />
- </default>
- </eviction>
-
</jbosscache>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml 2011-05-12 12:23:12 UTC (rev 4376)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-indexer.xml 2011-05-13 09:37:54 UTC (rev 4377)
@@ -10,12 +10,4 @@
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
<sync />
</clustering>
- <!-- Eviction configuration -->
- <eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
- <property name="maxNodes" value="10000" />
- <property name="minTimeToLive" value="60000" />
- </default>
- </eviction>
-
</jbosscache>
14 years, 11 months
exo-jcr SVN: r4376 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: dataflow/persistent and 1 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-12 08:23:12 -0400 (Thu, 12 May 2011)
New Revision: 4376
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java
Log:
EXOJCR-1342: Thread not stopped when the application is stopped
The components are now starteable and their threads are stopped in the stop method
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java 2011-05-12 06:58:50 UTC (rev 4375)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/LockRemoverHolder.java 2011-05-12 12:23:12 UTC (rev 4376)
@@ -21,6 +21,7 @@
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.services.jcr.config.RepositoryEntry;
import org.exoplatform.services.jcr.impl.proccess.WorkerService;
+import org.picocontainer.Startable;
/**
* LockRemoverHolder holds is a single per-repository LockRemover container.
@@ -28,7 +29,7 @@
* @author <a href="mailto:karpenko.sergiy@gmail.com">Karpenko Sergiy</a>
* @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z aheritier $
*/
-public class LockRemoverHolder
+public class LockRemoverHolder implements Startable
{
/**
* Default amount of thread that may be used by WorkerService to serve LockRemovers.
@@ -91,4 +92,18 @@
return new LockRemover(workerService, lockManager, timeout);
}
+ /**
+ * @see org.picocontainer.Startable#start()
+ */
+ public void start()
+ {
+ }
+
+ /**
+ * @see org.picocontainer.Startable#stop()
+ */
+ public void stop()
+ {
+ workerService.stop();
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java 2011-05-12 06:58:50 UTC (rev 4375)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/LinkedWorkspaceStorageCacheImpl.java 2011-05-12 12:23:12 UTC (rev 4376)
@@ -36,6 +36,7 @@
import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import org.picocontainer.Startable;
import java.util.ArrayList;
import java.util.Calendar;
@@ -45,10 +46,10 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Timer;
import java.util.TimerTask;
import java.util.WeakHashMap;
-import java.util.Map.Entry;
import java.util.concurrent.Semaphore;
import java.util.concurrent.locks.ReentrantLock;
@@ -62,7 +63,7 @@
* @author <a href="mailto:peter.nedonosko@exoplatform.com.ua">Peter Nedonosko</a>
* @version $Id: LinkedWorkspaceStorageCacheImpl.java 34801 2009-07-31 15:44:50Z dkatayev $
*/
-public class LinkedWorkspaceStorageCacheImpl implements WorkspaceStorageCache
+public class LinkedWorkspaceStorageCacheImpl implements WorkspaceStorageCache, Startable
{
/**
@@ -786,28 +787,6 @@
}
}
- /**
- * {@inheritDoc}
- */
- @Override
- protected void finalize() throws Throwable
- {
- try
- {
- workerTimer.cancel();
- }
- catch (Throwable e)
- {
- LOG.error(this.name + " cache, finalyze error " + e, e);
- }
-
- nodesCache.clear();
- propertiesCache.clear();
- cache.clear();
-
- super.finalize();
- }
-
private void scheduleTask(TimerTask task, int start, long period)
{
Calendar firstTime = Calendar.getInstance();
@@ -2164,4 +2143,33 @@
{
return true;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public void start()
+ {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void stop()
+ {
+ if (workerTimer != null)
+ {
+ try
+ {
+ workerTimer.cancel();
+ }
+ catch (Throwable e)
+ {
+ LOG.warn(this.name + " cache, stop error " + e);
+ }
+ }
+
+ nodesCache.clear();
+ propertiesCache.clear();
+ cache.clear();
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java 2011-05-12 06:58:50 UTC (rev 4375)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/io/FileCleanerHolder.java 2011-05-12 12:23:12 UTC (rev 4376)
@@ -19,6 +19,7 @@
package org.exoplatform.services.jcr.impl.util.io;
import org.exoplatform.container.ExoContainerContext;
+import org.picocontainer.Startable;
/**
* Created by The eXo Platform SAS. <br/> per workspace container file cleaner holder object
@@ -26,7 +27,7 @@
* @author Gennady Azarenkov
* @version $Id: WorkspaceFileCleanerHolder.java 11907 2008-03-13 15:36:21Z ksm $
*/
-public class FileCleanerHolder
+public class FileCleanerHolder implements Startable
{
private final FileCleaner fileCleaner;
@@ -46,4 +47,19 @@
return fileCleaner;
}
+ /**
+ * @see org.picocontainer.Startable#start()
+ */
+ public void start()
+ {
+ }
+
+ /**
+ * @see org.picocontainer.Startable#stop()
+ */
+ public void stop()
+ {
+ fileCleaner.halt();
+ }
+
}
14 years, 11 months
exo-jcr SVN: r4375 - core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika.
by do-not-reply@jboss.org
Author: areshetnyak
Date: 2011-05-12 02:58:50 -0400 (Thu, 12 May 2011)
New Revision: 4375
Modified:
core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java
Log:
EXOJCR-1334 : Fix problem with throwing RuntimeException in TikaDocumentReader.
Modified: core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java
===================================================================
--- core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java 2011-05-12 06:15:30 UTC (rev 4374)
+++ core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java 2011-05-12 06:58:50 UTC (rev 4375)
@@ -346,10 +346,6 @@
{
throw (IOException)cause;
}
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
else
{
throw new DocumentReadException("Can not get properties: " + cause.getMessage(), cause);
14 years, 11 months