mirror of
https://github.com/Alfresco/SearchServices.git
synced 2025-09-24 14:31:29 +00:00
[contentStoreReplication]
Created new directory for test execution different from test-files Removed test execution files after test
This commit is contained in:
@@ -27,7 +27,6 @@ import org.alfresco.solr.client.NodeMetaData;
|
|||||||
import org.alfresco.solr.client.SOLRAPIQueueClient;
|
import org.alfresco.solr.client.SOLRAPIQueueClient;
|
||||||
import org.alfresco.solr.client.Transaction;
|
import org.alfresco.solr.client.Transaction;
|
||||||
import org.alfresco.solr.tracker.Tracker;
|
import org.alfresco.solr.tracker.Tracker;
|
||||||
import org.alfresco.util.SearchLanguageConversion;
|
|
||||||
import org.apache.chemistry.opencmis.commons.impl.json.JSONArray;
|
import org.apache.chemistry.opencmis.commons.impl.json.JSONArray;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
|
import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.json.JSONValue;
|
import org.apache.chemistry.opencmis.commons.impl.json.JSONValue;
|
||||||
@@ -67,6 +66,7 @@ import org.xml.sax.SAXException;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
import javax.xml.xpath.XPathExpressionException;
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
@@ -119,6 +119,26 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
protected static NodeRef TEST_NODEREF;
|
protected static NodeRef TEST_NODEREF;
|
||||||
protected static Date FTS_TEST_DATE;
|
protected static Date FTS_TEST_DATE;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected static void copyTestFiles() throws IOException {
|
||||||
|
|
||||||
|
//Add solr home conf folder with alfresco based configuration.
|
||||||
|
|
||||||
|
File testExecutionFolder = Paths.get(TEST_EXECUTION_SOLRHOME).toFile();
|
||||||
|
|
||||||
|
for (String s : List.of("/conf", "/alfrescoModels", "/templates", "/collection1")) {
|
||||||
|
FileUtils.copyDirectory(Paths.get(TEST_FILES_LOCATION + s).toFile(), Paths.get(testExecutionFolder + s).toFile());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void deleteTestDirectory() throws IOException {
|
||||||
|
FileUtils.forceDelete(Paths.get(TEST_EXECUTION_FOLDER).toFile());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Bunch of methods that wrap testHarness object usage.
|
/* Bunch of methods that wrap testHarness object usage.
|
||||||
* TestHarness is a class for internal solr test and should not be use outside Solr.
|
* TestHarness is a class for internal solr test and should not be use outside Solr.
|
||||||
* Unfortunately this class is used in too many test and a complete refactor would have a huge impact
|
* Unfortunately this class is used in too many test and a complete refactor would have a huge impact
|
||||||
@@ -218,9 +238,9 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static void initAlfrescoCore(String schema) throws Exception
|
public static void initAlfrescoCore(String schema) throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
LOG.info("##################################### init Alfresco core ##############");
|
LOG.info("##################################### init Alfresco core ##############");
|
||||||
LOG.info("####initCore");
|
LOG.info("####initCore");
|
||||||
System.setProperty("solr.solr.home", TEST_FILES_LOCATION);
|
|
||||||
System.setProperty("solr.directoryFactory","solr.RAMDirectoryFactory");
|
System.setProperty("solr.directoryFactory","solr.RAMDirectoryFactory");
|
||||||
System.setProperty("solr.tests.maxBufferedDocs", "1000");
|
System.setProperty("solr.tests.maxBufferedDocs", "1000");
|
||||||
System.setProperty("solr.tests.maxIndexingThreads", "10");
|
System.setProperty("solr.tests.maxIndexingThreads", "10");
|
||||||
@@ -231,18 +251,23 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
System.setProperty("alfresco.test", "true");
|
System.setProperty("alfresco.test", "true");
|
||||||
System.setProperty("solr.tests.mergeScheduler", "org.apache.lucene.index.ConcurrentMergeScheduler");
|
System.setProperty("solr.tests.mergeScheduler", "org.apache.lucene.index.ConcurrentMergeScheduler");
|
||||||
System.setProperty("solr.tests.mergePolicy", "org.apache.lucene.index.TieredMergePolicy");
|
System.setProperty("solr.tests.mergePolicy", "org.apache.lucene.index.TieredMergePolicy");
|
||||||
|
|
||||||
|
copyTestFiles();
|
||||||
if (CORE_NOT_YET_CREATED)
|
if (CORE_NOT_YET_CREATED)
|
||||||
{
|
{
|
||||||
createAlfrescoCore(schema);
|
createAlfrescoCore(schema);
|
||||||
}
|
}
|
||||||
LOG.info("####initCore end");
|
LOG.info("####initCore end");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
admin = of(h).map(TestHarness::getCoreContainer)
|
admin = of(h).map(TestHarness::getCoreContainer)
|
||||||
.map(CoreContainer::getMultiCoreHandler)
|
.map(CoreContainer::getMultiCoreHandler)
|
||||||
.map(AlfrescoCoreAdminHandler.class::cast)
|
.map(AlfrescoCoreAdminHandler.class::cast)
|
||||||
.orElseThrow(RuntimeException::new);
|
.orElseThrow(RuntimeException::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated as testHarness is used
|
* @deprecated as testHarness is used
|
||||||
*/
|
*/
|
||||||
@@ -267,7 +292,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
Paths.get(TEST_SOLR_CONF + schema).toFile());
|
Paths.get(TEST_SOLR_CONF + schema).toFile());
|
||||||
}
|
}
|
||||||
|
|
||||||
SolrResourceLoader resourceLoader = new SolrResourceLoader(Paths.get(TEST_FILES_LOCATION), null, properties);
|
SolrResourceLoader resourceLoader = new SolrResourceLoader(Paths.get(TEST_EXECUTION_SOLRHOME), null, properties);
|
||||||
TestCoresLocator locator = new TestCoresLocator(SolrTestCaseJ4.DEFAULT_TEST_CORENAME,
|
TestCoresLocator locator = new TestCoresLocator(SolrTestCaseJ4.DEFAULT_TEST_CORENAME,
|
||||||
"data",
|
"data",
|
||||||
"solrconfig.xml",
|
"solrconfig.xml",
|
||||||
@@ -309,7 +334,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
/**
|
/**
|
||||||
* Validates an update XML String is successful
|
* Validates an update XML String is successful
|
||||||
*/
|
*/
|
||||||
public void assertU(String update)
|
public void assertU(String update)
|
||||||
{
|
{
|
||||||
assertU(null, update);
|
assertU(null, update);
|
||||||
}
|
}
|
||||||
@@ -325,7 +350,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
/**
|
/**
|
||||||
* Validates an update XML String failed
|
* Validates an update XML String failed
|
||||||
*/
|
*/
|
||||||
public void assertFailedU(String update)
|
public void assertFailedU(String update)
|
||||||
{
|
{
|
||||||
assertFailedU(null, update);
|
assertFailedU(null, update);
|
||||||
}
|
}
|
||||||
@@ -434,6 +459,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
}
|
}
|
||||||
catch (Exception e2)
|
catch (Exception e2)
|
||||||
{
|
{
|
||||||
|
e2.printStackTrace();
|
||||||
throw new RuntimeException("Exception during query", e2);
|
throw new RuntimeException("Exception during query", e2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -498,7 +524,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
long timeout = (long)date.getTime() + waitMillis;
|
long timeout = date.getTime() + waitMillis;
|
||||||
|
|
||||||
RefCounted<SolrIndexSearcher> ref = null;
|
RefCounted<SolrIndexSearcher> ref = null;
|
||||||
int totalHits = 0;
|
int totalHits = 0;
|
||||||
@@ -738,6 +764,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
}
|
}
|
||||||
catch(Exception exception)
|
catch(Exception exception)
|
||||||
{
|
{
|
||||||
|
exception.printStackTrace();
|
||||||
throw new RuntimeException(exception);
|
throw new RuntimeException(exception);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@@ -785,7 +812,7 @@ public abstract class AbstractAlfrescoSolrTests implements SolrTestFiles, Alfres
|
|||||||
{
|
{
|
||||||
public SolrServletRequest(SolrCore core, HttpServletRequest req)
|
public SolrServletRequest(SolrCore core, HttpServletRequest req)
|
||||||
{
|
{
|
||||||
super(core, new MultiMapSolrParams(Collections.<String, String[]> emptyMap()));
|
super(core, new MultiMapSolrParams(Collections.emptyMap()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,8 +24,10 @@ package org.alfresco.solr;
|
|||||||
*/
|
*/
|
||||||
public interface SolrTestFiles
|
public interface SolrTestFiles
|
||||||
{
|
{
|
||||||
public final String TEST_FILES_LOCATION = "target/test-classes/test-files";
|
String TEST_FILES_LOCATION = "target/test-classes/test-files";
|
||||||
public final String TEST_SOLR_COLLECTION = TEST_FILES_LOCATION + "/collection1";
|
String TEST_EXECUTION_FOLDER = "target/test-execution-folder";
|
||||||
public final String TEST_SOLR_CONF = TEST_SOLR_COLLECTION + "/conf/";
|
String TEST_EXECUTION_SOLRHOME = TEST_EXECUTION_FOLDER + "/solrhome";
|
||||||
public final String TEMPLATE_CONF = TEST_FILES_LOCATION + "/templates/%s/conf/";
|
String TEST_SOLR_COLLECTION = TEST_EXECUTION_SOLRHOME + "/collection1";
|
||||||
|
String TEST_SOLR_CONF = TEST_SOLR_COLLECTION + "/conf/";
|
||||||
|
String TEMPLATE_CONF = TEST_EXECUTION_SOLRHOME + "/templates/%s/conf/";
|
||||||
}
|
}
|
||||||
|
@@ -58,6 +58,8 @@ import static org.carrot2.shaded.guava.common.collect.ImmutableList.of;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Elia Porciani
|
* @author Elia Porciani
|
||||||
|
*
|
||||||
|
* This test check if the synchronization of contentstore between master and slave is done correctly.
|
||||||
*/
|
*/
|
||||||
public class contentStoreReplicationTest extends AbstractAlfrescoDistributedTest {
|
public class contentStoreReplicationTest extends AbstractAlfrescoDistributedTest {
|
||||||
|
|
||||||
@@ -125,6 +127,7 @@ public class contentStoreReplicationTest extends AbstractAlfrescoDistributedTest
|
|||||||
of(aclReaders));
|
of(aclReaders));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
public static void cleanupMasterSlave() throws Exception {
|
public static void cleanupMasterSlave() throws Exception {
|
||||||
master.stop();
|
master.stop();
|
||||||
@@ -134,7 +137,6 @@ public class contentStoreReplicationTest extends AbstractAlfrescoDistributedTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void contentStoreReplicationTest() throws Exception {
|
public void contentStoreReplicationTest() throws Exception {
|
||||||
// ADD 250 nodes and check they are replicated
|
// ADD 250 nodes and check they are replicated
|
||||||
|
Reference in New Issue
Block a user