diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index e14adef45..a02127e07 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -11,7 +11,7 @@ Search Analytics E2E Tests Test Project to test Search Service and Analytics Features on a complete setup of Alfresco, Share - 1.20 + 1.21 1.11 3.0.16 3.2.0 diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java index 3f6cdffe9..77c6d5f58 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java @@ -33,7 +33,6 @@ import org.apache.solr.core.SolrCore; import org.apache.solr.request.LocalSolrQueryRequest; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; -import org.junit.Before; import org.junit.BeforeClass; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -83,8 +82,9 @@ import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_VERSI * class hierarchy. Ideally this function should be retired in favour of better * annotations.. * - * @since solr 1.5 - * @author Michael Suzuki + * @since solr 1.4.1 + * @author Michael Suzuki + * @author Andrea Gazzarini */ @ThreadLeakLingering(linger = 5000) public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer @@ -92,8 +92,8 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer protected static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); protected String[] deadServers; - protected static SolrResponsesComparator solrComparator = new SolrResponsesComparator(); - protected static RandomSupplier solrRandomSupplier; + protected static SolrResponsesComparator SOLR_RESPONSE_COMPARATOR = new SolrResponsesComparator(); + protected static RandomSupplier SOLR_RANDOM_SUPPLIER; // to stress with higher thread counts and requests, make sure the junit // xml formatter is not being used (all output will be buffered before @@ -112,34 +112,26 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer * Test configs may use the ${hostContext} variable to access * this system property. *

