In liferay plugins, it is possible to take an existing plugin and create another one that extends the original one keeping your changes separated from the plugin source code. This makes it possible to migrate to newer versions of the plugin easily keeping your changes.
The mechanism, explained by Jorge is the following:
The way it works is super simple, because a plugin is much simpler than the core and does not need the same complex mechanisms to extend it. Here are the steps:
1. Create a new empty plugin in the Plugins SDK
2. Copy inside the original WAR of the plugin you want to extend
3. Add an ant target that merges any files inside the plugin with the WAR (copy this target from the SUN Sample portlets in Liferay's SVN)
4. Add any files you want to add or overwrite to the original plugin ant merge deploy