use of com.alipay.sofa.isle.deployment.DeploymentDescriptor in project sofa-boot by alipay.
the class FailModuleTest method test.
@Test
public void test() {
ApplicationRuntimeModel applicationRuntimeModel = (ApplicationRuntimeModel) applicationContext.getBean(SofaBootConstants.APPLICATION);
// contains three Deployments
Assert.assertEquals(3, applicationRuntimeModel.getAllDeployments().size());
Assert.assertEquals(2, applicationRuntimeModel.getInstalled().size());
Assert.assertEquals(1, applicationRuntimeModel.getFailed().size());
// check module not in installed list
DeploymentDescriptor failModule = applicationRuntimeModel.getFailed().get(0);
Assert.assertEquals("com.alipay.sofa.fail", failModule.getModuleName());
Assert.assertFalse(applicationRuntimeModel.getInstalled().contains(failModule));
}
use of com.alipay.sofa.isle.deployment.DeploymentDescriptor in project sofa-boot by alipay.
the class FailModuleWithParallelTest method test.
@Test
public void test() {
ApplicationRuntimeModel applicationRuntimeModel = (ApplicationRuntimeModel) applicationContext.getBean(SofaBootConstants.APPLICATION);
// contains three Deployments
Assert.assertEquals(3, applicationRuntimeModel.getAllDeployments().size());
Assert.assertEquals(2, applicationRuntimeModel.getInstalled().size());
Assert.assertEquals(1, applicationRuntimeModel.getFailed().size());
// check module not in installed list
DeploymentDescriptor failModule = applicationRuntimeModel.getFailed().get(0);
Assert.assertEquals("com.alipay.sofa.fail", failModule.getModuleName());
Assert.assertFalse(applicationRuntimeModel.getInstalled().contains(failModule));
}
use of com.alipay.sofa.isle.deployment.DeploymentDescriptor in project sofa-boot by alipay.
the class SofaModuleProfileCheckerTest method test.
@Test
public void test() throws Exception {
// new DeploymentDescriptorConfiguration instance
DeploymentDescriptorConfiguration deploymentDescriptorConfiguration = new DeploymentDescriptorConfiguration(Collections.singletonList(SofaBootConstants.MODULE_NAME), Collections.singletonList(SofaBootConstants.REQUIRE_MODULE));
// test dev profile
Properties props = new Properties();
props.setProperty(SofaBootConstants.MODULE_NAME, "com.alipay.dal");
props.setProperty(SofaBootConstants.MODULE_PROFILE, "dev");
URL fileUrl = new URL("file:/demo/path/isle-module.config");
DeploymentDescriptor dd = DeploymentBuilder.build(fileUrl, props, deploymentDescriptorConfiguration, ApplicationRuntimeModelTest.class.getClassLoader());
Assert.assertTrue(sofaModuleProfileChecker.acceptModule(dd));
// test product profile
props = new Properties();
props.setProperty(SofaBootConstants.MODULE_NAME, "com.alipay.dal");
props.setProperty(SofaBootConstants.MODULE_PROFILE, "product");
fileUrl = new URL("file:/demo/path/isle-module.config");
dd = DeploymentBuilder.build(fileUrl, props, deploymentDescriptorConfiguration, ApplicationRuntimeModelTest.class.getClassLoader());
Assert.assertTrue(sofaModuleProfileChecker.acceptModule(dd));
// test !dev profile
props = new Properties();
props.setProperty(SofaBootConstants.MODULE_NAME, "com.alipay.dal");
props.setProperty(SofaBootConstants.MODULE_PROFILE, "!dev");
fileUrl = new URL("file:/demo/path/isle-module.config");
dd = DeploymentBuilder.build(fileUrl, props, deploymentDescriptorConfiguration, ApplicationRuntimeModelTest.class.getClassLoader());
Assert.assertFalse(sofaModuleProfileChecker.acceptModule(dd));
// test test,grey profile
props = new Properties();
props.setProperty(SofaBootConstants.MODULE_NAME, "com.alipay.dal");
props.setProperty(SofaBootConstants.MODULE_PROFILE, "dev,grey");
fileUrl = new URL("file:/demo/path/isle-module.config");
dd = DeploymentBuilder.build(fileUrl, props, deploymentDescriptorConfiguration, ApplicationRuntimeModelTest.class.getClassLoader());
Assert.assertTrue(sofaModuleProfileChecker.acceptModule(dd));
// test test,grey profile
props = new Properties();
props.setProperty(SofaBootConstants.MODULE_NAME, "com.alipay.dal");
props.setProperty(SofaBootConstants.MODULE_PROFILE, "test,grey");
fileUrl = new URL("file:/demo/path/isle-module.config");
dd = DeploymentBuilder.build(fileUrl, props, deploymentDescriptorConfiguration, ApplicationRuntimeModelTest.class.getClassLoader());
Assert.assertFalse(sofaModuleProfileChecker.acceptModule(dd));
// test no profile, default pass
props = new Properties();
props.setProperty(SofaBootConstants.MODULE_NAME, "com.alipay.dal");
fileUrl = new URL("file:/demo/path/isle-module.config");
dd = DeploymentBuilder.build(fileUrl, props, deploymentDescriptorConfiguration, ApplicationRuntimeModelTest.class.getClassLoader());
Assert.assertTrue(sofaModuleProfileChecker.acceptModule(dd));
}
use of com.alipay.sofa.isle.deployment.DeploymentDescriptor in project sofa-boot by alipay.
the class TestModelCreatingStage method getAllDeployments.
@Override
protected void getAllDeployments(ApplicationRuntimeModel application) throws IOException {
for (String prefix : modulePrefixes) {
Enumeration<URL> urls = appClassLoader.getResources(prefix + "/" + SofaBootConstants.SOFA_MODULE_FILE);
if (urls == null || !urls.hasMoreElements()) {
continue;
}
while (urls.hasMoreElements()) {
URL url = urls.nextElement();
UrlResource urlResource = new UrlResource(url);
Properties props = new Properties();
props.load(urlResource.getInputStream());
DeploymentDescriptorConfiguration deploymentDescriptorConfiguration = new DeploymentDescriptorConfiguration(Collections.singletonList(SofaBootConstants.MODULE_NAME), Collections.singletonList(SofaBootConstants.REQUIRE_MODULE));
DeploymentDescriptor dd = DeploymentBuilder.build(url, props, deploymentDescriptorConfiguration, appClassLoader);
if (application.isModuleDeployment(dd)) {
if (sofaModuleProfileChecker.acceptModule(dd)) {
application.addDeployment(dd);
} else {
application.addInactiveDeployment(dd);
}
}
}
}
}
use of com.alipay.sofa.isle.deployment.DeploymentDescriptor in project sofa-boot by alipay.
the class ModuleHealthChecker method isHealthy.
@Override
public Health isHealthy() {
Health.Builder builder = new Health.Builder();
ApplicationRuntimeModel application = applicationContext.getBean(SofaBootConstants.APPLICATION, ApplicationRuntimeModel.class);
for (DeploymentDescriptor deploymentDescriptor : application.getInstalled()) {
builder.withDetail(deploymentDescriptor.getName(), "passed");
}
for (DeploymentDescriptor deploymentDescriptor : application.getAllInactiveDeployments()) {
builder.withDetail(deploymentDescriptor.getName(), "inactive");
}
for (DeploymentDescriptor deploymentDescriptor : application.getFailed()) {
builder.withDetail(deploymentDescriptor.getName(), "failed");
}
if (application.getFailed().size() == 0) {
return builder.status(Status.UP).build();
} else {
return builder.status(Status.DOWN).build();
}
}
Aggregations