- * */ @BeforeClass public static void setUpSolrTestProperties() { + SOLR_RANDOM_SUPPLIER = new RandomSupplier(); System.setProperty("alfresco.test", "true"); System.setProperty("solr.tests.maxIndexingThreads", "10"); System.setProperty("solr.tests.ramBufferSizeMB", "1024"); } - @Before - public void setupPerTest() - { - this.solrRandomSupplier = new RandomSupplier(); - } - - - public static String[] fieldNames = new String[] - { "n_ti1", "n_f1", "n_tf1", "n_d1", "n_td1", "n_l1", "n_tl1", "n_dt1", "n_tdt1" }; - + public static final String[] FIELD_NAMES = new String[] { "n_ti1", "n_f1", "n_tf1", "n_d1", "n_td1", "n_l1", "n_tl1", "n_dt1", "n_tdt1" }; protected static String[] getFieldNames() { - return fieldNames; + return FIELD_NAMES; } - protected void putHandleDefaults() { - solrComparator.putHandleDefaults(); + protected static void putHandleDefaults() + { + SOLR_RESPONSE_COMPARATOR.putHandleDefaults(); } /** @@ -147,8 +139,6 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer * @param query - query to execute * @param count - min number of results each shard must satisfy * @param waitMillis - total ms to wait - * @return - * @throws Exception */ public static boolean checkMinCountPerShard(Query query, int count, long waitMillis) throws SolrServerException,IOException { @@ -160,7 +150,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer for (SolrClient singleShard : shardedClients) { allShardCompliant = false; - int totalHits = 0; + int totalHits; int cycles = 1; while ((new Date()).getTime() < timeout && (!allShardCompliant)) { @@ -172,11 +162,11 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer } try { - Thread.sleep((long) (500 * cycles++)); + Thread.sleep(500 * cycles++); } catch (InterruptedException e) { - continue; + // Ignore } } } @@ -205,11 +195,6 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer /** * Waits until all cores (including shards) reach a count. - * - * @param query - * @param count - * @param waitMillis - * @throws Exception */ public static void waitForDocCountAllCores(Query query, int count, long waitMillis) throws Exception { @@ -230,12 +215,9 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer /** * Delele by query on all Clients - * - * @param q - * @throws Exception */ - public static void deleteByQueryAllClients(String q) throws Exception { - + public static void deleteByQueryAllClients(String q) throws Exception + { List clients = getStandaloneAndShardedClients(); for (SolrClient client : clients) { @@ -245,14 +227,11 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer /** * Gets the Default test client. - * - * @return */ protected static SolrClient getDefaultTestClient() { return solrCollectionNameToStandaloneClient.get(DEFAULT_TEST_CORENAME); } - protected static List getShardedClients() { @@ -266,7 +245,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer */ public static List getStandaloneAndShardedClients() { - List clients = new ArrayList(); + List clients = new ArrayList<>(); clients.addAll(solrCollectionNameToStandaloneClient.values()); clients.addAll(clientShards); return clients; @@ -275,17 +254,11 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer public static List getStandaloneClients() { - List clients = new ArrayList(); - clients.addAll(solrCollectionNameToStandaloneClient.values()); - return clients; + return new ArrayList<>(solrCollectionNameToStandaloneClient.values()); } /** * Waits for the doc count on the first core available, then checks all the Shards match. - * @param query - * @param count - * @param waitMillis - * @throws Exception */ public static void waitForDocCount(Query query, int count, long waitMillis) throws Exception { @@ -332,7 +305,8 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer return escapedField + ":" + value + " "; } - protected static String escapeQueryChars(String query) { + protected static String escapeQueryChars(String query) + { return query.replaceAll("\\:", "\\\\:") .replaceAll("\\{", "\\\\{") .replaceAll("\\}", "\\\\}"); @@ -341,7 +315,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer public static SolrQuery luceneToSolrQuery(Query query) { String[] terms = query.toString().split(" "); - String escapedQuery = new String(); + String escapedQuery = ""; for (String t : terms) { escapedQuery += escapeQueryClause(t); @@ -366,8 +340,10 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer waitForShardsCount(solrQuery, count, waitMillis, start); } - protected static void injectDocToShards(long txnId, long aclId, long dbId, String owner) throws Exception { - for(SolrClient clientShard : clientShards) { + protected static void injectDocToShards(long txnId, long aclId, long dbId, String owner) throws Exception + { + for(SolrClient clientShard : clientShards) + { SolrInputDocument doc = new SolrInputDocument(); String id = AlfrescoSolrDataModel.getNodeDocumentId(AlfrescoSolrDataModel.DEFAULT_TENANT, aclId, dbId); doc.addField(FIELD_SOLR4_ID, id); @@ -383,21 +359,20 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer /** * Gets the cores for the jetty instances - * @return */ protected static List getJettyCores(Collection runners) { - List cores = new ArrayList(); + List cores = new ArrayList<>(); for (JettySolrRunner jettySolrRunner : runners) { - jettySolrRunner.getCoreContainer().getCores().forEach(aCore -> cores.add(aCore)); + cores.addAll(jettySolrRunner.getCoreContainer().getCores()); } return cores; } protected static List getAdminHandlers(Collection runners) { - List coreAdminHandlers = new ArrayList(); + List coreAdminHandlers = new ArrayList<>(); for (JettySolrRunner jettySolrRunner : runners) { CoreContainer coreContainer = jettySolrRunner.getCoreContainer(); @@ -418,32 +393,27 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer List clients = getShardedClients(); SolrQuery query = luceneToSolrQuery(new TermQuery(new Term(FIELD_DOC_TYPE, SolrInformationServer.DOC_TYPE_NODE))); StringBuilder error = new StringBuilder(); - for (int i = 0; i < clients.size(); ++i) + for (SolrClient client : clients) { - SolrClient client = clients.get(i); - - QueryResponse response = client.query(query); int totalHits = (int) response.getResults().getNumFound(); - if(totalHits > 0) + if (totalHits > 0) { shardHit++; } - if(totalHits < count) + + if (totalHits < count) { - if (ignoreZero && totalHits == 0) - { - log.info(client+": have zero hits "); - } - else - { - error.append(" "+client+": "); - error.append("Expected nodes per shard greater than "+count+" found "+totalHits+" : "+query.toString()); + if (ignoreZero && totalHits == 0) { + log.info(client + ": have zero hits "); + } else { + error.append(" " + client + ": "); + error.append("Expected nodes per shard greater than " + count + " found " + totalHits + " : " + query.toString()); } } - log.info(client+": Hits "+totalHits); + log.info(client + ": Hits " + totalHits); } @@ -560,7 +530,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer protected String getShardsString() { - Random r = solrRandomSupplier.getRandomGenerator(); + Random r = SOLR_RANDOM_SUPPLIER.getRandomGenerator(); if (deadServers == null) return shards; @@ -610,7 +580,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer protected static SolrInputDocument addRandFields(SolrInputDocument sdoc) { - addFields(sdoc, solrRandomSupplier.getRandFields(getFieldNames(), solrRandomSupplier.getRandValues())); + addFields(sdoc, SOLR_RANDOM_SUPPLIER.getRandFields(getFieldNames(), SOLR_RANDOM_SUPPLIER.getRandValues())); return sdoc; } @@ -662,7 +632,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer { UpdateResponse controlRsp = add(client1, params, sdocs); UpdateResponse specificRsp = add(client2, params, sdocs); - solrComparator.compareSolrResponses(specificRsp, controlRsp); + SOLR_RESPONSE_COMPARATOR.compareSolrResponses(specificRsp, controlRsp); return specificRsp; } @@ -724,9 +694,6 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer /** * * Commits to the specified client, and optionally all shards - * @param client - * @param andShards - * @throws Exception */ protected static void commit(SolrClient client, boolean andShards) throws Exception { @@ -743,7 +710,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer protected static QueryResponse queryRandomShard(ModifiableSolrParams params) throws SolrServerException, IOException { - Random r = solrRandomSupplier.getRandomGenerator(); + Random r = SOLR_RANDOM_SUPPLIER.getRandomGenerator(); int which = r.nextInt(clientShards.size()); SolrClient client = clientShards.get(which); QueryResponse rsp = client.query(params); @@ -755,13 +722,13 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer params.set("distrib", "false"); QueryRequest request = getAlfrescoRequest(json, params); QueryResponse controlRsp = request.process(solrClient); - solrComparator.validateResponse(controlRsp); + SOLR_RESPONSE_COMPARATOR.validateResponse(controlRsp); if (andShards) { params.remove("distrib"); setDistributedParams(params); QueryResponse rsp = queryRandomShard(json, params); - solrComparator.compareResponses(rsp, controlRsp); + SOLR_RESPONSE_COMPARATOR.compareResponses(rsp, controlRsp); return rsp; } else @@ -772,7 +739,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer protected static QueryResponse queryRandomShard(String json, SolrParams params) throws SolrServerException, IOException { - Random r = solrRandomSupplier.getRandomGenerator(); + Random r = SOLR_RANDOM_SUPPLIER.getRandomGenerator(); int which = r.nextInt(clientShards.size()); SolrClient client = clientShards.get(which); QueryRequest request = getAlfrescoRequest(json, params); @@ -791,13 +758,13 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer */ protected QueryResponse query(SolrClient solrClient, boolean setDistribParams, SolrParams p) throws Exception { - Random r = solrRandomSupplier.getRandomGenerator(); + Random r = SOLR_RANDOM_SUPPLIER.getRandomGenerator(); final ModifiableSolrParams params = new ModifiableSolrParams(p); // TODO: look into why passing true causes fails params.set("distrib", "false"); final QueryResponse controlRsp = solrClient.query(params); - solrComparator.validateResponse(controlRsp); + SOLR_RESPONSE_COMPARATOR.validateResponse(controlRsp); params.remove("distrib"); if (setDistribParams) @@ -805,7 +772,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer QueryResponse rsp = queryRandomShard(params); - solrComparator.compareResponses(rsp, controlRsp); + SOLR_RESPONSE_COMPARATOR.compareResponses(rsp, controlRsp); if (stress > 0) { @@ -827,7 +794,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer QueryResponse rsp = client.query(new ModifiableSolrParams(params)); if (verifyStress) { - solrComparator.compareResponses(rsp, controlRsp); + SOLR_RESPONSE_COMPARATOR.compareResponses(rsp, controlRsp); } } catch (SolrServerException | IOException e) { @@ -865,7 +832,7 @@ public abstract class AbstractAlfrescoDistributedIT extends SolrITInitializer first = rsp; } else { - solrComparator.compareResponses(first, rsp); + SOLR_RESPONSE_COMPARATOR.compareResponses(first, rsp); } } diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java index b06df1a09..3bc5bd666 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java @@ -91,8 +91,8 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 //Standalone Tests protected static SolrCore defaultCore; - protected static final int clientConnectionTimeout = DEFAULT_CONNECTION_TIMEOUT;; - protected static final int clientSoTimeout = 90000;; + protected static final int clientConnectionTimeout = DEFAULT_CONNECTION_TIMEOUT; + protected static final int clientSoTimeout = 90000; protected static final String id = "id"; @@ -129,21 +129,22 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 jettyContainers = new HashMap<>(); nodeCnt = new AtomicInteger(0); - String serverName = testClassName; - currentTestName = serverName; + currentTestName = testClassName; String[] coreNames = new String[]{DEFAULT_TEST_CORENAME}; - distribSetUp(serverName); - RandomSupplier.RandVal.uniqueValues = new HashSet(); // reset random values - createServers(serverName, coreNames, numShards,solrcoreProperties); - System.setProperty("solr.solr.home", testDir.toPath().resolve(serverName).toString()); + distribSetUp(testClassName); + RandomSupplier.RandVal.uniqueValues = new HashSet<>(); // reset random values + createServers(testClassName, coreNames, numShards,solrcoreProperties); + System.setProperty("solr.solr.home", testDir.toPath().resolve(testClassName).toString()); } private static Properties addExplicitShardingProperty(Properties solrcoreProperties) { - if(solrcoreProperties == null){ + if(solrcoreProperties == null) + { solrcoreProperties = new Properties(); } + if(solrcoreProperties.getProperty("shard.method")==null) { solrcoreProperties.put("shard.method", "EXPLICIT_ID"); @@ -151,7 +152,8 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 return solrcoreProperties; } - public static void initSingleSolrServer(String testClassName, Properties solrcoreProperties) throws Throwable { + public static void initSingleSolrServer(String testClassName, Properties solrcoreProperties) throws Throwable + { initSolrServers(0,testClassName,solrcoreProperties); JettySolrRunner jsr = jettyContainers.get(testClassName); @@ -163,7 +165,8 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 { int i = 0; extras = new String[solrcoreProperties.size()*2]; - for (Map.Entry prop:solrcoreProperties.entrySet()) { + for (Map.Entry prop:solrcoreProperties.entrySet()) + { extras[i++] = "property."+prop.getKey(); extras[i++] = (String) prop.getValue(); } @@ -185,7 +188,7 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 destroyServers(); distribTearDown(); - boolean keepTests = Boolean.valueOf(System.getProperty("keep.tests")); + boolean keepTests = Boolean.parseBoolean(System.getProperty("keep.tests")); if (!keepTests) FileUtils.deleteDirectory(testDir); } catch (Exception e) @@ -203,7 +206,7 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 return System.getProperty("user.dir") + "/target/test-classes/test-files"; } - public static void distribSetUp(String serverName) throws Exception + public static void distribSetUp(String serverName) { SolrTestCaseJ4.resetExceptionIgnores(); // ignore anything with // ignore_exception in it @@ -213,7 +216,7 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 System.setProperty("solr.log.dir", testDir.toPath().resolve(serverName).toString()); } - public static void distribTearDown() throws Exception + public static void distribTearDown() { System.clearProperty("solr.directoryFactory"); System.clearProperty("solr.log.dir"); @@ -230,8 +233,6 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 /** * Creates a JettySolrRunner (if one didn't exist already). DOES NOT START IT. - * @return - * @throws Exception */ protected static JettySolrRunner createJetty(String jettyKey, boolean basicAuth) throws Exception { @@ -243,19 +244,13 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 { Path jettySolrHome = testDir.toPath().resolve(jettyKey); seedSolrHome(jettySolrHome); - JettySolrRunner jetty = createJetty(jettySolrHome.toFile(), null, null, false, 0, getSchemaFile(), basicAuth); - return jetty; + return createJetty(jettySolrHome.toFile(), null, null, false, 0, getSchemaFile(), basicAuth); } } /** * Adds the core config information to the jetty file system. * Its best to call this before calling start() on Jetty - * @param jettyKey - * @param sourceConfigName - * @param coreName - * @param additionalProperties - * @throws Exception */ protected static void addCoreToJetty(String jettyKey, String sourceConfigName, String coreName, Properties additionalProperties) throws Exception { @@ -289,17 +284,14 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 out.close(); in.close(); } - } - } /** * Starts jetty if its not already running - * @param jsr - * @throws Exception */ - protected static void startJetty(JettySolrRunner jsr) throws Exception { + protected static void startJetty(JettySolrRunner jsr) throws Exception + { if (!jsr.isRunning()) { jsr.start(); @@ -310,37 +302,40 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 { boolean basicAuth = additionalProperties != null ? Boolean.parseBoolean(additionalProperties.getProperty("BasicAuth", "false")) : false; - JettySolrRunner jsr = createJetty(jettyKey, basicAuth); jettyContainers.put(jettyKey, jsr); Properties properties = new Properties(); - if(additionalProperties != null && additionalProperties.size() > 0) { + if(additionalProperties != null && additionalProperties.size() > 0) + { properties.putAll(additionalProperties); properties.remove("shard.method"); } - for (int i = 0; i < coreNames.length; i++) + for (String coreName : coreNames) { - addCoreToJetty(jettyKey, coreNames[i], coreNames[i], properties); + addCoreToJetty(jettyKey, coreName, coreName, properties); } //Now start jetty startJetty(jsr); int jettyPort = jsr.getLocalPort(); - for (int i = 0; i < coreNames.length; i++) + for (String coreName : coreNames) { - String url = buildUrl(jettyPort) + "/" + coreNames[i]; + String url = buildUrl(jettyPort) + "/" + coreName; + log.info(url); - solrCollectionNameToStandaloneClient.put(coreNames[i], createNewSolrClient(url)); + + solrCollectionNameToStandaloneClient.put(coreName, createNewSolrClient(url)); } shardsArr = new String[numShards]; StringBuilder sb = new StringBuilder(); - if (additionalProperties == null) { + if (additionalProperties == null) + { additionalProperties = new Properties(); } String[] ranges = {"0-100", "100-200", "200-300", "300-400"}; @@ -382,6 +377,7 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 solrHomes.add(jetty.getSolrHome()); jetty.stop(); } + for (SolrClient jClients : solrCollectionNameToStandaloneClient.values()) { jClients.close(); @@ -409,25 +405,16 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 solrCollectionNameToStandaloneClient.clear(); } - public static JettySolrRunner createJetty(File solrHome, String dataDir, String shardList, boolean sslEnabled, int port, String schemaOverride, boolean basicAuth) throws Exception + public static JettySolrRunner createJetty(File solrHome, String dataDir, String shardList, boolean sslEnabled, int port, String schemaOverride, boolean basicAuth) { return createJetty(solrHome, dataDir, shardList, sslEnabled, port, schemaOverride, useExplicitNodeNames, basicAuth); } /** * Create a solr jetty server. - * - * @param solrHome - * @param dataDir - * @param shardList - * @param port - * @param schemaOverride - * @param explicitCoreNodeName - * @return - * @throws Exception */ public static JettySolrRunner createJetty(File solrHome, String dataDir, String shardList, boolean sslEnabled, int port, - String schemaOverride, boolean explicitCoreNodeName, boolean basicAuth) throws Exception + String schemaOverride, boolean explicitCoreNodeName, boolean basicAuth) { Properties props = new Properties(); if (schemaOverride != null) @@ -443,20 +430,21 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 { props.setProperty("coreNodeName", Integer.toString(nodeCnt.incrementAndGet())); } + SSLConfig sslConfig = new SSLConfig(sslEnabled, false, null, null, null, null); - JettyConfig config = null; + JettyConfig config; - if(basicAuth) { - System.out.println("###### adding basic auth ######"); + if(basicAuth) + { + log.info("###### adding basic auth ######"); config = JettyConfig.builder().setContext("/solr").setPort(port).withFilter(BasicAuthFilter.class, "/sql/*").stopAtShutdown(true).withSSLConfig(sslConfig).build(); } else { - System.out.println("###### no basic auth ######"); + log.info("###### no basic auth ######"); config = JettyConfig.builder().setContext("/solr").setPort(port).stopAtShutdown(true).withSSLConfig(sslConfig).build(); } - JettySolrRunner jetty = new JettySolrRunner(solrHome.getAbsolutePath(), props, config); - return jetty; + return new JettySolrRunner(solrHome.getAbsolutePath(), props, config); } /** @@ -510,11 +498,8 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 */ protected static void seedSolrHome(Path jettyHome) throws IOException { - String solrxml = getSolrXml(); - if (solrxml != null) - { - FileUtils.copyFile(new File(getTestFilesHome(), solrxml), jettyHome.resolve(getSolrXml()).toFile()); - } + FileUtils.copyFile(new File(getTestFilesHome(), getSolrXml()), jettyHome.resolve(getSolrXml()).toFile()); + //Add solr home conf folder with alfresco based configuration. FileUtils.copyDirectory(new File(getTestFilesHome() + "/conf"), jettyHome.resolve("conf").toFile()); // Add alfresco data model def @@ -547,36 +532,26 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 FileUtils.copyDirectory(coreSourceConfig.resolve("conf").toFile(), confDir.toFile()); } - protected void setupJettySolrHome(String coreName, Path jettyHome) throws IOException + public static class BasicAuthFilter implements Filter { - seedSolrHome(jettyHome); - Properties coreProperties = new Properties(); - coreProperties.setProperty("name", coreName); - coreProperties.setProperty("shard", "${shard:}"); - coreProperties.setProperty("collection", "${collection:" + coreName + "}"); - coreProperties.setProperty("config", "${solrconfig:solrconfig.xml}"); - coreProperties.setProperty("schema", "${schema:schema.xml}"); - coreProperties.setProperty("coreNodeName", "${coreNodeName:}"); - - writeCoreProperties(jettyHome.resolve("cores").resolve(coreName), coreProperties, coreName); - } - - public static class BasicAuthFilter implements Filter { - - public BasicAuthFilter() { + public BasicAuthFilter() + { } - public void init(FilterConfig config) { + public void init(FilterConfig config) + { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) - throws IOException, ServletException { + throws IOException, ServletException + { //Parse the basic auth filter String auth = ((HttpServletRequest)request).getHeader("Authorization"); - if(auth != null) { + if(auth != null) + { auth = auth.replace("Basic ", ""); byte[] bytes = Base64.getDecoder().decode(auth); String decodedBytes = new String(bytes); @@ -584,18 +559,24 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 String user = pair[0]; String password = pair[1]; //Just look for the hard coded user and password. - if (user.equals("test") && password.equals("pass")) { + if (user.equals("test") && password.equals("pass")) + { filterChain.doFilter(request, response); - } else { + } + else + { ((HttpServletResponse) response).sendError(HttpServletResponse.SC_FORBIDDEN); } - } else { + } + else + { ((HttpServletResponse) response).sendError(HttpServletResponse.SC_FORBIDDEN); } } - public void destroy() { + public void destroy() + { } } -} +} \ No newline at end of file