Unplutofy provides a command-line tool, Ant task, Maven 2 plugin, and a Java API to remove the changes that Apache Pluto makes to a portlet war file during pluto-fication.
Java Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Given a war file, unplutofy:

  1. Removes all "servlet" elements that contain either "portlet-class" or a "param-name" element with value "portlet-name".
  2. 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.
  3. Removes all "taglib" elements that contain "/portlet.tld".
  4. Removes all portlet*.tld files from the war.


Support for calling service from Ant, Maven, command-line, or via API.

Prerequisites for Build

Install Maven 2.

Install Git.

Clone the Project's Git Repository

Change directory to your favorite directory and clone the repo:

git clone http://github.com/garysweaver/unplutofy.git


Run the build:

mvn clean install

Environment Variables for Command-line Usage

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

Command-line Usage

Back up the war file before attempting to use this. For example:

cp (input_war) (input_war.bak)


unplutofy (input_war) (output_war)

Maven 2 Plugin Usage

Add as a build plugin to your pom.xml:

                    <id>unplutofy a war</id>

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.)

Ant Task Usage

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"/>

(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.