package com.constellio.sdk; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import java.io.File; import com.constellio.app.conf.AppLayerConfiguration; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.services.factories.ConstellioFactoriesDecorator; import com.constellio.data.conf.DataLayerConfiguration; import com.constellio.data.utils.Factory; import com.constellio.model.conf.ModelLayerConfiguration; import com.constellio.model.services.encrypt.EncryptionServices; import com.constellio.model.services.factories.ModelLayerFactory; import com.constellio.model.services.security.authentification.AuthenticationService; /** * Created by dakota on 11/9/15. */ public class SDKScriptUtils { public static AppLayerFactory startApplicationWithoutBackgroundProcessesAndAuthentication() { ConstellioFactoriesDecorator constellioFactoriesDecorator = new ConstellioFactoriesDecorator() { @Override public AppLayerConfiguration decorateAppLayerConfiguration(AppLayerConfiguration appLayerConfiguration) { return super.decorateAppLayerConfiguration(appLayerConfiguration); } @Override public ModelLayerConfiguration decorateModelLayerConfiguration(ModelLayerConfiguration modelLayerConfiguration) { File keyTxt = new File(modelLayerConfiguration.getDataLayerConfiguration().getSettingsFileSystemBaseFolder(), "key.txt"); modelLayerConfiguration = spy(modelLayerConfiguration); modelLayerConfiguration.setBatchProcessesEnabled(false); Factory<EncryptionServices> encryptionServicesFactory = new Factory<EncryptionServices>() { @Override public EncryptionServices get() { return new FakeEncryptionServices(); } }; when(modelLayerConfiguration.getEncryptionServicesFactory()).thenReturn(encryptionServicesFactory); when(modelLayerConfiguration.getConstellioEncryptionFile()).thenReturn(keyTxt); return modelLayerConfiguration; } @Override public DataLayerConfiguration decorateDataLayerConfiguration(DataLayerConfiguration dataLayerConfiguration) { dataLayerConfiguration.setBackgroundThreadsEnabled(false); return super.decorateDataLayerConfiguration(dataLayerConfiguration); } @Override public ModelLayerFactory decorateModelServicesFactory(final ModelLayerFactory modelLayerFactory) { modelLayerFactory.setAuthenticationService(new AuthenticationService() { @Override public boolean authenticate(String username, String password) { return modelLayerFactory.newUserServices().getUserCredential(username) != null; } @Override public boolean supportPasswordChange() { return false; } @Override public void changePassword(String username, String oldPassword, String newPassword) { } @Override public void changePassword(String username, String newPassword) { } @Override public void reloadServiceConfiguration() { } }); return modelLayerFactory; } }; AppLayerFactory appLayerFactory = ConstellioFactories.getInstance(constellioFactoriesDecorator).getAppLayerFactory(); return appLayerFactory; } public static AppLayerFactory startApplicationWithBatchProcesses() { ConstellioFactoriesDecorator constellioFactoriesDecorator = new ConstellioFactoriesDecorator() { @Override public AppLayerConfiguration decorateAppLayerConfiguration(AppLayerConfiguration appLayerConfiguration) { return super.decorateAppLayerConfiguration(appLayerConfiguration); } @Override public ModelLayerConfiguration decorateModelLayerConfiguration(ModelLayerConfiguration modelLayerConfiguration) { modelLayerConfiguration.setBatchProcessesEnabled(true); return super.decorateModelLayerConfiguration(modelLayerConfiguration); } @Override public DataLayerConfiguration decorateDataLayerConfiguration(DataLayerConfiguration dataLayerConfiguration) { dataLayerConfiguration.setBackgroundThreadsEnabled(false); return super.decorateDataLayerConfiguration(dataLayerConfiguration); } @Override public ModelLayerFactory decorateModelServicesFactory(final ModelLayerFactory modelLayerFactory) { modelLayerFactory.setAuthenticationService(new AuthenticationService() { @Override public boolean authenticate(String username, String password) { return modelLayerFactory.newUserServices().getUserCredential(username) != null; } @Override public boolean supportPasswordChange() { return false; } @Override public void changePassword(String username, String oldPassword, String newPassword) { } @Override public void changePassword(String username, String newPassword) { } @Override public void reloadServiceConfiguration() { } }); return modelLayerFactory; } }; AppLayerFactory appLayerFactory = ConstellioFactories.getInstance(constellioFactoriesDecorator).getAppLayerFactory(); return appLayerFactory; } public static AppLayerFactory startApplicationWithBatchProcessesAndBackgroundThreads() { ConstellioFactoriesDecorator constellioFactoriesDecorator = new ConstellioFactoriesDecorator() { @Override public AppLayerConfiguration decorateAppLayerConfiguration(AppLayerConfiguration appLayerConfiguration) { return super.decorateAppLayerConfiguration(appLayerConfiguration); } @Override public ModelLayerConfiguration decorateModelLayerConfiguration(ModelLayerConfiguration modelLayerConfiguration) { modelLayerConfiguration.setBatchProcessesEnabled(true); return super.decorateModelLayerConfiguration(modelLayerConfiguration); } @Override public DataLayerConfiguration decorateDataLayerConfiguration(DataLayerConfiguration dataLayerConfiguration) { dataLayerConfiguration.setBackgroundThreadsEnabled(true); return super.decorateDataLayerConfiguration(dataLayerConfiguration); } @Override public ModelLayerFactory decorateModelServicesFactory(final ModelLayerFactory modelLayerFactory) { modelLayerFactory.setAuthenticationService(new AuthenticationService() { @Override public boolean authenticate(String username, String password) { return modelLayerFactory.newUserServices().getUserCredential(username) != null; } @Override public boolean supportPasswordChange() { return false; } @Override public void changePassword(String username, String oldPassword, String newPassword) { } @Override public void changePassword(String username, String newPassword) { } @Override public void reloadServiceConfiguration() { } }); return modelLayerFactory; } }; AppLayerFactory appLayerFactory = ConstellioFactories.getInstance(constellioFactoriesDecorator).getAppLayerFactory(); return appLayerFactory; } }