Initial OpenECOMP MSO commit
Change-Id: Ia6a7574859480717402cc2f22534d9973a78fa6d
Signed-off-by: ChrisC <cc697w@intl.att.com>
diff --git a/bpmn/MSOCockpit/src/main/assembly/cockpit-build.xml b/bpmn/MSOCockpit/src/main/assembly/cockpit-build.xml
new file mode 100644
index 0000000..d623aa5
--- /dev/null
+++ b/bpmn/MSOCockpit/src/main/assembly/cockpit-build.xml
@@ -0,0 +1,91 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP MSO
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<assembly
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd">
+ <id>cockpit-build</id>
+
+ <formats>
+ <format>war</format>
+ </formats>
+
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <dependencySets>
+ <dependencySet>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>org.camunda.bpm.webapp:camunda-webapp-jboss-standalone</include>
+ </includes>
+ <unpack>true</unpack>
+ <unpackOptions>
+ <excludes>
+ <exclude>WEB-INF/applicationContext.xml</exclude>
+ <exclude>WEB-INF/web.xml</exclude>
+ <exclude>WEB-INF/jboss-deployment-structure.xml</exclude>
+ </excludes>
+ </unpackOptions>
+ <scope>runtime</scope>
+ <useProjectArtifact>false</useProjectArtifact>
+ </dependencySet>
+
+ <!-- Here is where cockpit plugins are embedded -->
+
+ <dependencySet>
+ <outputDirectory>/WEB-INF/lib</outputDirectory>
+ <includes>
+ <!-- The URN Mapping plugin -->
+ <!-- <include>com.att.camunda.bpm.cockpit.plugin:cockpit-urnmap-plugin</include> -->
+
+ <!-- for MSO Logging -->
+ <include>org.openecomp.mso:logger</include>
+ <include>ch.qos.logback:logback-core</include>
+ <include>ch.qos.logback:logback-classic</include>
+ <include>com.att.eelf:eelf-core</include>
+
+ <!-- Included so the cockpit can deserialize and display core
+ class objects, like MSOWorkflowException -->
+ <include>org.openecomp.mso:MSOCoreBPMN</include>
+ </includes>
+ <unpack>false</unpack>
+ <scope>runtime</scope>
+ <useProjectArtifact>false</useProjectArtifact>
+ </dependencySet>
+ </dependencySets>
+
+ <!-- We provide our own versions of the following files -->
+
+ <files>
+ <file>
+ <source>src/main/resources/WEB-INF/applicationContext.xml</source>
+ <outputDirectory>/WEB-INF</outputDirectory>
+ </file>
+ <file>
+ <source>src/main/resources/WEB-INF/web.xml</source>
+ <outputDirectory>/WEB-INF</outputDirectory>
+ </file>
+ <file>
+ <source>src/main/resources/WEB-INF/jboss-deployment-structure.xml</source>
+ <outputDirectory>/WEB-INF</outputDirectory>
+ </file>
+ </files>
+</assembly>
diff --git a/bpmn/MSOCockpit/src/main/resources/WEB-INF/applicationContext.xml b/bpmn/MSOCockpit/src/main/resources/WEB-INF/applicationContext.xml
new file mode 100644
index 0000000..fd91391
--- /dev/null
+++ b/bpmn/MSOCockpit/src/main/resources/WEB-INF/applicationContext.xml
@@ -0,0 +1,111 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP MSO
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:activiti="http://www.activiti.org/schema/spring/components"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+
+ <!--
+ <bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
+ <property name="targetDataSource">
+ <bean class="org.apache.commons.dbcp.BasicDataSource">
+ <property name="driverClassName" value="org.h2.Driver" />
+ <property name="url" value="jdbc:h2:mem:process-engine;MVCC=TRUE;TRACE_LEVEL_FILE=0" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
+ </bean>
+ </property>
+ </bean>
+ -->
+
+ <!-- Added for MSO: Use the datasource defined in the JBoss configuration -->
+ <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
+ <property name="jndiName" value="java:jboss/datasources/ProcessEngine"/>
+ </bean>
+
+ <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
+ <property name="dataSource" ref="dataSource" />
+ </bean>
+
+ <bean id="processEngineConfiguration" class="org.camunda.bpm.engine.spring.SpringProcessEngineConfiguration">
+ <property name="processEngineName" value="default" />
+ <property name="dataSource" ref="dataSource" />
+ <property name="transactionManager" ref="transactionManager" />
+ <property name="databaseSchemaUpdate" value="true" />
+ <property name="jobExecutorActivate" value="false" />
+ <property name="deploymentResources" value="classpath*:bpmn/*.bpmn" />
+ <property name="authorizationEnabled" value="true" />
+ <property name="failedJobCommandFactory">
+ <bean class="org.camunda.bpm.engine.impl.jobexecutor.FoxFailedJobCommandFactory" />
+ </property>
+ <property name="idGenerator">
+ <bean class="org.camunda.bpm.engine.impl.persistence.StrongUuidGenerator" />
+ </property>
+ <property name="processEnginePlugins">
+ <list>
+ <!--<ref bean="ldapIdentityProviderPlugin" />-->
+ <!--<ref bean="administratorAuthorizationPlugin" />-->
+ <bean id="spinPlugin" class="org.camunda.spin.plugin.impl.SpinProcessEnginePlugin" />
+ <bean id="connectPlugin" class="org.camunda.connect.plugin.impl.ConnectProcessEnginePlugin" />
+ </list>
+ </property>
+ <!-- Added for MSO: Set the history level to full -->
+ <property name="historyLevel" value="HISTORY_LEVEL_FULL" />
+ </bean>
+
+ <!-- ldap identity provider (deactivated, uncomment plugin in processEngineConfiguration to activate) -->
+ <bean id="ldapIdentityProviderPlugin" class="org.camunda.bpm.identity.impl.ldap.plugin.LdapIdentityProviderPlugin">
+ <property name="serverUrl" value="ldap://localhost:3433/" />
+ <property name="managerDn" value="uid=daniel,ou=office-berlin,o=camunda,c=org" />
+ <property name="managerPassword" value="daniel" />
+ <property name="baseDn" value="o=camunda,c=org" />
+
+ <property name="userSearchBase" value="" />
+ <property name="userSearchFilter" value="(objectclass=person)" />
+ <property name="userIdAttribute" value="uid" />
+ <property name="userFirstnameAttribute" value="cn" />
+ <property name="userLastnameAttribute" value="sn" />
+ <property name="userEmailAttribute" value="mail" />
+ <property name="userPasswordAttribute" value="userpassword" />
+
+ <property name="groupSearchBase" value="" />
+ <property name="groupSearchFilter" value="(objectclass=groupOfNames)" />
+ <property name="groupIdAttribute" value="ou" />
+ <property name="groupNameAttribute" value="cn" />
+ <property name="groupMemberAttribute" value="member" />
+ </bean>
+
+ <bean id="administratorAuthorizationPlugin" class="org.camunda.bpm.engine.impl.plugin.AdministratorAuthorizationPlugin">
+ <property name="administratorUserName" value="admin" />
+ </bean>
+
+ <bean id="processEngine" class="org.camunda.bpm.engine.spring.ProcessEngineFactoryBean">
+ <property name="processEngineConfiguration" ref="processEngineConfiguration" />
+ </bean>
+
+ <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
+ <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />
+ <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />
+ <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />
+ <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />
+</beans>
diff --git a/bpmn/MSOCockpit/src/main/resources/WEB-INF/jboss-deployment-structure.xml b/bpmn/MSOCockpit/src/main/resources/WEB-INF/jboss-deployment-structure.xml
new file mode 100644
index 0000000..d183019
--- /dev/null
+++ b/bpmn/MSOCockpit/src/main/resources/WEB-INF/jboss-deployment-structure.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP MSO
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<jboss-deployment-structure>
+ <deployment>
+ <exclusions>
+ <module name="org.jboss.resteasy.resteasy-jackson-provider" />
+ <module name="org.jboss.resteasy.resteasy-jettison-provider" />
+
+ <!-- Added for MSO: logging -->
+ <module name="org.apache.log4j" />
+ <module name="org.slf4j" />
+ <module name="org.slf4j.impl" />
+ </exclusions>
+ </deployment>
+</jboss-deployment-structure>
diff --git a/bpmn/MSOCockpit/src/main/resources/WEB-INF/web.xml b/bpmn/MSOCockpit/src/main/resources/WEB-INF/web.xml
new file mode 100644
index 0000000..e9a9498
--- /dev/null
+++ b/bpmn/MSOCockpit/src/main/resources/WEB-INF/web.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP MSO
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <display-name>camunda bpm webapp</display-name>
+
+ <context-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>/WEB-INF/applicationContext.xml</param-value>
+ </context-param>
+
+ <!-- Added for MSO: use our log4j configuration file -->
+ <context-param>
+ <param-name>log.configuration</param-name>
+ <param-value>logback.bpmn.xml</param-value>
+ </context-param>
+
+ <listener>
+ <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+ </listener>
+
+ <!-- cockpit bootstrap listener -->
+ <listener>
+ <listener-class>org.camunda.bpm.cockpit.impl.web.bootstrap.CockpitContainerBootstrap</listener-class>
+ </listener>
+
+ <!-- admin bootstrap listener -->
+ <listener>
+ <listener-class>org.camunda.bpm.admin.impl.web.bootstrap.AdminContainerBootstrap</listener-class>
+ </listener>
+
+ <!-- tasklist bootstrap listener -->
+ <listener>
+ <listener-class>org.camunda.bpm.tasklist.impl.web.bootstrap.TasklistContainerBootstrap</listener-class>
+ </listener>
+
+ <!-- Authentication filter -->
+ <filter>
+ <filter-name>Authentication Filter</filter-name>
+ <filter-class>org.camunda.bpm.webapp.impl.security.auth.AuthenticationFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>Authentication Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ <dispatcher>REQUEST</dispatcher>
+ </filter-mapping>
+
+ <!-- Security filter -->
+ <filter>
+ <filter-name>SecurityFilter</filter-name>
+ <filter-class>org.camunda.bpm.webapp.impl.security.filter.SecurityFilter</filter-class>
+ <init-param>
+ <param-name>configFile</param-name>
+ <param-value>/WEB-INF/securityFilterRules.json</param-value>
+ </init-param>
+ </filter>
+ <filter-mapping>
+ <filter-name>SecurityFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ <dispatcher>REQUEST</dispatcher>
+ </filter-mapping>
+
+ <!-- engines filter -->
+ <filter>
+ <filter-name>Engines Filter</filter-name>
+ <filter-class>org.camunda.bpm.webapp.impl.engine.ProcessEnginesFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>Engines Filter</filter-name>
+ <url-pattern>/app/*</url-pattern>
+ <dispatcher>REQUEST</dispatcher>
+ </filter-mapping>
+
+ <!-- REST cache control filter -->
+ <filter>
+ <filter-name>CacheControlFilter</filter-name>
+ <filter-class>org.camunda.bpm.engine.rest.filter.CacheControlFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>CacheControlFilter</filter-name>
+ <url-pattern>/api/*</url-pattern>
+ </filter-mapping>
+
+ <!-- cockpit rest api -->
+ <servlet>
+ <servlet-name>Cockpit Api</servlet-name>
+ <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
+ <init-param>
+ <param-name>javax.ws.rs.Application</param-name>
+ <param-value>org.camunda.bpm.cockpit.impl.web.CockpitApplication</param-value>
+ </init-param>
+ <init-param>
+ <param-name>resteasy.servlet.mapping.prefix</param-name>
+ <param-value>/api/cockpit</param-value>
+ </init-param>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Cockpit Api</servlet-name>
+ <url-pattern>/api/cockpit/*</url-pattern>
+ </servlet-mapping>
+
+ <!-- admin rest api -->
+ <servlet>
+ <servlet-name>Admin Api</servlet-name>
+ <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
+ <init-param>
+ <param-name>javax.ws.rs.Application</param-name>
+ <param-value>org.camunda.bpm.admin.impl.web.AdminApplication</param-value>
+ </init-param>
+ <init-param>
+ <param-name>resteasy.servlet.mapping.prefix</param-name>
+ <param-value>/api/admin</param-value>
+ </init-param>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Admin Api</servlet-name>
+ <url-pattern>/api/admin/*</url-pattern>
+ </servlet-mapping>
+
+ <!-- tasklist rest api -->
+ <servlet>
+ <servlet-name>Tasklist Api</servlet-name>
+ <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
+ <init-param>
+ <param-name>javax.ws.rs.Application</param-name>
+ <param-value>org.camunda.bpm.tasklist.impl.web.TasklistApplication</param-value>
+ </init-param>
+ <init-param>
+ <param-name>resteasy.servlet.mapping.prefix</param-name>
+ <param-value>/api/tasklist</param-value>
+ </init-param>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Tasklist Api</servlet-name>
+ <url-pattern>/api/tasklist/*</url-pattern>
+ </servlet-mapping>
+
+ <!-- engine rest api (embedded) -->
+ <servlet>
+ <servlet-name>Engine Api</servlet-name>
+ <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
+ <init-param>
+ <param-name>javax.ws.rs.Application</param-name>
+ <param-value>org.camunda.bpm.webapp.impl.engine.EngineRestApplication</param-value>
+ </init-param>
+ <init-param>
+ <param-name>resteasy.servlet.mapping.prefix</param-name>
+ <param-value>/api/engine</param-value>
+ </init-param>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Engine Api</servlet-name>
+ <url-pattern>/api/engine/*</url-pattern>
+ </servlet-mapping>
+</web-app>