Given a war file, unplutofy:
- Removes all "servlet" elements that contain either "portlet-class" or a "param-name" element with value "portlet-name".
- Removes all "servlet-mapping" elements that contain either "PlutoInvoker" or a "servlet-name" element with value of the "portlet-name" element as defined in portlet.xml.
- Removes all "taglib" elements that contain "/portlet.tld".
- Removes all portlet*.tld files from the war.
Support for calling service from Ant, Maven, command-line, or via API.
Install Maven 2.
Install Git.
Change directory to your favorite directory and clone the repo:
git clone http://github.com/garysweaver/unplutofy.git
Run the build:
mvn clean install
Set the UNPLUTOFY_HOME environment variable to the base directory of the project. For example, for OS X with bash, you might add the following to your .bash_profile and restart Terminal.app:
export UNPLUTOFY_HOME=~/unplutofy
Test by doing the following in the project directory:
cd bin
unplutofy
Back up the war file before attempting to use this. For example:
cp (input_war) (input_war.bak)
Usage:
unplutofy (input_war) (output_war)
Add as a build plugin to your pom.xml:
<plugin>
<groupId>unplutofy</groupId>
<artifactId>unplutofy</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<id>unplutofy a war</id>
<phase>compile</phase>
<goals>
<goal>unplutofy</goal>
</goals>
<configuration>
<inputFile>some/path/to/input.war</inputFile>
<outputFile>some/path/to/output.war</outputFile>
</configuration>
</execution>
</executions>
</plugin>
When it asks you to install it, install the jar using the command it provides using the jar under the target directory (assuming you built it), then build again.
(Maven mojo has not been tested at time of writing.)
Copy target/unplutofy(version).jar to Ant's lib dir somewhere so Ant can get to it. Then add this to your build.xml:
<typedef name="unplutofy" classname="unplutofy.ant.task.UnplutofyTask"
classpath="classes" loaderref="classes"/>
<target name="unplutofy-war">
<unplutofy inputFile="some/path/to/input.war" outputFile="some/path/to/output.war"/>
</target>
(Ant task has not been tested at time of writing.)
If you get:
Exception in thread "main" java.lang.NoClassDefFoundError: unplutofy/commandline/UnplutofyCommand
Caused by: java.lang.ClassNotFoundException: unplutofy.commandline.UnplutofyCommand
It is because you didn't build it yet or it can't find the jar because of the name or you aren't in the bin directory. See build instructions above.
Read the code and understand what it does before executing it. Use these tools at your own risk.
Copyright (c) 2010 Gary S. Weaver, released under the MIT license.