You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/10/30 15:14:01 UTC
svn commit: r469151 - in
/incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF:
applicationContext.xml servicemix.xml web.xml
Author: gnodet
Date: Mon Oct 30 06:14:00 2006
New Revision: 469151
URL: http://svn.apache.org/viewvc?view=rev&rev=469151
Log:
Extract jmx server configuration to easily derive a distribution from this war
Added:
incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/servicemix.xml
Modified:
incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/applicationContext.xml
incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/web.xml
Modified: incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/applicationContext.xml?view=diff&rev=469151&r1=469150&r2=469151
==============================================================================
--- incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/applicationContext.xml (original)
+++ incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/applicationContext.xml Mon Oct 30 06:14:00 2006
@@ -1,102 +1,85 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
-
- <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="location" value="classpath:servicemix-web-console.properties" />
- </bean>
-
- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- </bean>
-
- <bean id="server" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
- <property name="serviceUrl" value="${jmx-service-url}" />
- <property name="environmentMap">
- <map>
- <entry key="jmx.remote.credentials">
- <bean class="org.springframework.util.StringUtils" factory-method="commaDelimitedListToStringArray">
- <constructor-arg value="${jmx-username},${jmx-password}" />
- </bean>
- </entry>
- </map>
- </property>
+
+ <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
- <bean id="jmxProxy" abstract="true" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
+ <bean id="jmxProxy" abstract="true" class="org.springframework.jmx.access.MBeanProxyFactoryBean">
<property name="server" ref="server"/>
<property name="useStrictCasing" value="false" />
<property name="connectOnStartup" value="false" />
- </bean>
-
- <bean id="jdbcAuditorMBean" parent="jmxProxy">
- <property name="objectName" value="${jdbc-auditor-mbean-name}" />
- <property name="proxyInterface" value="org.apache.servicemix.jbi.audit.AuditorMBean" />
- </bean>
-
- <bean id="adminCommandsServiceMBean" parent="jmxProxy">
- <property name="objectName" value="${admin-commands-service-mbean-name}" />
- <property name="proxyInterface" value="org.apache.servicemix.jbi.framework.AdminCommandsServiceMBean" />
- </bean>
-
- <bean id="registryMBean" parent="jmxProxy">
- <property name="objectName" value="${registry-mbean-service-name}" />
- <property name="proxyInterface" value="org.apache.servicemix.jbi.framework.RegistryMBean" />
- </bean>
-
- <bean id="dotViewServiceMBean" parent="jmxProxy">
- <property name="objectName" value="${dot-view-mbean-service-name}" />
- <property name="proxyInterface" value="org.apache.servicemix.jbi.view.DotViewServiceMBean" />
- </bean>
-
- <bean id="proxyManager" class="org.apache.servicemix.web.model.ProxyManager">
- <constructor-arg ref="server" />
- </bean>
-
- <bean id="registry" class="org.apache.servicemix.web.model.Registry">
- <constructor-arg ref="proxyManager" />
- <constructor-arg ref="registryMBean" />
- </bean>
-
- <bean id="auditor" class="org.apache.servicemix.web.Auditor" scope="prototype">
- <constructor-arg ref="jdbcAuditorMBean" />
- </bean>
- <bean id="components" factory-bean="registry" factory-method="getComponents" scope="prototype" />
- <bean id="endpoints" factory-bean="registry" factory-method="getEndpoints" scope="prototype" />
- <bean id="serviceAssemblies" factory-bean="registry" factory-method="getServiceAssemblies" scope="prototype" />
- <bean id="serviceUnits" factory-bean="registry" factory-method="getServiceUnits" scope="prototype" />
- <bean id="sharedLibraries" factory-bean="registry" factory-method="getSharedLibraries" scope="prototype" />
- <bean id="component" class="org.apache.servicemix.web.ComponentFactoryBean">
+ </bean>
+
+ <bean id="jdbcAuditorMBean" parent="jmxProxy">
+ <property name="objectName" value="${jdbc-auditor-mbean-name}" />
+ <property name="proxyInterface" value="org.apache.servicemix.jbi.audit.AuditorMBean" />
+ </bean>
+
+ <bean id="adminCommandsServiceMBean" parent="jmxProxy">
+ <property name="objectName" value="${admin-commands-service-mbean-name}" />
+ <property name="proxyInterface" value="org.apache.servicemix.jbi.framework.AdminCommandsServiceMBean" />
+ </bean>
+
+ <bean id="registryMBean" parent="jmxProxy">
+ <property name="objectName" value="${registry-mbean-service-name}" />
+ <property name="proxyInterface" value="org.apache.servicemix.jbi.framework.RegistryMBean" />
+ </bean>
+
+ <bean id="dotViewServiceMBean" parent="jmxProxy">
+ <property name="objectName" value="${dot-view-mbean-service-name}" />
+ <property name="proxyInterface" value="org.apache.servicemix.jbi.view.DotViewServiceMBean" />
+ </bean>
+
+ <bean id="proxyManager" class="org.apache.servicemix.web.model.ProxyManager">
+ <constructor-arg ref="server" />
+ </bean>
+
+ <bean id="registry" class="org.apache.servicemix.web.model.Registry">
+ <constructor-arg ref="proxyManager" />
+ <constructor-arg ref="registryMBean" />
+ </bean>
+
+ <bean id="auditor" class="org.apache.servicemix.web.Auditor" scope="prototype">
+ <constructor-arg ref="jdbcAuditorMBean" />
+ </bean>
+ <bean id="components" factory-bean="registry" factory-method="getComponents" scope="prototype" />
+ <bean id="endpoints" factory-bean="registry" factory-method="getEndpoints" scope="prototype" />
+ <bean id="serviceAssemblies" factory-bean="registry" factory-method="getServiceAssemblies" scope="prototype" />
+ <bean id="serviceUnits" factory-bean="registry" factory-method="getServiceUnits" scope="prototype" />
+ <bean id="sharedLibraries" factory-bean="registry" factory-method="getSharedLibraries" scope="prototype" />
+ <bean id="component" class="org.apache.servicemix.web.ComponentFactoryBean">
+ <property name="registry" ref="registry" />
+ </bean>
+ <bean id="endpoint" class="org.apache.servicemix.web.EndpointFactoryBean">
+ <property name="registry" ref="registry" />
+ </bean>
+ <bean id="serviceUnit" class="org.apache.servicemix.web.ServiceUnitFactoryBean">
<property name="registry" ref="registry" />
- </bean>
- <bean id="endpoint" class="org.apache.servicemix.web.EndpointFactoryBean">
- <property name="registry" ref="registry" />
- </bean>
- <bean id="serviceUnit" class="org.apache.servicemix.web.ServiceUnitFactoryBean">
- <property name="registry" ref="registry" />
- </bean>
- <bean id="serviceAssembly" class="org.apache.servicemix.web.ServiceAssemblyFactoryBean">
- <property name="registry" ref="registry" />
- </bean>
- <bean id="sharedLibrary" class="org.apache.servicemix.web.SharedLibraryFactoryBean">
- <property name="registry" ref="registry" />
- </bean>
-
-</beans>
+ </bean>
+ <bean id="serviceAssembly" class="org.apache.servicemix.web.ServiceAssemblyFactoryBean">
+ <property name="registry" ref="registry" />
+ </bean>
+ <bean id="sharedLibrary" class="org.apache.servicemix.web.SharedLibraryFactoryBean">
+ <property name="registry" ref="registry" />
+ </bean>
+
+</beans>
Added: incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/servicemix.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/servicemix.xml?view=auto&rev=469151
==============================================================================
--- incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/servicemix.xml (added)
+++ incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/servicemix.xml Mon Oct 30 06:14:00 2006
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+ <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+ <property name="location" value="classpath:servicemix-web-console.properties" />
+ </bean>
+
+ <bean id="server" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
+ <property name="serviceUrl" value="${jmx-service-url}" />
+ <property name="environmentMap">
+ <map>
+ <entry key="jmx.remote.credentials">
+ <bean class="org.springframework.util.StringUtils" factory-method="commaDelimitedListToStringArray">
+ <constructor-arg value="${jmx-username},${jmx-password}" />
+ </bean>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+</beans>
Modified: incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/web.xml?view=diff&rev=469151&r1=469150&r2=469151
==============================================================================
--- incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/servicemix/trunk/servicemix-web-console/src/main/webapp/WEB-INF/web.xml Mon Oct 30 06:14:00 2006
@@ -1,108 +1,113 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
- version="2.4">
-
- <description>
- ServiceMix Console
- </description>
- <display-name>ServiceMix Console</display-name>
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <!-- Configuration of the SiteMesh Filter. -->
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <filter>
- <filter-name>sitemesh</filter-name>
- <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>sitemesh</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <!-- Expose Spring POJOs to JSP . -->
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <filter>
- <filter-name>spring</filter-name>
- <filter-class>org.apache.servicemix.web.filter.ApplicationContextFilter</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>spring</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <!-- ServiceMix servlets -->
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <!-- Spring listener. -->
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+ version="2.4">
+
+ <description>
+ ServiceMix Console
+ </description>
+ <display-name>ServiceMix Console</display-name>
+
+ <context-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>/WEB-INF/applicationContext.xml /WEB-INF/servicemix.xml</param-value>
+ </context-param>
+
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <!-- Configuration of the SiteMesh Filter. -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <filter>
+ <filter-name>sitemesh</filter-name>
+ <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>sitemesh</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <!-- Expose Spring POJOs to JSP . -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <filter>
+ <filter-name>spring</filter-name>
+ <filter-class>org.apache.servicemix.web.filter.ApplicationContextFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>spring</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <!-- ServiceMix servlets -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <!-- Spring listener. -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <listener>
+ <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
- </listener>
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <!-- Configuration of the Spring MVC dispatcher -->
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <servlet>
- <servlet-name>dispatcher</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>dispatcher</servlet-name>
- <url-pattern>*.action</url-pattern>
+ </listener>
+
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <!-- Configuration of the Spring MVC dispatcher -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <servlet>
+ <servlet-name>dispatcher</servlet-name>
+ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+ <load-on-startup>2</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>dispatcher</servlet-name>
+ <url-pattern>*.action</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
- <url-pattern>*.svg</url-pattern>
- </servlet-mapping>
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
-
- <error-page>
- <exception-type>java.lang.Exception</exception-type>
- <location>/error.jsp</location>
- </error-page>
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <!-- Factor out common headers in JSP pages -->
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <jsp-config>
- <jsp-property-group>
- <url-pattern>*.jsp</url-pattern>
- <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude>
- </jsp-property-group>
- </jsp-config>
-</web-app>
+ <url-pattern>*.svg</url-pattern>
+ </servlet-mapping>
+
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+
+ <error-page>
+ <exception-type>java.lang.Exception</exception-type>
+ <location>/error.jsp</location>
+ </error-page>
+
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <!-- Factor out common headers in JSP pages -->
+ <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <jsp-config>
+ <jsp-property-group>
+ <url-pattern>*.jsp</url-pattern>
+ <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude>
+ </jsp-property-group>
+ </jsp-config>
+</web-app>