mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-09-10 14:11:58 +00:00
ACS-9844 added extension point for providing additional context configuration files (#3507)
This commit is contained in:
@@ -25,6 +25,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.rest.api.tests;
|
package org.alfresco.rest.api.tests;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
import org.alfresco.repo.web.util.JettyComponent;
|
import org.alfresco.repo.web.util.JettyComponent;
|
||||||
|
|
||||||
public class EnterprisePublicApiTestFixture extends EnterpriseTestFixture
|
public class EnterprisePublicApiTestFixture extends EnterpriseTestFixture
|
||||||
@@ -40,32 +42,53 @@ public class EnterprisePublicApiTestFixture extends EnterpriseTestFixture
|
|||||||
public final static String[] CLASS_LOCATIONS = new String[]{"classpath*:/publicapi/lucene/"};
|
public final static String[] CLASS_LOCATIONS = new String[]{"classpath*:/publicapi/lucene/"};
|
||||||
|
|
||||||
private static EnterprisePublicApiTestFixture instance;
|
private static EnterprisePublicApiTestFixture instance;
|
||||||
|
private String[] customConfigLocations;
|
||||||
|
|
||||||
/* Note: synchronized for multi-threaded test access */
|
/* Note: synchronized for multi-threaded test access */
|
||||||
public synchronized static EnterprisePublicApiTestFixture getInstance(boolean createTestData) throws Exception
|
public synchronized static EnterprisePublicApiTestFixture getInstance(boolean createTestData, String... customConfigLocations)
|
||||||
{
|
{
|
||||||
if (instance == null)
|
if (instance == null)
|
||||||
{
|
{
|
||||||
instance = new EnterprisePublicApiTestFixture();
|
instance = new EnterprisePublicApiTestFixture(customConfigLocations);
|
||||||
|
try
|
||||||
|
{
|
||||||
instance.setup(createTestData);
|
instance.setup(createTestData);
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
String errorMessage = "Exception was thrown during setup EnterprisePublicApiTestFixture: " + e.getClass() + " - " + e.getMessage();
|
||||||
|
throw new RuntimeException(errorMessage, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EnterprisePublicApiTestFixture getInstance() throws Exception
|
public static EnterprisePublicApiTestFixture getInstance(String... customConfigLocations)
|
||||||
{
|
{
|
||||||
return getInstance(true);
|
return getInstance(true, customConfigLocations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EnterprisePublicApiTestFixture()
|
public static EnterprisePublicApiTestFixture getInstance()
|
||||||
|
{
|
||||||
|
return getInstance(true, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EnterprisePublicApiTestFixture getInstance(boolean createTestData)
|
||||||
|
{
|
||||||
|
return getInstance(createTestData, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private EnterprisePublicApiTestFixture(String... customConfigLocations)
|
||||||
{
|
{
|
||||||
super(CONFIG_LOCATIONS, CLASS_LOCATIONS, PORT, CONTEXT_PATH, PUBLIC_API_SERVLET_NAME, DEFAULT_NUM_MEMBERS_PER_SITE, false);
|
super(CONFIG_LOCATIONS, CLASS_LOCATIONS, PORT, CONTEXT_PATH, PUBLIC_API_SERVLET_NAME, DEFAULT_NUM_MEMBERS_PER_SITE, false);
|
||||||
|
this.customConfigLocations = customConfigLocations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected JettyComponent makeJettyComponent()
|
protected JettyComponent makeJettyComponent()
|
||||||
{
|
{
|
||||||
JettyComponent jettyComponent = new EnterpriseJettyComponent(getPort(), getContextPath(), getConfigLocations(), getClassLocations());
|
String[] configLocations = mergeLocations(getConfigLocations(), this.customConfigLocations);
|
||||||
|
JettyComponent jettyComponent = new EnterpriseJettyComponent(getPort(), getContextPath(), configLocations, getClassLocations());
|
||||||
return jettyComponent;
|
return jettyComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,4 +97,19 @@ public class EnterprisePublicApiTestFixture extends EnterpriseTestFixture
|
|||||||
{
|
{
|
||||||
return new RepoService(applicationContext);
|
return new RepoService(applicationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String[] mergeLocations(String[]... locations)
|
||||||
|
{
|
||||||
|
String[] mergedLocations = new String[0];
|
||||||
|
for (String[] location : locations)
|
||||||
|
{
|
||||||
|
if (location == null || location.length == 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
mergedLocations = Arrays.copyOf(mergedLocations, mergedLocations.length + location.length);
|
||||||
|
System.arraycopy(location, 0, mergedLocations, mergedLocations.length - location.length, location.length);
|
||||||
|
}
|
||||||
|
return mergedLocations;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -36,15 +36,21 @@ public class EnterpriseTestApi extends AbstractTestApi
|
|||||||
getTestFixture().getRandomNetwork();
|
getTestFixture().getRandomNetwork();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected String[] getCustomConfigLocations()
|
||||||
|
{
|
||||||
|
return new String[]{};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected TestFixture getTestFixture() throws Exception
|
protected TestFixture getTestFixture() throws Exception
|
||||||
{
|
{
|
||||||
return EnterprisePublicApiTestFixture.getInstance();
|
return EnterprisePublicApiTestFixture.getInstance(getCustomConfigLocations());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected TestFixture getTestFixture(boolean createTestData) throws Exception
|
protected TestFixture getTestFixture(boolean createTestData) throws Exception
|
||||||
{
|
{
|
||||||
return EnterprisePublicApiTestFixture.getInstance(createTestData);
|
return EnterprisePublicApiTestFixture.getInstance(createTestData, getCustomConfigLocations());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user