[Major] Refactored StrolchConfiguration.xml to use environments

Now the agent requires an environment parameter to start, and the
configuration of that environment is used to load different sections of
the configuration file

Conflicts:
	src/main/webapp/WEB-INF/config/StrolchConfiguration.xml
This commit is contained in:
Robert von Burg 2014-08-13 16:13:46 +02:00
parent 39027f7371
commit a6341da79b
2 changed files with 86 additions and 80 deletions

View File

@ -7,6 +7,7 @@ import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener; import javax.servlet.annotation.WebListener;
import li.strolch.agent.api.StrolchAgent; import li.strolch.agent.api.StrolchAgent;
import li.strolch.runtime.configuration.StrolchEnvironment;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -23,9 +24,10 @@ public class StartupListener implements ServletContextListener {
String realPath = sce.getServletContext().getRealPath("/WEB-INF"); String realPath = sce.getServletContext().getRealPath("/WEB-INF");
File pathF = new File(realPath); File pathF = new File(realPath);
String environment = StrolchEnvironment.getEnvironmentFromEnvProperties(pathF);
logger.info("Starting Agent..."); logger.info("Starting Agent...");
this.agent = new StrolchAgent(); this.agent = new StrolchAgent();
this.agent.setup(pathF); this.agent.setup(environment, pathF);
this.agent.initialize(); this.agent.initialize();
this.agent.start(); this.agent.start();
logger.info("Agent started."); logger.info("Agent started.");

View File

@ -1,82 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<StrolchConfiguration> <StrolchConfiguration>
<Runtime> <env id="dev">
<applicationName>StrolchTutorialApp</applicationName> <Runtime>
<Properties> <applicationName>StrolchTutorialApp</applicationName>
<verbose>true</verbose> <Properties>
</Properties> <verbose>true</verbose>
</Runtime> </Properties>
<Component> </Runtime>
<name>RealmHandler</name> <Component>
<api>li.strolch.agent.api.RealmHandler</api> <name>RealmHandler</name>
<impl>li.strolch.agent.impl.DefaultRealmHandler</impl> <api>li.strolch.agent.api.RealmHandler</api>
<depends>PersistenceHandler</depends> <impl>li.strolch.agent.impl.DefaultRealmHandler</impl>
<Properties> <depends>PersistenceHandler</depends>
<dataStoreMode>TRANSIENT</dataStoreMode> <Properties>
<dataStoreFile>StrolchModel.xml</dataStoreFile> <dataStoreMode>TRANSIENT</dataStoreMode>
</Properties> <dataStoreFile>StrolchModel.xml</dataStoreFile>
</Component> </Properties>
<Component> </Component>
<name>ServiceHandler</name> <Component>
<api>li.strolch.service.api.ServiceHandler</api> <name>ServiceHandler</name>
<impl>li.strolch.service.api.DefaultServiceHandler</impl> <api>li.strolch.service.api.ServiceHandler</api>
<depends>RealmHandler</depends> <impl>li.strolch.service.api.DefaultServiceHandler</impl>
<depends>PrivilegeHandler</depends> <depends>RealmHandler</depends>
<Properties> <depends>PrivilegeHandler</depends>
<verbose>true</verbose> <Properties>
</Properties> <verbose>true</verbose>
</Component> </Properties>
<Component> </Component>
<name>PrivilegeHandler</name> <Component>
<api>li.strolch.runtime.privilege.StrolchPrivilegeHandler</api> <name>PrivilegeHandler</name>
<impl>li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler</impl> <api>li.strolch.runtime.privilege.StrolchPrivilegeHandler</api>
<Properties> <impl>li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler</impl>
<privilegeConfigFile>PrivilegeConfig.xml</privilegeConfigFile> <Properties>
</Properties> <privilegeConfigFile>PrivilegeConfig.xml</privilegeConfigFile>
</Component> </Properties>
<Component> </Component>
<name>PostInitializer</name> <Component>
<api>li.strolch.agent.api.PostInitializer</api> <name>PostInitializer</name>
<impl>li.strolch.tutorialwebapp.postinitializer.PostInitializer</impl> <api>li.strolch.agent.api.PostInitializer</api>
<depends>ServiceHandler</depends> <impl>li.strolch.tutorialwebapp.postinitializer.PostInitializer</impl>
<Properties> <depends>ServiceHandler</depends>
</Properties> <Properties>
</Component> </Properties>
<Component> </Component>
<name>PersistenceHandler</name> <Component>
<api>li.strolch.persistence.api.PersistenceHandler</api> <name>PersistenceHandler</name>
<impl>li.strolch.persistence.xml.XmlPersistenceHandler</impl> <api>li.strolch.persistence.api.PersistenceHandler</api>
<Properties> <impl>li.strolch.persistence.xml.XmlPersistenceHandler</impl>
<verbose>true</verbose> <Properties>
</Properties> <verbose>true</verbose>
</Component> </Properties>
<Component> </Component>
<name>EnumHandler</name> <Component>
<api>li.strolch.runtime.query.enums.EnumHandler</api> <name>EnumHandler</name>
<impl>li.strolch.runtime.query.enums.DefaultEnumHandler</impl> <api>li.strolch.runtime.query.enums.EnumHandler</api>
<depends>RealmHandler</depends> <impl>li.strolch.runtime.query.enums.DefaultEnumHandler</impl>
<Properties> <depends>RealmHandler</depends>
<realm>defaultRealm</realm> <Properties>
<salutations>Resource/Enumeration/salutations</salutations> <realm>defaultRealm</realm>
<sex>Resource/Enumeration/sex</sex> <salutations>Resource/Enumeration/salutations</salutations>
<religions>Resource/Enumeration/religions</religions> <sex>Resource/Enumeration/sex</sex>
</Properties> <religions>Resource/Enumeration/religions</religions>
</Component> </Properties>
<Component> </Component>
<name>RestfulHandler</name> <Component>
<api>li.strolch.rest.RestfulStrolchComponent</api> <name>RestfulHandler</name>
<impl>li.strolch.rest.RestfulStrolchComponent</impl> <api>li.strolch.rest.RestfulStrolchComponent</api>
<depends>SessionHandler</depends> <impl>li.strolch.rest.RestfulStrolchComponent</impl>
<Properties> <depends>SessionHandler</depends>
</Properties> <Properties>
</Component> <corsEnabled>true</corsEnabled>
<Component> <corsOrigin>http://localhost:8180</corsOrigin>
<name>SessionHandler</name> </Properties>
<api>li.strolch.rest.StrolchSessionHandler</api> </Component>
<impl>li.strolch.rest.DefaultStrolchSessionHandler</impl> <Component>
<depends>PrivilegeHandler</depends> <name>SessionHandler</name>
<Properties> <api>li.strolch.rest.StrolchSessionHandler</api>
<rememberUser>true</rememberUser> <impl>li.strolch.rest.DefaultStrolchSessionHandler</impl>
</Properties> <depends>PrivilegeHandler</depends>
</Component> <Properties>
<rememberUser>true</rememberUser>
</Properties>
</Component>
</env>
</StrolchConfiguration> </StrolchConfiguration>