diff options
Diffstat (limited to 'reference/logging-demo')
13 files changed, 609 insertions, 0 deletions
diff --git a/reference/logging-demo/.gitignore b/reference/logging-demo/.gitignore new file mode 100644 index 0000000..eeca7fe --- /dev/null +++ b/reference/logging-demo/.gitignore @@ -0,0 +1,3 @@ +/target/ +/build/ +/bin/ diff --git a/reference/logging-demo/pom.xml b/reference/logging-demo/pom.xml new file mode 100644 index 0000000..da22ff8 --- /dev/null +++ b/reference/logging-demo/pom.xml @@ -0,0 +1,270 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.logging</groupId> + <artifactId>logging-reference</artifactId> + <version>1.2.0-SNAPSHOT</version> + </parent> + + <artifactId>logging-demo</artifactId> + <packaging>war</packaging> + <!-- version>1.2.0-SNAPSHOT</version--> + <name>logging-demo</name> + + <properties> + <jackson-2-version>2.5.1</jackson-2-version> + <spring.version>4.3.6.RELEASE</spring.version> + </properties> + <build> + <plugins> + <!-- Checkstyle plugin - used to report on compliance with --> + <!-- the Google style guide. --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <version>3.6</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.2</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + </plugins> + <pluginManagement> + <plugins> + <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>1.0.0</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId> + org.apache.maven.plugins + </groupId> + <artifactId> + maven-compiler-plugin + </artifactId> + <versionRange> + [3.2,) + </versionRange> + <goals> + <goal>testCompile</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore></ignore> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + <dependencies> + <dependency> + <groupId>org.onap.logging</groupId> + <artifactId>logging-library</artifactId> + <version>1.2.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.onap.logging</groupId> + <artifactId>logging-mock-service</artifactId> + <version>1.2.0-SNAPSHOT</version> + </dependency> + + + <!-- https://jersey.java.net/documentation/latest/modules-and-dependencies.html --> + <dependency> + <groupId>javax.ws.rs</groupId> + <artifactId>javax.ws.rs-api</artifactId> + <version>2.0.1</version> + </dependency> + <dependency> + <groupId>org.glassfish.jersey.containers</groupId> + <artifactId>jersey-container-servlet</artifactId> + <version>2.23</version> + </dependency> + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-server</artifactId> + <version>2.23</version> + </dependency> + <dependency> + <groupId>org.glassfish.jersey.core</groupId> + <artifactId>jersey-client</artifactId> + <version>2.23</version> + </dependency> + <dependency> + <groupId>org.glassfish.jersey.media</groupId> + <artifactId>jersey-media-multipart</artifactId> + <version>2.23</version> + </dependency> + <!-- fixes http://stackoverflow.com/questions/23442440/messagebodyreader-not-found-for-media-type-application-json --> + <dependency> + <groupId>org.glassfish.jersey.media</groupId> + <artifactId>jersey-media-json-jackson</artifactId> + <version>2.23</version> + </dependency> + <!-- for spring injection in rest --> + <dependency> + <groupId>org.glassfish.jersey.ext</groupId> + <artifactId>jersey-spring3</artifactId> + <version>2.23</version> + <!-- for https://github.com/JakubStas/SpringWithSwagger/issues/2 --> + <exclusions> + <exclusion> + <artifactId>spring-context</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + <exclusion> + <artifactId>spring-core</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + <exclusion> + <artifactId>spring-web</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + <exclusion> + <artifactId>spring-beans</artifactId> + <groupId>org.springframework</groupId> + </exclusion> + </exclusions> + </dependency> + + <!-- json parsing --> +<!-- the core, which includes Streaming API, shared low-level abstractions (but NOT data-binding) --> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-core</artifactId> + <version>${jackson-2-version}</version> + </dependency> + + <!-- Just the annotations; use this dependency if you want to attach annotations + to classes without connecting them to the code. --> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-annotations</artifactId> + <version>${jackson-2-version}</version> +</dependency> + +<!-- databinding; ObjectMapper, JsonNode and related classes are here --> +<dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>${jackson-2-version}</version> +</dependency> + +<!-- smile (binary JSON). Other artifacts in this group do other formats. --> +<dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-smile</artifactId> + <version>${jackson-2-version}</version> +</dependency> +<!-- JAX-RS provider --> +<dependency> + <groupId>com.fasterxml.jackson.jaxrs</groupId> + <artifactId>jackson-jaxrs-json-provider</artifactId> + <version>${jackson-2-version}</version> +</dependency> +<!-- Support for JAX-B annotations as additional configuration --> +<dependency> + <groupId>com.fasterxml.jackson.module</groupId> + <artifactId>jackson-module-jaxb-annotations</artifactId> + <version>${jackson-2-version}</version> +</dependency> + <dependency> + <groupId>com.owlike</groupId> + <artifactId>genson</artifactId> + <version>1.1</version> + </dependency> + <!-- dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>javax.persistence</artifactId> + <version>2.0.0</version> + </dependency--> + + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.0.1</version> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aop</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-orm</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-oxm</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <version>${spring.version}</version> + <!--scope>test</scope--> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-aspects</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>aspectjrt</artifactId> + <version>1.8.1</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-tx</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + <version>${spring.version}</version> + </dependency> + <!--dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-web</artifactId> + <version>${spring.security.version}</version> + </dependency--> + <!-- dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <version>${spring.boot.version}</version> + </dependency--> + </dependencies> +</project> diff --git a/reference/logging-demo/src/main/java/META-INF/MANIFEST.MF b/reference/logging-demo/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/reference/logging-demo/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/reference/logging-demo/src/main/java/org/onap/logging/ApplicationService.java b/reference/logging-demo/src/main/java/org/onap/logging/ApplicationService.java new file mode 100644 index 0000000..09a8afb --- /dev/null +++ b/reference/logging-demo/src/main/java/org/onap/logging/ApplicationService.java @@ -0,0 +1,34 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.logging + * ================================================================================ + * Copyright © 2018 Amdocs + * 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========================================================= + */ +package org.onap.logging; + +import org.springframework.stereotype.Service; +@Service("daoFacade") +public class ApplicationService implements ApplicationServiceLocal { + + @Override + public Boolean health() { + Boolean health = true; + // TODO: check database + return health; + } + +} diff --git a/reference/logging-demo/src/main/java/org/onap/logging/ApplicationServiceLocal.java b/reference/logging-demo/src/main/java/org/onap/logging/ApplicationServiceLocal.java new file mode 100644 index 0000000..cc583c9 --- /dev/null +++ b/reference/logging-demo/src/main/java/org/onap/logging/ApplicationServiceLocal.java @@ -0,0 +1,27 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.logging + * ================================================================================ + * Copyright © 2018 Amdocs + * 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========================================================= + */ +package org.onap.logging; + +import java.util.List; + +public interface ApplicationServiceLocal { + Boolean health(); +} diff --git a/reference/logging-demo/src/main/java/org/onap/logging/RestApplication.java b/reference/logging-demo/src/main/java/org/onap/logging/RestApplication.java new file mode 100644 index 0000000..2b729ae --- /dev/null +++ b/reference/logging-demo/src/main/java/org/onap/logging/RestApplication.java @@ -0,0 +1,42 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.logging + * ================================================================================ + * Copyright © 2018 Amdocs + * 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========================================================= + */ + +package org.onap.logging; + +import java.util.HashSet; +import java.util.Set; + +import javax.ws.rs.ApplicationPath; +import javax.ws.rs.core.Application; + +@ApplicationPath("read") +public class RestApplication extends Application { + + @Override + public Set<Class<?>> getClasses() { + Set<Class<?>> classes = new HashSet<Class<?>>(); + // http://127.0.0.1:8180/logging-demo/rest/health/health + // http://127.0.0.1:8180/logging-demo/rest/read/test + classes.add(RestServiceImpl.class); + classes.add(RestHealthServiceImpl.class); + return classes; + } +} diff --git a/reference/logging-demo/src/main/java/org/onap/logging/RestHealthServiceImpl.java b/reference/logging-demo/src/main/java/org/onap/logging/RestHealthServiceImpl.java new file mode 100644 index 0000000..24b4486 --- /dev/null +++ b/reference/logging-demo/src/main/java/org/onap/logging/RestHealthServiceImpl.java @@ -0,0 +1,56 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.logging + * ================================================================================ + * Copyright © 2018 Amdocs + * 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========================================================= + */ +package org.onap.logging; + +import java.util.List; +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.MediaType; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import org.springframework.test.context.transaction.TransactionConfiguration; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Path("/health") +public class RestHealthServiceImpl extends Application { + @Inject + @Qualifier("daoFacade") + private ApplicationServiceLocal applicationServiceLocal; + + @GET + @Path("/health") + @Produces(MediaType.TEXT_HTML) + public String getHealth() { + return applicationServiceLocal.health().toString(); + } + +} + diff --git a/reference/logging-demo/src/main/java/org/onap/logging/RestServiceImpl.java b/reference/logging-demo/src/main/java/org/onap/logging/RestServiceImpl.java new file mode 100644 index 0000000..515662e --- /dev/null +++ b/reference/logging-demo/src/main/java/org/onap/logging/RestServiceImpl.java @@ -0,0 +1,59 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.logging + * ================================================================================ + * Copyright © 2018 Amdocs + * 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========================================================= + */ +package org.onap.logging; + +import java.util.List; +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.MediaType; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import org.springframework.test.context.transaction.TransactionConfiguration; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Path("/read") +public class RestServiceImpl extends Application { + @Inject + @Qualifier("daoFacade") + private ApplicationServiceLocal applicationServiceLocal; + + @GET + @Path("/test") + @Produces(MediaType.TEXT_HTML) + public String getTest() { + return "testing: " + applicationServiceLocal; + } + + private ApplicationServiceLocal getApplicationService() { + return applicationServiceLocal; + } +} + diff --git a/reference/logging-demo/src/main/webapp/META-INF/MANIFEST.MF b/reference/logging-demo/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/reference/logging-demo/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/reference/logging-demo/src/main/webapp/WEB-INF/servlet-context.xml b/reference/logging-demo/src/main/webapp/WEB-INF/servlet-context.xml new file mode 100644 index 0000000..18b1154 --- /dev/null +++ b/reference/logging-demo/src/main/webapp/WEB-INF/servlet-context.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans:beans xmlns="http://www.springframework.org/schema/mvc" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:beans="http://www.springframework.org/schema/beans" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/mvc + http://www.springframework.org/schema/mvc/spring-mvc.xsd + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/context + http://www.springframework.org/schema/context/spring-context.xsd"> + <annotation-driven /> +</beans:beans>
\ No newline at end of file diff --git a/reference/logging-demo/src/main/webapp/WEB-INF/spring.xml b/reference/logging-demo/src/main/webapp/WEB-INF/spring.xml new file mode 100644 index 0000000..fd3d6ab --- /dev/null +++ b/reference/logging-demo/src/main/webapp/WEB-INF/spring.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xmlns:context="http://www.springframework.org/schema/context" + xmlns:tx="http://www.springframework.org/schema/tx" + xmlns:p="http://www.springframework.org/schema/p" + xmlns:jpa="http://www.springframework.org/schema/data/jpa" + xmlns:aop="http://www.springframework.org/schema/aop" + xmlns:mvc="http://www.springframework.org/schema/mvc" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/util + http://www.springframework.org/schema/util/spring-util.xsd + http://www.springframework.org/schema/context + http://www.springframework.org/schema/context/spring-context.xsd + http://www.springframework.org/schema/tx + http://www.springframework.org/schema/tx/spring-tx.xsd + http://www.springframework.org/schema/data/jpa + http://www.springframework.org/schema/data/jpa/spring-jpa.xsd + http://www.springframework.org/schema/mvc + http://www.springframework.org/schema/mvc/spring-mvc.xsd + http://www.springframework.org/schema/aop + http://www.springframework.org/schema/aop/spring-aop.xsd" + default-lazy-init="true"> + + <context:annotation-config /> + <context:spring-configured /> + <!-- rest annotations --> + <mvc:annotation-driven /> + <!-- read in DAO's via Repository annotation --> + <context:component-scan base-package="org.onap.logging.*" use-default-filters="false" > + <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" /> + </context:component-scan> + <!-- Rest controllers --> + <context:component-scan base-package="org.onap.logging" /> +</beans> + + + diff --git a/reference/logging-demo/src/main/webapp/WEB-INF/web.xml b/reference/logging-demo/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..dd62a9c --- /dev/null +++ b/reference/logging-demo/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> + <session-config> + <session-timeout>30</session-timeout> + </session-config> + <welcome-file-list> + <welcome-file>index.jsp</welcome-file> + </welcome-file-list> + <!-- https://jersey.java.net/apidocs/2.0/jersey/org/glassfish/jersey/servlet/ServletContainer.html --> + <servlet> + <description>JAX-RS Tools Generated - Do not modify</description> + <servlet-name>JAX-RS Servlet</servlet-name> + <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> + <init-param> + <param-name>javax.ws.rs.Application</param-name> + <param-value>org.onap.logging.RestApplication</param-value> + </init-param> + <init-param> + <param-name>jersey.config.server.provider.packages</param-name> + <param-value>org.onap.logging</param-value> + </init-param> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>JAX-RS Servlet</servlet-name> + <url-pattern>/rest/*</url-pattern> + </servlet-mapping> + + <context-param> + <param-name>contextConfigLocation</param-name> + <param-value>/WEB-INF/spring.xml</param-value> + </context-param> + + <listener> + <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> + </listener> + + <listener> + <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> + </listener> +</web-app> diff --git a/reference/logging-demo/src/main/webapp/index.jsp b/reference/logging-demo/src/main/webapp/index.jsp new file mode 100644 index 0000000..734e905 --- /dev/null +++ b/reference/logging-demo/src/main/webapp/index.jsp @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> + <jsp:directive.page contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8" session="false"/> + <jsp:output doctype-root-element="html" + doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" + doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" + omit-xml-declaration="true" /> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>Test8</title> + +</head> +<body> +Test +</body> +</html> +</jsp:root>
\ No newline at end of file |