<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.openecomp.sdc</groupId>
  <artifactId>webseal-simulator</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>

<parent>
<groupId>org.openecomp.sdc</groupId>
<artifactId>sdc-main</artifactId>
<version>1610.2.4</version>
</parent>

  
  	<properties>
		<jetty-version>9.2.10.v20150310</jetty-version>	
	</properties>
  
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>compile</scope>
	</dependency>
	
	<dependency>
	  <groupId>commons-httpclient</groupId>
	  <artifactId>commons-httpclient</artifactId>
	  <version>3.1</version>
	</dependency>
	
	<dependency>
    	<groupId>commons-logging</groupId>
        <artifactId>commons-logging-api</artifactId>
        <version>1.0.4</version>
	</dependency>

	<dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>2.0-SNAPSHOT</version>
        <scope>compile</scope>
	</dependency>	

	
	
	<!-- Jetty Proxy -->
	
	<dependency>
		<groupId>org.eclipse.jetty</groupId>
		<artifactId>jetty-webapp</artifactId>
		<version>9.2.10.v20150310</version>
		<scope>provided</scope>
	</dependency>
	
	
	<dependency>
		<groupId>org.eclipse.jetty</groupId>
		<artifactId>jetty-proxy</artifactId>
		<version>9.2.10.v20150310</version>		
		<scope>compile</scope>
	</dependency>

	<dependency>
		<groupId>org.eclipse.jetty</groupId>
		<artifactId>jetty-servlets</artifactId>
		<version>9.2.10.v20150310</version>
		<scope>compile</scope>
	</dependency>

	<!-- Proxy servlet -->
	
	
	<dependency>
	  <groupId>com.typesafe</groupId>
	  <artifactId>config</artifactId>
	  <version>1.0.2</version>
	  <scope>compile</scope>
	</dependency>
	
  </dependencies>
  <build>
    <finalName>WSSimulator</finalName>
    <plugins>
    		<!-- ================================================== -->
			<!-- Set the JDK compiler version.                      -->
			<!-- ================================================== -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.5.1</version>
				<inherited>true</inherited>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
    
    
    	<plugin>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
				<version>9.2.10.v20150310</version>						 
				<configuration>
					<contextPath>/</contextPath>
					<webApp>
						<contextPath>/</contextPath>
						<webInfIncludeJarPattern>.*/.*jersey-[^/]\.jar$</webInfIncludeJarPattern>
					</webApp>
					<war>WSSimulator.war</war>
				</configuration>
			</plugin>

    </plugins>
  </build>
</project>
