mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
125603 rmunteanu: Merged 5.1.1 (5.1.1) to 5.1.N (5.1.2) 125484 slanglois: MNT-16155 Update source headers - remove old Copyrights from Java and JSP dource files git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@125781 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
149 lines
5.0 KiB
Java
149 lines
5.0 KiB
Java
|
|
package org.alfresco.repo.dictionary;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertFalse;
|
|
import static org.junit.Assert.assertNotNull;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
|
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
|
import org.alfresco.service.cmr.dictionary.CustomModelDefinition;
|
|
import org.alfresco.service.cmr.dictionary.CustomModelService;
|
|
import org.alfresco.service.namespace.QName;
|
|
import org.alfresco.util.ApplicationContextHelper;
|
|
import org.junit.After;
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
import org.springframework.context.ApplicationContext;
|
|
|
|
/**
|
|
* Tests custom model expected behaviour after the repo server restarts.
|
|
*
|
|
* @author Jamal Kaabi-Mofrad
|
|
*/
|
|
public class CustomModelRepoRestartTest
|
|
{
|
|
private CustomModelService customModelService;
|
|
private RetryingTransactionHelper transactionHelper;
|
|
private String modelName;
|
|
|
|
@Before
|
|
public void setUp() throws Exception
|
|
{
|
|
getCtxAndSetBeans();
|
|
modelName = System.currentTimeMillis() + "testCustomModel";
|
|
}
|
|
|
|
@After
|
|
public void tearDown() throws Exception
|
|
{
|
|
transactionHelper.doInTransaction(new RetryingTransactionCallback<Void>()
|
|
{
|
|
public Void execute() throws Exception
|
|
{
|
|
try
|
|
{
|
|
// Deactivate the model
|
|
customModelService.deactivateCustomModel(modelName);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Ignore
|
|
}
|
|
return null;
|
|
}
|
|
});
|
|
|
|
transactionHelper.doInTransaction(new RetryingTransactionCallback<Void>()
|
|
{
|
|
public Void execute() throws Exception
|
|
{
|
|
try
|
|
{
|
|
// Delete the model
|
|
customModelService.deleteCustomModel(modelName);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// we did our best, so ignore
|
|
}
|
|
return null;
|
|
}
|
|
});
|
|
|
|
AuthenticationUtil.clearCurrentSecurityContext();
|
|
}
|
|
|
|
private void getCtxAndSetBeans()
|
|
{
|
|
ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();
|
|
this.customModelService = ctx.getBean("customModelService", CustomModelService.class);
|
|
this.transactionHelper = ctx.getBean("retryingTransactionHelper", RetryingTransactionHelper.class);
|
|
AuthenticationUtil.setAdminUserAsFullyAuthenticatedUser();
|
|
}
|
|
|
|
@Test
|
|
public void testActivateModelAndRestartRepo() throws Exception
|
|
{
|
|
final long timeMillis = System.currentTimeMillis();
|
|
final String uri = "http://www.alfresco.org/model/testcmmrestartnamespace" + timeMillis;
|
|
final String prefix = "testcmmrestart" + timeMillis;
|
|
|
|
final M2Model model = M2Model.createModel(prefix + QName.NAMESPACE_PREFIX + modelName);
|
|
model.createNamespace(uri, prefix);
|
|
|
|
// Create the model
|
|
CustomModelDefinition modelDefinition = transactionHelper.doInTransaction(new RetryingTransactionCallback<CustomModelDefinition>()
|
|
{
|
|
public CustomModelDefinition execute() throws Exception
|
|
{
|
|
return customModelService.createCustomModel(model, false);
|
|
}
|
|
});
|
|
|
|
assertNotNull(modelDefinition);
|
|
assertEquals(modelName, modelDefinition.getName().getLocalName());
|
|
assertFalse(modelDefinition.isActive());
|
|
|
|
// Activate the model
|
|
transactionHelper.doInTransaction(new RetryingTransactionCallback<Void>()
|
|
{
|
|
public Void execute() throws Exception
|
|
{
|
|
customModelService.activateCustomModel(modelName);
|
|
return null;
|
|
}
|
|
});
|
|
|
|
// Retrieve the model
|
|
modelDefinition = getModel(modelName);
|
|
assertNotNull(modelDefinition);
|
|
assertEquals(modelName, modelDefinition.getName().getLocalName());
|
|
assertTrue(modelDefinition.isActive());
|
|
|
|
// Close the application context
|
|
ApplicationContextHelper.closeApplicationContext();
|
|
// Get the application context and set the beans
|
|
getCtxAndSetBeans();
|
|
|
|
// Retrieve the model after the server restart
|
|
modelDefinition = getModel(modelName);
|
|
assertNotNull(modelDefinition);
|
|
assertEquals(modelName, modelDefinition.getName().getLocalName());
|
|
assertTrue(modelDefinition.isActive());
|
|
}
|
|
|
|
private CustomModelDefinition getModel(final String modelName)
|
|
{
|
|
return transactionHelper.doInTransaction(new RetryingTransactionCallback<CustomModelDefinition>()
|
|
{
|
|
public CustomModelDefinition execute() throws Exception
|
|
{
|
|
return customModelService.getCustomModel(modelName);
|
|
}
|
|
});
|
|
}
|
|
}
|