<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>2.1.0-SNAPSHOT</version>
    </parent>

   <artifactId>PortletHubDemo</artifactId>
   <packaging>war</packaging>

   <dependencies>
      <dependency>
        <groupId>org.apache.portals.pluto</groupId>
        <artifactId>portlet-api_2.0_spec</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>
      <dependency>
         <groupId>org.apache.portals.pluto</groupId>
         <artifactId>pluto-taglib</artifactId>
         <version>2.1.0-M3</version>
         <scope>provided</scope>
      </dependency>
   </dependencies>

   <build>
      <finalName>PortletHubDemo</finalName>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
               <source>1.6</source>
               <target>1.6</target>
            </configuration>
         </plugin>
         <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
               <archiveClasses>false</archiveClasses>
            </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>
                   <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
                 </configuration>
               </plugin>
               <!-- bind 'pluto:assemble' goal to 'generate-resources' lifecycle -->
               <plugin>
                  <groupId>org.apache.portals.pluto</groupId>
                  <artifactId>maven-pluto-plugin</artifactId>
                  <dependencies>
                     <dependency>
                        <groupId>org.apache.portals.pluto</groupId>
                        <artifactId>pluto-util</artifactId>
                        <version>${project.version}</version>
                        <scope>runtime</scope>
                     </dependency>
                  </dependencies>
                  <executions>
                     <execution>
                        <phase>generate-resources</phase>
                        <goals>
                           <goal>assemble</goal>
                        </goals>
                     </execution>
                  </executions>
               </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>
