<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>
    <parent>
        <groupId>org.apache.portals.pluto</groupId>
        <artifactId>pluto</artifactId>
        <version>3.0-SNAPSHOT</version>
    </parent>

   <artifactId>PortletV3Demo</artifactId>
   <packaging>war</packaging>

   <dependencies>
      <dependency>
        <groupId>org.apache.portals.pluto</groupId>
        <artifactId>portlet-api</artifactId>
        <version>${project.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.portals.pluto</groupId>
         <artifactId>pluto-taglib</artifactId>
         <version>${project.version}</version>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.tomcat</groupId>
         <artifactId>tomcat-servlet-api</artifactId>
         <scope>provided</scope>
      </dependency>

      <!-- for eclipse JSP tooling purposes -->
      <dependency>
         <groupId>javax.servlet.jsp</groupId>
         <artifactId>jsp-api</artifactId>
         <version>2.1</version>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>org.apache.taglibs</groupId>
         <artifactId>taglibs-standard-spec</artifactId>
         <scope>provided</scope>
      </dependency>
      <dependency>
          <groupId>org.apache.taglibs</groupId>
          <artifactId>taglibs-standard-impl</artifactId>
          <scope>provided</scope>
      </dependency>
      <dependency>
          <groupId>org.apache.taglibs</groupId>
          <artifactId>taglibs-standard-jstlel</artifactId>
          <scope>provided</scope>
      </dependency>
   </dependencies>

   <build>
      <finalName>PortletV3Demo</finalName>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
               <source>1.7</source>
               <target>1.7</target>
            </configuration>
         </plugin>
         <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
               <archiveClasses>false</archiveClasses>
               <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
         </plugin>
      </plugins>
   </build>

   <profiles>
      <profile>
         <id>pluto</id>
         <activation>
           <property>
             <name>!alwaysActivate</name>
           </property>
         </activation>
    
         <dependencies>
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-spec</artifactId>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-impl</artifactId>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-jstlel</artifactId>
                <scope>compile</scope>
            </dependency>
         </dependencies>
         
         <build>
            <plugins>
               <plugin>
                 <artifactId>maven-war-plugin</artifactId>
                 <configuration>
                   <archiveClasses>false</archiveClasses>
                 </configuration>
               </plugin>
               <!-- workaround for war processing of m-r-r-plugin causing the generated NOTICE and LICENSE file to be put under WEB-INF/classes/META-INF -->
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-remote-resources-plugin</artifactId>
                   <executions>
                       <execution>
                           <goals>
                               <goal>process</goal>
                           </goals>
                           <configuration>
                               <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
                               <attached>false</attached>
                           </configuration>
                       </execution>
                   </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>

</project>
