Salvatore La Manna 2 anni fa
commit
a9fe9c68f4
  1. 52
      .ant-targets-build.xml
  2. 10
      .gitignore
  3. BIN
      .ivy/ivy-2.4.0.LIFERAY-PATCHED-1-SNAPSHOT.jar
  4. 8
      .project
  5. 28
      CONTRIBUTING.markdown
  6. 139
      README.markdown
  7. 6
      apps/build.xml
  8. 14
      apps/plugins-inspector.log.test-broken
  9. 10
      apps/test-broken/build.xml
  10. 13
      apps/test-broken/test-broken-portlet/build.xml
  11. BIN
      apps/test-broken/test-broken-portlet/docroot/WEB-INF/lib/commons-logging.jar
  12. 7
      apps/test-broken/test-broken-portlet/docroot/WEB-INF/liferay-hook.xml
  13. 572
      apps/test-broken/test-broken-portlet/docroot/WEB-INF/tld/c.tld
  14. 63
      apps/test-broken/test-broken-portlet/docroot/WEB-INF/web.xml
  15. BIN
      apps/test-broken/test-broken-portlet/lib/commons-logging.jar
  16. 0
      apps/test-broken/test-broken-portlet/modified_file.txt
  17. 0
      apps/test-broken/test-broken-portlet/src/com/liferay/test/Test.java
  18. 1
      apps/test-broken/test-empty-portlet/ivy.xml.MD5
  19. 6
      apps/test-working/build.xml
  20. 794
      build-common-ivy.xml
  21. 12
      build-common-osgi-plugin.xml
  22. 950
      build-common-plugin.xml
  23. 233
      build-common-plugins-inspector.xml
  24. 105
      build-common-plugins.xml
  25. 3535
      build-common.xml
  26. 544
      build.properties
  27. 9
      build.ture.properties
  28. 9
      build.ture.properties.paesaggistica
  29. 282
      build.xml
  30. 1
      ci.properties
  31. 13
      common.bnd
  32. 13
      copyright.txt
  33. 16
      dependencies/aQute.bnd/ivy.xml
  34. 1
      dependencies/aQute.bnd/ivy.xml.MD5
  35. BIN
      dependencies/aQute.bnd/lib/biz.aQute.bnd.jar
  36. 16
      dependencies/com.liferay.ant.bnd/ivy.xml
  37. 1
      dependencies/com.liferay.ant.bnd/ivy.xml.MD5
  38. BIN
      dependencies/com.liferay.ant.bnd/lib/ant-launcher.jar
  39. BIN
      dependencies/com.liferay.ant.bnd/lib/ant.jar
  40. BIN
      dependencies/com.liferay.ant.bnd/lib/biz.aQute.bnd.jar
  41. BIN
      dependencies/com.liferay.ant.bnd/lib/com.liferay.ant.bnd.jar
  42. 16
      dependencies/com.liferay.ant.mirrors.get/ivy.xml
  43. 1
      dependencies/com.liferay.ant.mirrors.get/ivy.xml.MD5
  44. BIN
      dependencies/com.liferay.ant.mirrors.get/lib/com.liferay.ant.mirrors.get.jar
  45. 16
      dependencies/com.liferay.jasper.jspc/ivy.xml
  46. 1
      dependencies/com.liferay.jasper.jspc/ivy.xml.MD5
  47. BIN
      dependencies/com.liferay.jasper.jspc/lib/com.liferay.jasper.jspc.jar
  48. BIN
      dependencies/com.liferay.jasper.jspc/lib/ecj.jar
  49. BIN
      dependencies/com.liferay.jasper.jspc/lib/jsp-api.jar
  50. BIN
      dependencies/com.liferay.jasper.jspc/lib/jstl-api.jar
  51. BIN
      dependencies/com.liferay.jasper.jspc/lib/jstl.jar
  52. BIN
      dependencies/com.liferay.jasper.jspc/lib/servlet-api.jar
  53. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-api.jar
  54. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-el-api.jar
  55. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-jasper-el.jar
  56. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-jasper.jar
  57. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-jsp-api.jar
  58. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-juli.jar
  59. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-servlet-api.jar
  60. BIN
      dependencies/com.liferay.jasper.jspc/lib/tomcat-util.jar
  61. 17
      dependencies/net.sourceforge.pmd/ivy.xml
  62. 1
      dependencies/net.sourceforge.pmd/ivy.xml.MD5
  63. BIN
      dependencies/net.sourceforge.pmd/lib/asm.jar
  64. BIN
      dependencies/net.sourceforge.pmd/lib/com.liferay.pmd.jar
  65. BIN
      dependencies/net.sourceforge.pmd/lib/commons-io.jar
  66. BIN
      dependencies/net.sourceforge.pmd/lib/commons-lang3.jar
  67. BIN
      dependencies/net.sourceforge.pmd/lib/javacc.jar
  68. BIN
      dependencies/net.sourceforge.pmd/lib/jaxen.jar
  69. BIN
      dependencies/net.sourceforge.pmd/lib/jcommander.jar
  70. BIN
      dependencies/net.sourceforge.pmd/lib/pmd-core.jar
  71. BIN
      dependencies/net.sourceforge.pmd/lib/pmd-java.jar
  72. BIN
      dependencies/net.sourceforge.pmd/lib/saxon.jar
  73. BIN
      dependencies/net.sourceforge.pmd/lib/xercesImpl.jar
  74. BIN
      dependencies/net.sourceforge.pmd/lib/xml-apis.jar
  75. 200
      dependencies/net.sourceforge.pmd/rulesets/java/standard-rules.xml
  76. 16
      dependencies/org.apache.maven.maven.ant.tasks/ivy.xml
  77. 1
      dependencies/org.apache.maven.maven.ant.tasks/ivy.xml.MD5
  78. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/ant-launcher.jar
  79. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/ant.jar
  80. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/backport-util-concurrent.jar
  81. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/classworlds.jar
  82. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-ant-tasks.jar
  83. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-artifact-manager.jar
  84. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-artifact.jar
  85. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-error-diagnostics.jar
  86. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-model.jar
  87. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-plugin-registry.jar
  88. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-profile.jar
  89. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-project.jar
  90. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-repository-metadata.jar
  91. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/maven-settings.jar
  92. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/nekohtml.jar
  93. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/plexus-container-default.jar
  94. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/plexus-interpolation.jar
  95. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/plexus-utils.jar
  96. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-file.jar
  97. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-http-lightweight.jar
  98. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-http-shared.jar
  99. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-provider-api.jar
  100. BIN
      dependencies/org.apache.maven.maven.ant.tasks/lib/xercesMinimal.jar
  101. Some files were not shown because too many files have changed in this diff Show More

52
.ant-targets-build.xml

@ -0,0 +1,52 @@
all
build-common.format-javadoc
build-common.setup-eclipse
build-css
build-db
build-service
build-summary
build-upgrade-table
build-wsdl
build-xsd
clean
compile
compile-jsp
compile-test
create
deploy
direct-deploy
direct-deploy-ext-cmd
direct-deploy-hook-cmd
direct-deploy-layouttpl-cmd
direct-deploy-portlet-cmd
direct-deploy-theme-cmd
direct-deploy-web-cmd
ear
extract-plugins-sdk
format-javadoc
format-source
jar
jar-javadoc
jar-source
javadoc
prepare-upgrade-table
print-current-time
print-stale-snapshot
publish
publish-local-m2-release
publish-local-m2-snapshot
publish-remote-m2-release
publish-remote-m2-snapshot
release
run-cpd
run-pmd
setup-arquillian
setup-eclipse
setup-jrebel
sort-xml-attributes
test
test-integration
test-unit
war
watch
zip-portal

10
.gitignore vendored

@ -0,0 +1,10 @@
*.class
*.war
sicilia-*.jar
**/classes/
**/.sass-cache/
**/.ivy/cache/
**/tmp/
**/build/
.DS_Store
._*

BIN
.ivy/ivy-2.4.0.LIFERAY-PATCHED-1-SNAPSHOT.jar

File binario non mostrato.

8
.project

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>login-hook</name>
<comment></comment>
<projects></projects>
<buildSpec></buildSpec>
<natures></natures>
</projectDescription>

28
CONTRIBUTING.markdown

@ -0,0 +1,28 @@
# How to Contribute
Liferay is developed by its community consisting of Liferay users, enthusiasts,
employees, customers, partners, and others. We strongly encourage you to
contribute to Liferay's open source projects by implementing new features,
enhancing existing features, and fixing bugs. We also welcome your participation
in our forums, writing documentation, and translating existing documentation.
Liferay is known for its innovative top quality features. To maintain this
reputation, all code changes are reviewed by a core set of Liferay project
maintainers. We encourage you to introduce yourself to the [core
maintainer(s)](https://issues.liferay.com/browse/LPS#selectedTab=com.atlassian.jira.plugin.system.project%3Acomponents-panel)
and engage them as you contribute to the areas they maintain.
As you have ideas for features you want to implement, follow the contribution
steps outlined in the [CONTRIBUTING
guide](https://github.com/liferay/liferay-portal/blob/master/CONTRIBUTING.markdown)
found in the [liferay-portal](https://github.com/liferay/liferay-portal)
repository. This guide contains details on how to contribute to Liferay and
additional useful resource links. For more details on specific steps, and to get
a deeper understanding of Liferay in general, make sure to read Liferay's
official [User
Guide](http://www.liferay.com/documentation/liferay-portal/6.1/user-guide) and
[Development
Guide](http://www.liferay.com/documentation/liferay-portal/6.1/development).
These guides contain extensive explanations, examples, and reference material
for you to consult time and time again.

139
README.markdown

@ -0,0 +1,139 @@
# Liferay Plugins
The liferay-plugins repository is part of the Liferay Portal project. [Liferay
Portal](http://www.liferay.com/community/liferay-projects/liferay-portal) is an
open source enterprise web platform for building business solutions that deliver
immediate results and long-term value. Liferay Portal started out as a personal
development project in 2000 and was open sourced in 2001.
To get started, check out the project's community homepage at
[http://liferay.org](http://liferay.org)!
Most of the plugins found in the liferay-plugins repository can be easily
installed on Liferay Portal via [Liferay
Marketplace](http://liferay.com/marketplace). To build one or more of the
plugins yourself, read below for details.
## Source Code
Liferay's main source code resides in two repositories:
[liferay-portal](https://github.com/liferay/liferay-portal) and
[liferay-plugins](https://github.com/liferay/liferay-plugins). Liferay has
additional repositories for the following:
* [AlloyUI](https://github.com/liferay/alloy-ui)
* [Documentation](https://github.com/liferay/liferay-docs)
* [Git Tools](https://github.com/liferay/git-tools)
* [Liferay Faces](https://github.com/liferay/liferay-faces)
* [Liferay IDE](https://github.com/liferay/liferay-ide)
* [Maven Support](https://github.com/liferay/liferay-maven-support)
Liferay Portal *releases* are built from the liferay-portal repository and
include select plugins from the liferay-plugins repository. You can build
Liferay Portal, its plugins, and/or any of the other supporting technologies
from their respective repositories.
For more information on building liferay-portal, see the [README
file](https://github.com/liferay/liferay-portal/blob/master/README.markdown) in
the liferay-portal repository.
## Quick Start
In the [liferay-plugins](https://github.com/liferay/liferay-plugins) repository,
plugins are laid out in a software development kit (SDK) -- the Liferay Plugins
SDK. All Liferay plugin types, including portlets, themes, layout templates,
hooks, and EXT plugins, can be created and maintained in the SDK. [The Plugins
SDK](http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/the-plugins-s-3)
chapter of Liferay's [Development
Guide](http://www.liferay.com/documentation/liferay-portal/6.1/development)
explains how to create, build, and deploy your plugins. Follow the instructions
in this section to build and deploy any of the existing SDK plugins quickly.
For demonstration purposes, let's pretend your user name is *joe* and you have a
Liferay instance bundled with Apache Tomcat running in your `/home/joe/`
directory.
1. Fork the [liferay-plugins](https://github.com/liferay/liferay-plugins)
repository.
2. Clone your fork of the repository.
3. Create a `build.${username}.properties` file in the root directory of your
liferay-plugins repository clone. Be sure to replace `${username}` with your
user name.
/home/joe/liferay-plugins/build.joe.properties
Note, to determine your user name, execute `echo %USERNAME%` on Windows or
`whoami` on Unix/Linux.
4. In your `build.${username}.properties` file, specify the
`app.server.parent.dir` property set to the parent path of your app server.
app.server.parent.dir=/home/joe/liferay-portal-6.1.1-ga2
Use your `build.${username}.properties` file to specify any additional
properties you wish to override from the base `build.properties` file; do
not modify the base file.
5. Navigate to the directory of a plugin (e.g. *Sample JSP Portlet*) and deploy
it using Ant.
cd /home/joe/liferay-plugins/portlets/sample-jsp-portlet
ant deploy
The plugin compiles, its WAR file is built to the plugin's `dist` directory,
the WAR file is copied to your Liferay *Hot Deploy* directory, and the
plugin is deployed immediately. It's just that easy!
There are many other options for developing new Liferay plugins using the
Plugins SDK. Consult the [Liferay Development
Guide](http://www.liferay.com/documentation/liferay-portal/6.1/development) for
indispensable explanations, examples, and reference material on the Liferay
Plugins SDK and surrounding technologies.
Also, check out Liferay IDE. The [Liferay IDE
project](http://www.liferay.com/community/liferay-projects/liferay-ide) provides
an Eclipse-based Liferay development environment to help you build and maintain
Liferay projects easily.
Finally, consider using Maven to build Liferay Plugins. For excellent overviews
of Maven support for Liferay, check out [Mika Koivisto's
presentation](http://www.slideshare.net/koivimik/developing-liferay-plugins-with-maven)
and [Getting Started with Liferay Maven
SDK](http://www.liferay.com/web/mika.koivisto/blog/-/blogs/12322618).
## Contributing
Liferay welcomes any and all contributions! If you have an idea for a new plugin
or a new feature in an existing plugin, and wish to implement it, follow the
contribution steps outlined in the [CONTRIBUTING
guide](https://github.com/liferay/liferay-portal/blob/master/CONTRIBUTING.markdown).
It explains how to contribute to Liferay and contains links to additional useful
resources.
## More Information
For more information about filing bugs, staying updated with Liferay on social
media, and other ways to participate, check out the [Liferay Community
Homepage](http://liferay.org) and consult the [README
file](https://github.com/liferay/liferay-portal/blob/master/README.markdown) in
the liferay-portal repository.
## Liferay Portal Community Edition License
This library, *Liferay Portal Community Edition*, is free software ("Licensed
Software"); you can redistribute it and/or modify it under the terms of the [GNU
Lesser General Public License](http://www.gnu.org/licenses/lgpl-2.1.html) as
published by the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; including but not limited to, the implied warranty of MERCHANTABILITY,
NONINFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
Public License for more details.
You should have received a copy of the [GNU Lesser General Public
License](http://www.gnu.org/licenses/lgpl-2.1.html) along with this library; if
not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Floor, Boston, MA 02110-1301 USA

6
apps/build.xml

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project>
<import file="../build-common-plugins.xml" />
</project>

14
apps/plugins-inspector.log.test-broken

@ -0,0 +1,14 @@
build.xml is nonstandard.
Unable to clean all plugins.
Unable to compile all plugins.
Module /Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-broken-portlet must not have both a "docroot" and a "src" directory.
/Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-broken-portlet/docroot/WEB-INF/liferay-hook.xml has an nonstandard language-properties element.
/Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-broken-portlet/docroot/WEB-INF/liferay-hook.xml has a nonstandard custom-jsp-dir element.
/Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-broken-portlet/docroot/WEB-INF/web.xml contains generated code.
/Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-broken-portlet/docroot/WEB-INF/lib must not be checked into source control.
/Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-broken-portlet/docroot/WEB-INF/tld must not be checked into source control.
/Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-broken-portlet/lib must not be checked into source control.
Module /Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-empty-portlet must have a "docroot" or a "src" directory.
/Users/brian/dev/projects/github/liferay-plugins-ee-6.2.x/apps/test-broken/test-empty-portlet/ivy.xml.MD5 must not be checked into source control.
Plugins must not have custom .gitignore files.
Plugins must not generate modified files.

10
apps/test-broken/build.xml

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<!--
Add comment for nonstandard MD5.
-->
<project>
<import file="../../build-common-plugins.xml" />
</project>

13
apps/test-broken/test-broken-portlet/build.xml

@ -0,0 +1,13 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project>
<import file="../../portlets/build-common-portlet.xml" />
<target name="compile">
<echo file="modified_file.txt">Hello world.</echo>
<echo file="new_file.txt">Hello world.</echo>
<ant target="compile" />
</target>
</project>

BIN
apps/test-broken/test-broken-portlet/docroot/WEB-INF/lib/commons-logging.jar

File binario non mostrato.

7
apps/test-broken/test-broken-portlet/docroot/WEB-INF/liferay-hook.xml

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.1.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_1_0.dtd">
<hook>
<language-properties>resources/Language*.properties</language-properties>
<custom-jsp-dir>/META-INF/custom-jsps</custom-jsp-dir>
</hook>

572
apps/test-broken/test-broken-portlet/docroot/WEB-INF/tld/c.tld

@ -0,0 +1,572 @@
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<description>JSTL 1.2 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.2</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
<validator>
<description>
Provides core validation features for JSTL tags.
</description>
<validator-class>
org.apache.taglibs.standard.tlv.JstlCoreTLV
</validator-class>
</validator>
<tag>
<description>
Catches any Throwable that occurs in its body and optionally
exposes it.
</description>
<name>catch</name>
<tag-class>org.apache.taglibs.standard.tag.common.core.CatchTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the exported scoped variable for the
exception thrown from a nested action. The type of the
scoped variable is the type of the exception thrown.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Simple conditional tag that establishes a context for
mutually exclusive conditional operations, marked by
&lt;when&gt; and &lt;otherwise&gt;
</description>
<name>choose</name>
<tag-class>com.liferay.taglib.core.ChooseTag</tag-class>
<body-content>JSP</body-content>
</tag>
<tag>
<description>
Simple conditional tag, which evalutes its body if the
supplied condition is true and optionally exposes a Boolean
scripting variable representing the evaluation of this condition
</description>
<name>if</name>
<tag-class>com.liferay.taglib.core.IfTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
The test condition that determines whether or
not the body content should be processed.
</description>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
resulting value of the test condition. The type
of the scoped variable is Boolean.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Retrieves an absolute or relative URL and exposes its contents
to either the page, a String in 'var', or a Reader in 'varReader'.
</description>
<name>import</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ImportTag</tag-class>
<tei-class>org.apache.taglibs.standard.tei.ImportTEI</tei-class>
<body-content>JSP</body-content>
<attribute>
<description>
The URL of the resource to import.
</description>
<name>url</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
resource's content. The type of the scoped
variable is String.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
resource's content. The type of the scoped
variable is Reader.
</description>
<name>varReader</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the context when accessing a relative
URL resource that belongs to a foreign
context.
</description>
<name>context</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Character encoding of the content at the input
resource.
</description>
<name>charEncoding</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
The basic iteration tag, accepting many different
collection types and supporting subsetting and other
functionality
</description>
<name>forEach</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ForEachTag</tag-class>
<tei-class>org.apache.taglibs.standard.tei.ForEachTEI</tei-class>
<body-content>JSP</body-content>
<attribute>
<description>
Collection of items to iterate over.
</description>
<name>items</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.Object</type>
<deferred-value>
<type>java.lang.Object</type>
</deferred-value>
</attribute>
<attribute>
<description>
If items specified:
Iteration begins at the item located at the
specified index. First item of the collection has
index 0.
If items not specified:
Iteration begins with index set at the value
specified.
</description>
<name>begin</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
If items specified:
Iteration ends at the item located at the
specified index (inclusive).
If items not specified:
Iteration ends when index reaches the value
specified.
</description>
<name>end</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Iteration will only process every step items of
the collection, starting with the first one.
</description>
<name>step</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
current item of the iteration. This scoped
variable has nested visibility. Its type depends
on the object of the underlying collection.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
status of the iteration. Object exported is of type
javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested
visibility.
</description>
<name>varStatus</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Iterates over tokens, separated by the supplied delimeters
</description>
<name>forTokens</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ForTokensTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
String of tokens to iterate over.
</description>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
<deferred-value>
<type>java.lang.String</type>
</deferred-value>
</attribute>
<attribute>
<description>
The set of delimiters (the characters that
separate the tokens in the string).
</description>
<name>delims</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
<description>
Iteration begins at the token located at the
specified index. First token has index 0.
</description>
<name>begin</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Iteration ends at the token located at the
specified index (inclusive).
</description>
<name>end</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Iteration will only process every step tokens
of the string, starting with the first one.
</description>
<name>step</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>int</type>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
current item of the iteration. This scoped
variable has nested visibility.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the exported scoped variable for the
status of the iteration. Object exported is of
type
javax.servlet.jsp.jstl.core.LoopTag
Status. This scoped variable has nested
visibility.
</description>
<name>varStatus</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Like &lt;%= ... &gt;, but for expressions.
</description>
<name>out</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.OutTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Expression to be evaluated.
</description>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Default value if the resulting value is null.
</description>
<name>default</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Determines whether characters &lt;,&gt;,&amp;,'," in the
resulting string should be converted to their
corresponding character entity codes. Default value is
true.
</description>
<name>escapeXml</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
and runs only if all of the prior conditions evaluated to
'false'
</description>
<name>otherwise</name>
<tag-class>com.liferay.taglib.core.OtherwiseTag</tag-class>
<body-content>JSP</body-content>
</tag>
<tag>
<description>
Adds a parameter to a containing 'import' tag's URL.
</description>
<name>param</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.ParamTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the query string parameter.
</description>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Value of the parameter.
</description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Redirects to a new URL.
</description>
<name>redirect</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.RedirectTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
The URL of the resource to redirect to.
</description>
<name>url</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the context when redirecting to a relative URL
resource that belongs to a foreign context.
</description>
<name>context</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Removes a scoped variable (from a particular scope, if specified).
</description>
<name>remove</name>
<tag-class>org.apache.taglibs.standard.tag.common.core.RemoveTag</tag-class>
<body-content>empty</body-content>
<attribute>
<description>
Name of the scoped variable to be removed.
</description>
<name>var</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Sets the result of an expression evaluation in a 'scope'
</description>
<name>set</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.SetTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the exported scoped variable to hold the value
specified in the action. The type of the scoped variable is
whatever type the value expression evaluates to.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Expression to be evaluated.
</description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<deferred-value>
<type>java.lang.Object</type>
</deferred-value>
</attribute>
<attribute>
<description>
Target object whose property will be set. Must evaluate to
a JavaBeans object with setter property property, or to a
java.util.Map object.
</description>
<name>target</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the property to be set in the target object.
</description>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Creates a URL with optional query parameters.
</description>
<name>url</name>
<tag-class>org.apache.taglibs.standard.tag.rt.core.UrlTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the exported scoped variable for the
processed url. The type of the scoped variable is
String.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
URL to be processed.
</description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the context when specifying a relative URL
resource that belongs to a foreign context.
</description>
<name>context</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<description>
Subtag of &lt;choose&gt; that includes its body if its
condition evalutes to 'true'
</description>
<name>when</name>
<tag-class>com.liferay.taglib.core.WhenTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
The test condition that determines whether or not the
body content should be processed.
</description>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>boolean</type>
</attribute>
</tag>
</taglib>

63
apps/test-broken/test-broken-portlet/docroot/WEB-INF/web.xml

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>test-partially-broken-portlet</display-name>
<filter>
<filter-name>Invoker Filter - ERROR</filter-name>
<filter-class>com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter</filter-class>
<init-param>
<param-name>dispatcher</param-name>
<param-value>ERROR</param-value>
</init-param>
</filter>
<filter>
<filter-name>Invoker Filter - FORWARD</filter-name>
<filter-class>com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter</filter-class>
<init-param>
<param-name>dispatcher</param-name>
<param-value>FORWARD</param-value>
</init-param>
</filter>
<filter>
<filter-name>Invoker Filter - INCLUDE</filter-name>
<filter-class>com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter</filter-class>
<init-param>
<param-name>dispatcher</param-name>
<param-value>INCLUDE</param-value>
</init-param>
</filter>
<filter>
<filter-name>Invoker Filter - REQUEST</filter-name>
<filter-class>com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter</filter-class>
<init-param>
<param-name>dispatcher</param-name>
<param-value>REQUEST</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Invoker Filter - ERROR</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>Invoker Filter - FORWARD</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>Invoker Filter - INCLUDE</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>Invoker Filter - REQUEST</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<listener>
<listener-class>com.liferay.portal.kernel.servlet.PluginContextListener</listener-class>
</listener>
<listener>
<listener-class>com.liferay.portal.kernel.servlet.SerializableSessionAttributeListener</listener-class>
</listener>
</web-app>

BIN
apps/test-broken/test-broken-portlet/lib/commons-logging.jar

File binario non mostrato.

0
apps/test-broken/test-broken-portlet/modified_file.txt

0
apps/test-broken/test-broken-portlet/src/com/liferay/test/Test.java

1
apps/test-broken/test-empty-portlet/ivy.xml.MD5

@ -0,0 +1 @@
3a1587eeafa8dc5f13f833811cdda85a

6
apps/test-working/build.xml

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project>
<import file="../../build-common-plugins.xml" />
</project>

794
build-common-ivy.xml

@ -0,0 +1,794 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="build-common-ivy" xmlns:antelope="antlib:ise.antelope.tasks" xmlns:artifact="antlib:org.apache.maven.artifact.ant" xmlns:ivy="antlib:org.apache.ivy.ant">
<basename property="basedir.name" file="${basedir}" />
<propertyregex
input="${basedir.name}"
property="ivy.module.name"
regexp="(.*)\-(.*)$"
select="com.liferay.\1"
/>
<propertyregex
input="${ivy.module.name}"
override="true"
property="ivy.module.name"
regexp="\-"
replace="\."
/>
<path id="classpath.com.liferay.ant.mirrors.get">
<fileset dir="${sdk.dir}/dependencies/com.liferay.ant.mirrors.get/lib" erroronmissingdir="false" includes="*.jar" />
</path>
<taskdef classname="com.liferay.ant.mirrors.get.MirrorsGetTask" classpathref="classpath.com.liferay.ant.mirrors.get" name="mirrors-get" onerror="ignore" />
<if>
<not>
<available file="${ivy.home}/ivy-${ivy.version}.jar" />
</not>
<then>
<mkdir dir="${ivy.home}" />
<if>
<typefound name="mirrors-get" />
<then>
<mirrors-get
dest="${ivy.home}/ivy-${ivy.version}.jar"
src="${ivy.jar.url}"
/>
</then>
<else>
<get
dest="${ivy.home}/ivy-${ivy.version}.jar"
src="${ivy.jar.url}"
/>
</else>
</if>
</then>
</if>
<path id="ivy.lib.path">
<fileset
dir="${ivy.home}"
includes="ivy-${ivy.version}.jar"
/>
<fileset
dir="${sdk.dir}/lib"
includes="bcpg-jdk16.jar,bcprov-jdk16.jar"
/>
</path>
<taskdef classpathref="ivy.lib.path" resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" />
<pathconvert property="sdk.dependencies.dir" targetos="unix">
<path location="${sdk.dir}/dependencies" />
</pathconvert>
<path id="sdk.dependencies.path">
<dirset dir="${sdk.dir}" includes="dependencies/*" />
</path>
<pathconvert pathsep="," property="sdk.dependencies.path" refid="sdk.dependencies.path" targetos="unix" />
<macrodef name="process-ivy">
<attribute default="${basedir}" name="module.dir" />
<sequential>
<for list="@{module.dir},${sdk.dir},${sdk.dependencies.path}" param="ivy.xml.dir">
<sequential>
<if>
<available file="@{ivy.xml.dir}/ivy.xml" />
<then>
<fixcrlf eol="lf" file="@{ivy.xml.dir}/ivy.xml" fixlast="false" />
<checksum file="@{ivy.xml.dir}/ivy.xml" verifyproperty="ivy.xml.unmodified" />
<if>
<isfalse value="${ivy.xml.unmodified}" />
<then>
<var name="plugin.ivy.resolve.transitive.dependencies" unset="true" />
<if>
<and>
<available file="@{ivy.xml.dir}/bnd.bnd" />
<available file="@{ivy.xml.dir}/build.xml" />
</and>
<then>
<set-module-properties
module.dir="@{ivy.xml.dir}"
/>
</then>
<else>
<var name="plugin.ivy.resolve.transitive.dependencies" value="${ivy.resolve.transitive.dependencies}" />
</else>
</if>
<ivy:settings file="${ivy.custom.settings.file}" />
<if>
<antelope:endswith string="@{module.dir}" with="solr4-shared" />
<then>
<var name="ivy.checksums" value="" />
</then>
</if>
<ivy:resolve
conf="default,internal,provided"
file="@{ivy.xml.dir}/ivy.xml"
log="${ivy.log.level}"
transitive="${plugin.ivy.resolve.transitive.dependencies}"
/>
<var name="ivy.checksums" unset="true" />
<if>
<not>
<available file="@{ivy.xml.dir}/docroot" />
</not>
<then>
<ivy:retrieve
log="${ivy.log.level}"
overwriteMode="always"
pattern="@{ivy.xml.dir}/lib/[artifact].[ext]"
type="bundle,eclipse-plugin,jar,maven-plugin,orbit"
/>
<ivy:retrieve
log="${ivy.log.level}"
overwriteMode="always"
pattern="@{ivy.xml.dir}/lib/[artifact]-[type]s.[ext]"
type="source"
/>
</then>
<else>
<ivy:retrieve
log="${ivy.log.level}"
overwriteMode="always"
pattern="@{ivy.xml.dir}/docroot/WEB-INF/lib/[artifact].[ext]"
type="bundle,eclipse-plugin,jar,maven-plugin,orbit"
/>
<ivy:retrieve
log="${ivy.log.level}"
overwriteMode="always"
pattern="@{ivy.xml.dir}/docroot/WEB-INF/lib/[artifact]-[type]s.[ext]"
type="source"
/>
</else>
</if>
<checksum file="@{ivy.xml.dir}/ivy.xml" forceoverwrite="true" />
</then>
</if>
<var name="ivy.xml.unmodified" unset="true" />
</then>
</if>
</sequential>
</for>
</sequential>
</macrodef>
<macrodef name="record-git-commit-snapshot">
<sequential>
<loadfile srcfile="maven.deploy.log" property="maven.deploy.log.content" />
<propertyregex
input="${maven.deploy.log.content}"
override="true"
property="snapshot.tstamp"
regexp="${plugin.name}-${plugin.full.version}-([\d.-]+)\.jar"
select="\1"
/>
<property file="bnd.bnd" prefix="bnd." />
<exec executable="git" outputproperty="git.commit.module.log">
<arg value="log" />
<arg value="-1" />
<arg value="--pretty=format:%H" />
<arg value="--" />
<arg value="." />
<arg value=":!snapshot.properties" />
</exec>
<propertyregex
input="${sonatype.url}"
property="cdn.sonatype.url"
regexp="https://"
replace="http://cdn."
/>
<echo file="snapshot.properties">
module.snapshot.git.id=${git.commit.module.log}
module.snapshot.url=${cdn.sonatype.url}/com/liferay/${bnd.Bundle-SymbolicName}/${bnd.Bundle-Version}-SNAPSHOT/${bnd.Bundle-SymbolicName}-${bnd.Bundle-Version}-${snapshot.tstamp}.jar
</echo>
<var name="git.commit.module.log" unset="true" />
<var name="maven.deploy.log.content" unset="true" />
<var name="snapshot.tstamp" unset="true" />
</sequential>
</macrodef>
<macrodef name="set-build-xml-var">
<attribute name="bnd.property.key" default="" />
<attribute name="build.xml.var.name" />
<attribute name="module.dir" />
<sequential>
<if>
<and>
<available file="@{module.dir}/bnd.bnd" />
<not>
<equals arg1="@{bnd.property.key}" arg2="" />
</not>
</and>
<then>
<var name="module.bnd.@{bnd.property.key}" unset="true" />
<loadproperties prefix="module.bnd.">
<file file="@{module.dir}/bnd.bnd" />
</loadproperties>
<propertycopy
from="module.bnd.@{bnd.property.key}"
name="module.bnd.property.value"
override="true"
silent="true"
/>
<if>
<isset property="module.bnd.property.value" />
<then>
<var name="set-build-xml-var.return" value="${module.bnd.property.value}" />
</then>
<else>
<set-build-xml-var-from-build-xml
build.xml.var.name="@{build.xml.var.name}"
module.dir="@{module.dir}"
/>
</else>
</if>
</then>
<else>
<set-build-xml-var-from-build-xml
build.xml.var.name="@{build.xml.var.name}"
module.dir="@{module.dir}"
/>
</else>
</if>
</sequential>
</macrodef>
<macrodef name="set-build-xml-var-from-build-xml">
<attribute name="build.xml.var.name" />
<attribute name="module.dir" />
<sequential>
<loadfile property="set-build-xml-var.build.xml.content" srcFile="@{module.dir}/build.xml" />
<antelope:stringutil string="${set-build-xml-var.build.xml.content}" property="set-build-xml-var.value.beginindex">
<antelope:indexof string="property name=&quot;@{build.xml.var.name}&quot; value=&quot;" fromindex="0" />
</antelope:stringutil>
<if>
<equals arg1="${set-build-xml-var.value.beginindex}" arg2="-1" />
<then>
<var name="set-build-xml-var.return" unset="true" />
</then>
<else>
<antelope:stringutil string="${set-build-xml-var.build.xml.content}" property="set-build-xml-var.value.beginindex">
<antelope:indexof string="value=&quot;" fromindex="${set-build-xml-var.value.beginindex}" />
</antelope:stringutil>
<antelope:math
datatype="int"
operand1="${set-build-xml-var.value.beginindex}"
operand2="7"
operation="+"
result="set-build-xml-var.value.beginindex"
/>
<antelope:stringutil string="${set-build-xml-var.build.xml.content}" property="set-build-xml-var.value.endindex">
<antelope:indexof string="&quot;" fromindex="${set-build-xml-var.value.beginindex}" />
</antelope:stringutil>
<antelope:stringutil string="${set-build-xml-var.build.xml.content}" property="set-build-xml-var.return">
<antelope:substring beginindex="${set-build-xml-var.value.beginindex}" endindex="${set-build-xml-var.value.endindex}" />
</antelope:stringutil>
</else>
</if>
<var name="set-build-xml-var.build.xml.content" unset="true" />
</sequential>
</macrodef>
<macrodef name="set-module-properties">
<attribute name="module.dir" />
<sequential>
<var name="module.dir.unix" unset="true" />
<pathconvert property="module.dir.unix" targetos="unix">
<path location="@{module.dir}" />
</pathconvert>
<var name="module.auto.deploy.dir" unset="true" />
<var name="original.lib.name" unset="true" />
<var name="original.lib.version" unset="true" />
<var name="original.lib.url" unset="true" />
<var name="plugin.full.version" unset="true" />
<var name="plugin.jars" unset="true" />
<var name="plugin.required.contexts" unset="true" />
<var name="plugin.tlds" unset="true" />
<var name="plugin.version" unset="true" />
<set-build-xml-var
build.xml.var.name="auto.deploy.dir"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="module.auto.deploy.dir" value="${set-build-xml-var.return}" />
</then>
<else>
<var name="module.auto.deploy.dir" value="${auto.deploy.dir}" />
</else>
</if>
<set-build-xml-var
build.xml.var.name="original.lib.name"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="original.lib.name" value="${set-build-xml-var.return}" />
</then>
</if>
<set-build-xml-var
build.xml.var.name="original.lib.version"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="original.lib.version" value="${set-build-xml-var.return}" />
</then>
</if>
<set-build-xml-var
build.xml.var.name="original.lib.url"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="original.lib.url" value="${set-build-xml-var.return}" />
</then>
</if>
<if>
<available file="@{module.dir}/docroot/WEB-INF/liferay-plugin-package.properties" />
<then>
<var name="plugin-package.module-incremental-version" unset="true" />
<var name="plugin-package.portal-dependency-jars" unset="true" />
<var name="plugin-package.portal-dependency-tlds" unset="true" />
<var name="plugin-package.required-deployment-contexts" unset="true" />
<property file="@{module.dir}/docroot/WEB-INF/liferay-plugin-package.properties" prefix="plugin-package" />
<if>
<isset property="plugin-package.module-full-version" />
<then>
<var name="plugin.full.version" value="${plugin-package.module-full-version}" />
</then>
</if>
<var name="plugin.jars" value="${plugin-package.portal-dependency-jars}" />
<var name="plugin.required.contexts" value="${plugin-package.required-deployment-contexts}" />
<var name="plugin.tlds" value="${plugin-package.portal-dependency-tlds}" />
<var name="plugin.version" value="${plugin-package.module-incremental-version}" />
</then>
<else>
<set-build-xml-var
build.xml.var.name="plugin.version"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="plugin.version" value="${set-build-xml-var.return}" />
</then>
<else>
<var name="plugin.version" value="1" />
</else>
</if>
<set-build-xml-var
bnd.property.key="Bundle-Version"
build.xml.var.name="plugin.full.version"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="plugin.full.version" value="${set-build-xml-var.return}" />
</then>
</if>
</else>
</if>
<if>
<not>
<isset property="plugin.full.version" />
</not>
<then>
<var name="plugin.full.version" value="${lp.version}.${plugin.version}${lp.version.file.suffix}" />
</then>
</if>
<set-build-xml-var
bnd.property.key="Bundle-SymbolicName"
build.xml.var.name="plugin.name"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="plugin.name" value="${set-build-xml-var.return}" />
</then>
<else>
<if>
<equals arg1="@{module.dir}" arg2="." />
<then>
<var name="plugin.name" value="${ant.project.name}" />
</then>
<else>
<antelope:grep
group="1"
in="@{module.dir}"
property="plugin.name"
regex="(?:.*[/\\])(.*)"
/>
</else>
</if>
</else>
</if>
<set-build-xml-var
build.xml.var.name="theme.parent"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="theme.parent" value="${set-build-xml-var.return}" />
</then>
<else>
<var name="theme.parent" unset="true" />
</else>
</if>
<set-build-xml-var
build.xml.var.name="theme.type"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="theme.type" value="${set-build-xml-var.return}" />
</then>
<else>
<var name="theme.type" unset="true" />
</else>
</if>
<if>
<and>
<or>
<antelope:endswith string="${plugin.name}" with="-ext" />
<antelope:endswith string="${plugin.name}" with="-hook" />
<antelope:endswith string="${plugin.name}" with="-layouttpl" />
<antelope:endswith string="${plugin.name}" with="-portlet" />
<antelope:endswith string="${plugin.name}" with="-theme" />
<antelope:endswith string="${plugin.name}" with="-web" />
</or>
<not>
<resourcecontains
resource="${module.dir.unix}/build.xml"
substring="/build-common-osgi-plugin.xml&quot;"
/>
</not>
</and>
<then>
<var name="plugin.packaging" value="war" />
</then>
<else>
<var name="plugin.packaging" value="jar" />
</else>
</if>
<var name="plugin.file" value="${sdk.dir}/dist/${plugin.name}-${plugin.full.version}.${plugin.packaging}" />
<var name="plugin.javadoc.file" value="${sdk.dir}/dist/${plugin.name}-${plugin.full.version}-javadoc.zip" />
<var name="plugin.pom.file" value="${sdk.dir}/dist/${plugin.name}-${plugin.full.version}.pom" />
<var name="plugin.sources.file" value="${sdk.dir}/dist/${plugin.name}-${plugin.full.version}-sources.${plugin.packaging}" />
<var name="plugin.src.file" value="${sdk.dir}/dist/${plugin.name}-src-${plugin.full.version}.zip" />
<var name="plugin.wsdd.file" value="${sdk.dir}/dist/${plugin.name}-wsdd-${plugin.full.version}.jar" />
<if>
<available file="@{module.dir}/src" />
<then>
<var name="plugin.classes.dir" value="@{module.dir}/classes" />
<var name="plugin.lib.dir" value="@{module.dir}/lib" />
<var name="plugin.source.dir" value="@{module.dir}/src" />
<if>
<available file="@{module.dir}/lib" />
<then>
<path id="plugin-lib.classpath">
<fileset dir="@{module.dir}/lib" includes="*.jar" />
<pathelement location="@{module.dir}/classes" />
</path>
</then>
<else>
<path id="plugin-lib.classpath">
<pathelement location="@{module.dir}/classes" />
</path>
</else>
</if>
</then>
<else>
<var name="plugin.classes.dir" value="@{module.dir}/docroot/WEB-INF/classes" />
<var name="plugin.lib.dir" value="@{module.dir}/docroot/WEB-INF/lib" />
<var name="plugin.source.dir" value="@{module.dir}/docroot/WEB-INF/src" />
<if>
<available file="@{module.dir}/tmp" />
<then>
<path id="plugin-lib.classpath">
<fileset dir="@{module.dir}/docroot/WEB-INF/lib" erroronmissingdir="false" includes="*.jar" />
<fileset dir="@{module.dir}/tmp/WEB-INF/lib" erroronmissingdir="false" includes="*.jar" />
<pathelement location="@{module.dir}/docroot/WEB-INF/classes" />
<pathelement location="@{module.dir}/tmp/WEB-INF/classes" />
</path>
</then>
<else>
<path id="plugin-lib.classpath">
<fileset dir="@{module.dir}/docroot/WEB-INF/lib" erroronmissingdir="false" includes="*.jar" />
<pathelement location="@{module.dir}/docroot/WEB-INF/classes" />
</path>
</else>
</if>
</else>
</if>
<if>
<resourcecontains
resource="${module.dir.unix}/build.xml"
substring="/build-common-osgi-plugin.xml&quot;"
/>
<then>
<property name="plugin-lib.classpath.path" refid="plugin-lib.classpath" />
<set-build-xml-var
build.xml.var.name="ignore.osgi.portal.classpath"
module.dir="@{module.dir}"
/>
<path id="plugin-lib.classpath">
<fileset dir="@{module.dir}/lib" erroronmissingdir="false" includes="*.jar" />
<pathelement path="${plugin-lib.classpath.path}" />
<path refid="portal.classpath" />
</path>
<var name="plugin-lib.classpath.path" unset="true" />
</then>
</if>
<set-build-xml-var
build.xml.var.name="plugin-lib.additional.dir"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<property name="plugin-lib.classpath.path" refid="plugin-lib.classpath" />
<path id="plugin-lib.classpath">
<fileset dir="@{module.dir}/${set-build-xml-var.return}" includes="*.jar" />
<pathelement path="${plugin-lib.classpath.path}" />
</path>
<var name="plugin-lib.classpath.path" unset="true" />
</then>
</if>
<set-build-xml-var
build.xml.var.name="ivy.resolve.transitive.dependencies"
module.dir="@{module.dir}"
/>
<if>
<isset property="set-build-xml-var.return" />
<then>
<var name="plugin.ivy.resolve.transitive.dependencies" value="${set-build-xml-var.return}" />
</then>
<else>
<var name="plugin.ivy.resolve.transitive.dependencies" value="${ivy.resolve.transitive.dependencies}" />
</else>
</if>
</sequential>
</macrodef>
<process-ivy />
<target name="publish">
<ivy:settings file="${sdk.dir}/ivy-settings-publisher.xml" />
<ivy:resolve
conf="default,provided"
log="${ivy.log.level}"
transitive="${ivy.resolve.transitive.dependencies}"
/>
<property name="ivy.pom.description" value="${plugin.name}" />
<property name="ivy.pom.name" value="${plugin.name}" />
<property name="plugin.release.qualifier" value="" />
<if>
<equals arg1="${plugin.release.qualifier}" arg2="-SNAPSHOT" />
<then>
<property name="sonatype.password" value="${sonatype.snapshot.password}" />
<property name="sonatype.url" value="${sonatype.snapshot.url}" />
<property name="sonatype.username" value="${sonatype.snapshot.username}" />
</then>
<else>
<property name="sonatype.password" value="${sonatype.release.password}" />
<property name="sonatype.url" value="${sonatype.release.url}" />
<property name="sonatype.username" value="${sonatype.release.username}" />
</else>
</if>
<property name="ivy.pom.version" value="${plugin.full.version}${plugin.release.qualifier}" />
<ivy:makepom
description="${ivy.pom.description}"
ivyfile="ivy.xml"
pomfile="${plugin.pom.file}"
templatefile="${sdk.dir}/tools/templates/pom_tmpl/template.pom"
>
<mapping conf="default" scope="compile" />
<mapping conf="provided" scope="provided" />
<mapping conf="runtime" scope="runtime" />
</ivy:makepom>
<artifact:pom file="${plugin.pom.file}" id="${plugin.name}" />
<if>
<equals arg1="${publish.target}" arg2="local" />
<then>
<if>
<and>
<available file="${plugin.javadoc.file}" />
<available file="${plugin.source.file}" />
</and>
<then>
<artifact:install file="${plugin.file}">
<attach classifier="javadoc" file="${plugin.javadoc.file}" />
<attach classifier="sources" file="${plugin.source.file}" />
<pom refid="${plugin.name}" />
</artifact:install>
</then>
<elseif>
<available file="${plugin.javadoc.file}" />
<then>
<artifact:install file="${plugin.file}">
<attach classifier="javadoc" file="${plugin.javadoc.file}" />
<pom refid="${plugin.name}" />
</artifact:install>
</then>
</elseif>
<elseif>
<available file="${plugin.source.file}" />
<then>
<artifact:install file="${plugin.file}">
<attach classifier="sources" file="${plugin.source.file}" />
<pom refid="${plugin.name}" />
</artifact:install>
</then>
</elseif>
<else>
<artifact:install file="${plugin.file}">
<pom refid="${plugin.name}" />
</artifact:install>
</else>
</if>
</then>
<else>
<if>
<equals arg1="${plugin.release.qualifier}" arg2="-SNAPSHOT" />
<then>
<record action="start" name="${basedir}/maven.deploy.log" />
</then>
</if>
<if>
<and>
<available file="${plugin.javadoc.file}" />
<available file="${plugin.source.file}" />
</and>
<then>
<artifact:deploy file="${plugin.file}">
<attach classifier="javadoc" file="${plugin.javadoc.file}" />
<attach classifier="sources" file="${plugin.source.file}" />
<pom refid="${plugin.name}" />
<remoteRepository url="${sonatype.url}">
<authentication password="${sonatype.password}" username="${sonatype.username}" />
</remoteRepository>
</artifact:deploy>
</then>
<elseif>
<available file="${plugin.javadoc.file}" />
<then>
<artifact:deploy file="${plugin.file}">
<attach classifier="javadoc" file="${plugin.javadoc.file}" />
<pom refid="${plugin.name}" />
<remoteRepository url="${sonatype.url}">
<authentication password="${sonatype.password}" username="${sonatype.username}" />
</remoteRepository>
</artifact:deploy>
</then>
</elseif>
<elseif>
<available file="${plugin.source.file}" />
<then>
<artifact:deploy file="${plugin.file}">
<attach classifier="sources" file="${plugin.source.file}" />
<pom refid="${plugin.name}" />
<remoteRepository url="${sonatype.url}">
<authentication password="${sonatype.password}" username="${sonatype.username}" />
</remoteRepository>
</artifact:deploy>
</then>
</elseif>
<else>
<artifact:deploy file="${plugin.file}">
<pom refid="${plugin.name}" />
<remoteRepository url="${sonatype.url}">
<authentication password="${sonatype.password}" username="${sonatype.username}" />
</remoteRepository>
</artifact:deploy>
</else>
</if>
<if>
<equals arg1="${plugin.release.qualifier}" arg2="-SNAPSHOT" />
<then>
<record action="stop" name="${basedir}/maven.deploy.log" />
<record-git-commit-snapshot />
<delete file="maven.deploy.log" />
</then>
</if>
</else>
</if>
</target>
</project>

12
build-common-osgi-plugin.xml

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="build-common-osgi-plugin">
<import file="build-common-plugin.xml" />
<target name="jar">
<jar-macro
module.dir="${basedir}"
/>
</target>
</project>

950
build-common-plugin.xml

@ -0,0 +1,950 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="build-common-plugin" xmlns:antelope="antlib:ise.antelope.tasks">
<import file="build-common.xml" />
<property name="plugins.includes.path" value="${basedir}" />
<set-module-properties
module.dir="${basedir}"
/>
<macrodef name="build-service">
<attribute name="service.api.dir" />
<attribute name="service.auto.namespace.tables" default="true" />
<attribute name="service.hbm.file.name" default="portlet-hbm.xml" />
<attribute name="service.model.hints.file.name" default="portlet-model-hints.xml" />
<attribute name="service.props.util" default="com.liferay.util.service.ServiceProps" />
<attribute name="service.spring.file.name" default="portlet-spring.xml" />
<attribute name="service.sql.dir" />
<attribute name="service.test.dir" />
<sequential>
<if>
<available file="docroot" />
<then>
<var name="service.base.dir" value="docroot/WEB-INF" />
</then>
<else>
<var name="service.base.dir" value="." />
</else>
</if>
<if>
<available file="bnd.bnd" />
<then>
<var name="service.osgi.module" value="true" />
<var name="service.plugin.name" value="${plugin.name}" />
<var name="service.spring.namespaces" value="beans,osgi" />
</then>
<else>
<var name="service.osgi.module" value="false" />
<var name="service.plugin.name" value="${plugin.name}" />
<var name="service.spring.namespaces" value="beans" />
</else>
</if>
<mkdir dir="@{service.api.dir}" />
<mkdir dir="@{service.sql.dir}" />
<mkdir dir="${service.base.dir}/classes" />
<mkdir dir="${service.base.dir}/lib" />
<mkdir dir="${service.base.dir}/src" />
<copy todir="${service.base.dir}/classes">
<fileset dir="${service.base.dir}/src" excludes="**/*.java" />
</copy>
<path id="service.builder.classpath">
<path refid="lib.classpath" />
<path refid="portal.classpath" />
<fileset dir="${app.server.lib.portal.dir}" includes="commons-digester.jar,commons-lang.jar,easyconf.jar" />
<fileset dir="${sdk.dir}/dependencies/org.freemarker/lib" includes="*.jar" />
<fileset dir="${service.base.dir}/lib" includes="*.jar" />
<pathelement location="${sdk.dir}/misc" />
<pathelement location="${service.base.dir}/classes" />
</path>
<if>
<os family="windows" />
<then>
<classpath-to-jar
classpathref="service.builder.classpath"
jarfile="service-builder-classpath.jar"
/>
</then>
</if>
<if>
<not>
<isset property="service.input.file" />
</not>
<then>
<property name="service.input.file" value="${basedir}/${service.base.dir}/service.xml" />
</then>
</if>
<java
classname="com.liferay.portal.tools.servicebuilder.ServiceBuilder"
classpathref="service.builder.classpath"
fork="true"
newenvironment="true"
outputproperty="build-service.output"
>
<jvmarg value="-Dfile.encoding=UTF-8" />
<jvmarg value="-Xms512m" />
<jvmarg value="-Xmx1024m" />
<jvmarg value="-Xss2048k" />
<jvmarg value="-XX:MaxPermSize=512m" />
<arg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<arg value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger" />
<arg value="service.api.dir=@{service.api.dir}" />
<arg value="service.auto.namespace.tables=@{service.auto.namespace.tables}" />
<arg value="service.bean.locator.util=com.liferay.util.bean.PortletBeanLocatorUtil" />
<arg value="service.build.number=1" />
<arg value="service.build.number.increment=true" />
<arg value="service.hbm.file=${basedir}/${service.base.dir}/src/META-INF/@{service.hbm.file.name}" />
<arg value="service.impl.dir=${basedir}/${service.base.dir}/src" />
<arg value="service.input.file=${service.input.file}" />
<arg value="service.model.hints.file=${basedir}/${service.base.dir}/src/META-INF/@{service.model.hints.file.name}" />
<arg value="service.orm.file=${basedir}/${service.base.dir}/src/META-INF/portlet-orm.xml" />
<arg value="service.osgi.module=${service.osgi.module}" />
<arg value="service.plugin.name=${service.plugin.name}" />
<arg value="service.props.util=@{service.props.util}" />
<arg value="service.remoting.file=" />
<arg value="service.resources.dir=${basedir}/${service.base.dir}/src" />
<arg value="service.spring.base.file=${basedir}/${service.base.dir}/src/META-INF/base-spring.xml" />
<arg value="service.spring.cluster.file=${basedir}/${service.base.dir}/src/META-INF/cluster-spring.xml" />
<arg value="service.spring.dynamic.data.source.file=${basedir}/${service.base.dir}/src/META-INF/dynamic-data-source-spring.xml" />
<arg value="service.spring.file=${basedir}/${service.base.dir}/src/META-INF/@{service.spring.file.name}" />
<arg value="service.spring.hibernate.file=${basedir}/${service.base.dir}/src/META-INF/hibernate-spring.xml" />
<arg value="service.spring.infrastructure.file=${basedir}/${service.base.dir}/src/META-INF/infrastructure-spring.xml" />
<arg value="service.spring.shard.data.source.file=${basedir}/${service.base.dir}/src/META-INF/shard-data-source-spring.xml" />
<arg value="service.spring.namespaces=${service.spring.namespaces}" />
<arg value="service.sql.dir=@{service.sql.dir}" />
<arg value="service.sql.file=tables.sql" />
<arg value="service.sql.indexes.file=indexes.sql" />
<arg value="service.sql.indexes.properties.file=indexes.properties" />
<arg value="service.sql.sequences.file=sequences.sql" />
<arg value="service.target.entity.name=${service.target.entity.name}" />
<arg value="service.test.dir=@{service.test.dir}" />
</java>
<if>
<os family="windows" />
<then>
<delete file="service-builder-classpath.jar" />
</then>
</if>
<delete file="ServiceBuilder.temp" />
<echo>${build-service.output}</echo>
<if>
<contains string="${build-service.output}" substring="Error" />
<then>
<fail>Service Builder generated exceptions.</fail>
</then>
</if>
</sequential>
</macrodef>
<macrodef name="classpath-to-jar">
<attribute name="classpathref" />
<attribute name="jarfile" />
<sequential>
<!--
Windows chokes if the classpath is longer than 32 kb. But the
workaround only works for Ant 1.8 and above. See LPS-29085.
-->
<if>
<and>
<not>
<contains string="${ant.version}" substring="1.6" />
</not>
<not>
<contains string="${ant.version}" substring="1.7" />
</not>
</and>
<then>
<manifestclasspath
jarfile="@{jarfile}"
maxParentLevels="99"
property="manifest.classpath"
>
<classpath refid="@{classpathref}" />
</manifestclasspath>
<manifest file="@{jarfile}.manifest">
<attribute name="Class-Path" value="${manifest.classpath}" />
</manifest>
<jar
destfile="@{jarfile}"
manifest="@{jarfile}.manifest"
/>
<delete file="@{jarfile}.manifest" />
<var name="manifest.classpath" unset="true" />
<path id="@{classpathref}">
<fileset file="@{jarfile}" />
</path>
</then>
</if>
</sequential>
</macrodef>
<macrodef name="compile-jsp">
<attribute name="compile.jsp.delete.generated.files" default="true" />
<attribute name="compile.jsp.docroot.dir" />
<attribute name="compile.jsp.temp.dir" default="" />
<sequential>
<if>
<not>
<equals arg1="${app.server.type}" arg2="tomcat" />
</not>
<then>
<fail>Compiling JSPs with ${app.server.type} is not supported.</fail>
</then>
</if>
<if>
<available file="@{compile.jsp.docroot.dir}" />
<then>
<path id="jspc.classpath.common">
<pathelement location="${env.JAVA_HOME}/jre/lib/rt.jar" />
<fileset dir="${app.server.lib.global.dir}" includes="*.jar" />
<fileset dir="${sdk.dir}/dependencies/com.liferay.jasper.jspc/lib" includes="*.jar" />
<pathelement location="${app.server.lib.portal.dir}/ant.jar" />
<fileset dir="${basedir}" includes="lib/*.jar" />
<fileset dir="${basedir}" includes="docroot/WEB-INF/lib/*.jar" />
<fileset dir="@{compile.jsp.docroot.dir}" includes="WEB-INF/lib/*.jar" />
</path>
<local name="jspc.module.web" />
<if>
<equals arg1="@{compile.jsp.temp.dir}" arg2="" />
<then>
<path id="jspc.classpath">
<path refid="jspc.classpath.common" />
<pathelement location="@{compile.jsp.docroot.dir}/WEB-INF/classes" />
</path>
<property name="jspc.module.web" value="false" />
</then>
<else>
<path id="jspc.classpath.module.common">
<path refid="jspc.classpath.common" />
<fileset dir="${app.server.lib.portal.dir}" includes="*.jar" />
<fileset dir="${module.framework.base.dir}/modules" includes="*.jar" />
<pathelement location="@{compile.jsp.temp.dir}" />
</path>
<if>
<available file="@{compile.jsp.docroot.dir}/WEB-INF" type="dir" />
<then>
<path id="jspc.classpath">
<path refid="jspc.classpath.module.common" />
<pathelement location="@{compile.jsp.docroot.dir}/WEB-INF/classes" />
</path>
</then>
<else>
<path id="jspc.classpath">
<path refid="jspc.classpath.module.common" />
</path>
</else>
</if>
<property name="jspc.module.web" value="true" />
</else>
</if>
<tstamp>
<format property="tstamp.value" pattern="yyyyMMddkkmmssSSS" />
</tstamp>
<var name="compile.jsp.jspc.dir" value="${tstamp.value}" />
<mkdir dir="${compile.jsp.jspc.dir}" />
<java
classname="com.liferay.jasper.jspc.JspC"
classpathref="jspc.classpath"
fork="true"
jvm="${env.JAVA_HOME}/bin/java"
newenvironment="true"
outputproperty="jspc.output"
>
<sysproperty key="jspc.module.web" value="${jspc.module.web}" />
<sysproperty key="jspc.portal.dir" value="${app.server.portal.dir}" />
<arg line="-d ${compile.jsp.jspc.dir}/src -webapp @{compile.jsp.docroot.dir}" />
</java>
<echo>${jspc.output}</echo>
<if>
<contains string="${jspc.output}" substring="JasperException" />
<then>
<delete dir="${compile.jsp.jspc.dir}/src" quiet="true" />
<fail>JSPs failed to compile.</fail>
</then>
</if>
<if>
<available file="${compile.jsp.jspc.dir}/src" type="dir" />
<then>
<mkdir dir="${compile.jsp.jspc.dir}/classes" />
<javac
classpathref="jspc.classpath"
compiler="${javac.compiler}"
deprecation="${javac.deprecation}"
destdir="${compile.jsp.jspc.dir}/classes"
encoding="${javac.encoding}"
errorProperty="jspc.javac.fail"
failonerror="false"
includeAntRuntime="false"
nowarn="on"
srcdir="${compile.jsp.jspc.dir}/src"
/>
<if>
<istrue value="@{compile.jsp.delete.generated.files}" />
<then>
<delete dir="${compile.jsp.jspc.dir}" quiet="true" />
</then>
</if>
</then>
</if>
<if>
<istrue value="${jspc.javac.fail}" />
<then>
<fail>JSPs failed to compile.</fail>
</then>
</if>
</then>
</if>
</sequential>
</macrodef>
<target name="all">
<antcall target="clean" />
<antcall target="deploy" />
</target>
<target name="build-client">
<property name="client.url" value="http://localhost:8080/${plugin.name}/api/axis" />
<echo message="Make sure the server is listening on ${client.url}." />
<echo message="" />
<mkdir dir="docroot/WEB-INF/client/src" />
<java
classname="com.liferay.portal.tools.PortalClientBuilder"
classpathref="portal.classpath"
failonerror="true"
fork="true"
newenvironment="true"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<arg value="docroot/WEB-INF/server-config.wsdd" />
<arg value="docroot/WEB-INF/client/src" />
<arg value="docroot/WEB-INF/client/namespace-mapping.properties" />
<arg value="${client.url}" />
</java>
<mkdir dir="docroot/WEB-INF/client/classes" />
<compile-java
javac.classpathref="portal.classpath"
javac.destdir="docroot/WEB-INF/client/classes"
javac.srcdir="docroot/WEB-INF/client/src"
/>
<zip destfile="docroot/WEB-INF/client/${plugin.name}-client.jar">
<fileset dir="docroot/WEB-INF/client/classes" />
<fileset dir="docroot/WEB-INF/client/src" />
</zip>
<delete dir="docroot/WEB-INF/client/classes" />
<delete dir="docroot/WEB-INF/client/src" />
</target>
<target name="build-lang">
<if>
<available file="docroot/WEB-INF/src/content" />
<then>
<antcall target="build-lang-cmd">
<param name="lang.dir" value="docroot/WEB-INF/src/content" />
<param name="lang.file" value="Language" />
<param name="lang.translate" value="true" />
</antcall>
</then>
</if>
<if>
<available file="src/content" />
<then>
<antcall target="build-lang-cmd">
<param name="lang.dir" value="src/content" />
<param name="lang.file" value="Language" />
<param name="lang.translate" value="true" />
</antcall>
</then>
</if>
</target>
<target name="build-lang-cmd">
<java
classname="com.liferay.portal.tools.LangBuilder"
classpathref="portal.classpath"
fork="true"
newenvironment="true"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<jvmarg value="-Dfile.encoding=UTF-8" />
<jvmarg value="-Duser.country=US" />
<jvmarg value="-Duser.language=en" />
<arg value="lang.dir=${lang.dir}" />
<arg value="lang.file=${lang.file}" />
<arg value="lang.plugin=true" />
<arg value="lang.translate=${lang.translate}" />
</java>
<copy file="${lang.dir}/${lang.file}.properties" tofile="${lang.dir}/${lang.file}_en.properties" />
</target>
<target name="build-service">
<if>
<available file="docroot" />
<then>
<var name="service.base.dir" value="docroot/WEB-INF" />
</then>
<else>
<var name="service.base.dir" value="." />
</else>
</if>
<build-service
service.api.dir="${basedir}/${service.base.dir}/service"
service.sql.dir="${basedir}/${service.base.dir}/sql"
service.test.dir=""
/>
<mkdir dir="${service.base.dir}/service-classes" />
<path id="service.classpath">
<path refid="lib.classpath" />
<fileset dir="${app.server.lib.global.dir}" includes="*.jar" />
<fileset dir="${sdk.dir}/dependencies/aQute.bnd/lib" includes="*.jar" />
<fileset dir="${service.base.dir}/lib" excludes="${plugin.name}-service.jar" includes="*.jar" />
</path>
<compile-java
javac.classpathref="service.classpath"
javac.destdir="${service.base.dir}/service-classes"
javac.srcdir="${service.base.dir}/service"
/>
<jar
basedir="${service.base.dir}/service-classes"
destfile="${service.base.dir}/lib/${plugin.name}-service.jar"
/>
<delete dir="${service.base.dir}/service-classes" />
</target>
<target name="build-wsdd">
<loop-macrodef-or-target
module.dirs="${basedir}"
target.name="compile"
/>
<path id="wsdd.builder.classpath">
<path refid="lib.classpath" />
<path refid="portal.classpath" />
<fileset dir="${plugin.lib.dir}" includes="*.jar" />
<pathelement location="${plugin.classes.dir}" />
</path>
<if>
<os family="windows" />
<then>
<classpath-to-jar
classpathref="wsdd.builder.classpath"
jarfile="wsdd-builder-classpath.jar"
/>
</then>
</if>
<java
classname="com.liferay.portal.tools.WSDDBuilder"
classpathref="wsdd.builder.classpath"
fork="true"
maxmemory="256m"
newenvironment="true"
outputproperty="build-wsdd.output"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<jvmarg value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger" />
<arg value="wsdd.input.file=${plugin.source.dir}/../service.xml" />
<arg value="wsdd.server.config.file=${plugin.source.dir}/../server-config.wsdd" />
<arg value="wsdd.service.namespace=Plugin" />
<arg value="wsdd.output.path=${plugin.source.dir}/" />
</java>
<if>
<os family="windows" />
<then>
<delete file="wsdd-builder-classpath.jar" />
</then>
</if>
<echo>${build-wsdd.output}</echo>
<if>
<contains string="${build-wsdd.output}" substring="IOException" />
<then>
<fail>WSDD Builder generated exceptions.</fail>
</then>
</if>
<if>
<available file="bnd.bnd" />
<then>
<property file="bnd.bnd" prefix="bnd." />
<echo file="${plugin.name}-wsdd.bnd">Bundle-SymbolicName: ${bnd.Bundle-SymbolicName}.wsdd
Bundle-Name: ${bnd.Bundle-Name} WSDD descriptors
Bundle-Version: ${bnd.Bundle-Version}
Fragment-Host: ${bnd.Bundle-SymbolicName}
Import-Package: javax.servlet,javax.servlet.http
Include-Resource: WEB-INF/=server-config.wsdd,classes;filter:=*.wsdd
</echo>
<manifest-helper />
<bndexpand propertyfile="${sdk.dir}/common.bnd" />
<bnd eclipse="false" exceptions="true" failok="false" inherit="true" output="${plugin.wsdd.file}">
<bndfiles>
<fileset dir="${basedir}">
<include name="${plugin.name}-wsdd.bnd" />
</fileset>
</bndfiles>
<classpath>
<pathelement location="${plugin.classes.dir}" />
</classpath>
<property name="-sourcepath" value="${basedir}" />
</bnd>
<delete file="${basedir}/${plugin.name}-wsdd.bnd" failonerror="false" />
</then>
</if>
</target>
<target name="compile-import-shared">
<compile-import-shared
module.dir="${basedir}"
/>
</target>
<target name="compile-jsp">
<if>
<resourcecount count="0" when="gt">
<fileset
dir="${basedir}"
excludes="**/custom_jsps/**/*,**/dependencies/**/*"
includes="docroot/**/*.jsp,src/META-INF/resources/**/*.jsp,tmp/**/*.jsp"
/>
</resourcecount>
<then>
<set-module-properties
module.dir="${basedir}"
/>
<if>
<isset property="compile.jsp.docroot.dir" />
<then>
<compile
module.dir="${basedir}"
/>
<compile-jsp
compile.jsp.docroot.dir="${compile.jsp.docroot.dir}"
/>
</then>
<elseif>
<available file="bnd.bnd" type="file" />
<then>
<antcall target="jar">
<param name="plugins.includes.path" value="${basedir}" />
</antcall>
<tstamp>
<format property="tstamp.value" pattern="yyyyMMddkkmmssSSS" />
</tstamp>
<unzip dest="${tstamp.value}" src="${plugin.file}" />
<if>
<available file="${tstamp.value}/META-INF/resources" type="dir" />
<then>
<compile-jsp
compile.jsp.docroot.dir="${tstamp.value}/META-INF/resources"
compile.jsp.temp.dir="${tstamp.value}"
/>
</then>
<else>
<compile-jsp
compile.jsp.docroot.dir="${tstamp.value}"
compile.jsp.temp.dir="${tstamp.value}"
/>
</else>
</if>
<delete dir="${tstamp.value}" />
</then>
</elseif>
<else>
<loop-macrodef-or-target
module.dirs="${basedir}"
target.name="compile"
/>
<compile-jsp
compile.jsp.docroot.dir="docroot"
/>
</else>
</if>
</then>
</if>
</target>
<target name="compile-test">
<compile-test
module.dir="${basedir}"
/>
</target>
<target name="compile-test-integration">
<compile-test-integration
module.dir="${basedir}"
/>
</target>
<target name="compile-test-unit">
<compile-test-unit
module.dir="${basedir}"
/>
</target>
<target name="format-wsdl">
<for param="wsdl.full.path">
<path>
<fileset
dir="."
includes="docroot/WEB-INF/wsdl/*.wsdl,docroot/WEB-INF/wsdl/**/*.wsdl"
/>
</path>
<sequential>
<java
classname="com.liferay.portal.tools.XMLFormatter"
classpathref="portal.classpath"
fork="true"
newenvironment="true"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<jvmarg value="-Dxml.formatter.file=@{wsdl.full.path}" />
<jvmarg value="-Dxml.formatter.strip.comments=true" />
</java>
</sequential>
</for>
</target>
<target name="format-xsd">
<for param="xsd.full.path">
<path>
<fileset
dir="."
includes="docroot/WEB-INF/xsd/*.xsd,docroot/WEB-INF/xsd/**/*.xsd"
/>
</path>
<sequential>
<java
classname="com.liferay.portal.tools.XMLFormatter"
classpathref="portal.classpath"
fork="true"
newenvironment="true"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<jvmarg value="-Dxml.formatter.file=@{xsd.full.path}" />
<jvmarg value="-Dxml.formatter.strip.comments=true" />
</java>
</sequential>
</for>
</target>
<target name="install" depends="publish-local-m2-release" />
<target name="jar-javadoc" depends="javadoc">
<jar-javadoc
module.dir="${basedir}"
/>
</target>
<target name="jar-source">
<jar-source
module.dir="${basedir}"
/>
</target>
<target name="javadoc">
<javadoc-macro
module.dir="${basedir}"
/>
</target>
<target name="merge">
<merge
module.dir="${basedir}"
/>
</target>
<target name="merge-unzip">
<merge-unzip
module.dir="${basedir}"
/>
</target>
<target name="patch">
<var name="patched.file.available" value="false" />
<for param="patched.file">
<path>
<fileset
dir="${plugin.source.dir}"
includes="${patch.destination}"
/>
</path>
<sequential>
<var name="patched.file.available" value="true" />
</sequential>
</for>
<if>
<equals arg1="${patched.file.available}" arg2="false" />
<then>
<mirrors-get
dest="${patch.original.lib.name}-sources.jar"
src="${patch.original.lib.url}/${patch.original.lib.name}/${patch.original.lib.version}/${patch.original.lib.name}-${patch.original.lib.version}-sources.jar"
/>
<unjar
dest="${plugin.source.dir}"
src="${patch.original.lib.name}-sources.jar"
>
<mapper
type="glob"
from="${patch.original.lib.source.dir}/*"
to="*"
/>
<patternset includes="${patch.destination}" />
</unjar>
<delete file="${patch.original.lib.name}-sources.jar" />
<if>
<available file="${patch.source}" type="dir" />
<then>
<pathconvert property="patch.files">
<path>
<fileset dir="${patch.source}" />
</path>
</pathconvert>
</then>
<else>
<pathconvert property="patch.files">
<path>
<fileset file="${patch.source}" />
</path>
</pathconvert>
</else>
</if>
<for delimiter="${path.separator}" list="${patch.files}" param="patch.file">
<sequential>
<echo>Applying patch @{patch.file}.</echo>
<patch dir="${plugin.source.dir}" patchfile="@{patch.file}" strip="1" />
</sequential>
</for>
</then>
</if>
<var name="patched.file.available" unset="true" />
</target>
<target name="shrink-zip-cmd">
<tstamp>
<format property="tstamp.value" pattern="yyyyMMddkkmmssSSS" />
</tstamp>
<unzip
dest="${tstamp.value}"
src="${zip.file.name}"
>
<patternset
excludes="${zip.excludes}"
includes="${zip.includes}"
/>
</unzip>
<zip
basedir="${tstamp.value}"
destfile="${zip.file.name}"
/>
<delete dir="${tstamp.value}" />
</target>
<target name="test-class">
<test-class
module.dir="${basedir}"
test.class="${test.class}"
/>
<stop-test-app-server />
</target>
<target name="test-class-group">
<if>
<not>
<isset property="test.class.group.index" />
</not>
<then>
<fail>Use "ant test-class-group -Dtest.class.group.index=0".</fail>
</then>
</if>
<if>
<available file="${basedir}/test" type="dir" />
<then>
<property file="${lp.portal.project.dir}/test.class.file.names.properties" />
<propertycopy from="TEST_CLASS_GROUP_${test.class.group.index}" name="test.classes" />
<propertyregex property="test.java.classes"
global="true"
input="${test.classes}"
regexp="\.class"
replace=".java"
/>
<if>
<and>
<or>
<not>
<isset property="test.type" />
</not>
<equals arg1="${test.type}" arg2="unit" />
</or>
<resourcecount count="0" when="gt">
<fileset dir="${basedir}/test/unit" erroronmissingdir="false" includes="${test.java.classes}" />
</resourcecount>
</and>
<then>
<test-cmd
module.dir="${basedir}"
junit.forkmode="perTest"
test.class="${test.classes}"
test.type="unit"
/>
</then>
</if>
<if>
<and>
<or>
<not>
<isset property="test.type" />
</not>
<equals arg1="${test.type}" arg2="integration" />
</or>
<resourcecount count="0" when="gt">
<fileset dir="${basedir}/test/integration" erroronmissingdir="false" includes="${test.java.classes}" />
</resourcecount>
</and>
<then>
<test-cmd
module.dir="${basedir}"
junit.forkmode="once"
test.class="${test.classes}"
test.type="integration"
/>
</then>
</if>
</then>
</if>
<if>
<and>
<or>
<not>
<isset property="test.type" />
</not>
<equals arg1="${test.type}" arg2="unit" />
</or>
<equals arg1="${test.class.group.index}" arg2="0" />
</and>
<then>
<antcall target="compile-jsp" />
</then>
</if>
</target>
<target name="test-package">
<if>
<not>
<isset property="test.package" />
</not>
<then>
<fail>Use "ant test-package -Dtest.package=com.liferay.portal.kernel.util".</fail>
</then>
</if>
<propertyregex
global="true"
input="${test.package}"
property="test.package.dir"
regexp="\."
replace="/"
/>
<test-cmd
module.dir="${basedir}"
junit.forkmode="once"
test.class="**/${test.package.dir}/*Test.class"
test.type="integration"
/>
<test-cmd
module.dir="${basedir}"
junit.forkmode="perTest"
test.class="**/${test.package.dir}/*Test.class"
test.type="unit"
/>
</target>
</project>

233
build-common-plugins-inspector.xml

@ -0,0 +1,233 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="build-common-plugins-inspector.xml">
<macrodef name="record-fail">
<attribute name="message" />
<sequential>
<echo append="true" file="../plugins-inspector.log">@{message}${line.separator}</echo>
</sequential>
</macrodef>
<target name="inspect-plugins">
<delete file="../plugins-inspector.log" />
<checksum file="build.xml" property="build.xml.checksum" />
<if>
<not>
<equals arg1="${build.xml.checksum}" arg2="aa45183ecb2cda43d255c7070a6225de" />
</not>
<then>
<record-fail message="build.xml is nonstandard." />
</then>
</if>
<exec dir="." executable="git">
<arg line="clean -d -f -x ." />
</exec>
<trycatch>
<try>
<antcall target="clean" />
</try>
<catch>
<record-fail message="Unable to clean all plugins." />
</catch>
</trycatch>
<trycatch>
<try>
<antcall target="compile" />
</try>
<catch>
<record-fail message="Unable to compile all plugins." />
</catch>
</trycatch>
<for param="module.name">
<path>
<dirset dir="." includes="*" />
</path>
<sequential>
<if>
<and>
<available file="@{module.name}/docroot" />
<available file="@{module.name}/src" />
</and>
<then>
<record-fail message="Module @{module.name} must not have both a &quot;docroot&quot; and a &quot;src&quot; directory." />
</then>
</if>
<if>
<and>
<not>
<available file="@{module.name}/docroot" />
</not>
<not>
<available file="@{module.name}/src" />
</not>
</and>
<then>
<record-fail message="Module @{module.name} must have a &quot;docroot&quot; or a &quot;src&quot; directory." />
</then>
</if>
<if>
<available file="@{module.name}/docroot/WEB-INF/liferay-hook.xml" />
<then>
<if>
<and>
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="&lt;language-properties&gt;" />
<not>
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="&lt;language-properties&gt;content/Language*.properties&lt;/language-properties&gt;" />
</not>
</and>
<then>
<record-fail message="@{module.name}/docroot/WEB-INF/liferay-hook.xml has an nonstandard language-properties element." />
</then>
</if>
<if>
<and>
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="&lt;custom-jsp-dir&gt;" />
<not>
<resourcecontains resource="@{module.name}/docroot/WEB-INF/liferay-hook.xml" substring="&lt;custom-jsp-dir&gt;/META-INF/custom_jsps&lt;/custom-jsp-dir&gt;" />
</not>
</and>
<then>
<record-fail message="@{module.name}/docroot/WEB-INF/liferay-hook.xml has a nonstandard custom-jsp-dir element." />
</then>
</if>
</then>
</if>
<if>
<resourcecontains resource="@{module.name}/docroot/WEB-INF/web.xml" substring="Invoker Filter" />
<then>
<record-fail message="@{module.name}/docroot/WEB-INF/web.xml contains generated code." />
</then>
</if>
<if>
<available file="@{module.name}/ivy.xml.MD5" />
<then>
<record-fail message="@{module.name}/ivy.xml.MD5 must not be checked into source control." />
</then>
</if>
<if>
<available file="@{module.name}/docroot/WEB-INF/lib" />
<then>
<record-fail message="@{module.name}/docroot/WEB-INF/lib must not be checked into source control." />
</then>
</if>
<if>
<available file="@{module.name}/docroot/WEB-INF/tld" />
<then>
<record-fail message="@{module.name}/docroot/WEB-INF/tld must not be checked into source control." />
</then>
</if>
<if>
<available file="@{module.name}/lib" />
<then>
<record-fail message="@{module.name}/lib must not be checked into source control." />
</then>
</if>
</sequential>
</for>
<exec dir="." executable="git" outputproperty="git.command.output">
<arg line="status ." />
</exec>
<if>
<available file=".gitignore" />
<then>
<echo file=".gitignore">/*/bin
/*/classes
/*/ivy.xml.MD5
/*/javadoc
/*/lib
/*/test-classes
/*/test-results</echo>
</then>
</if>
<if>
<resourcecount count="0" when="gt">
<fileset defaultexcludes="false" dir="." includes="**/.gitignore" />
</resourcecount>
<then>
<record-fail message="Plugins must not have custom .gitignore files." />
</then>
</if>
<if>
<or>
<contains string="${git.command.output}" substring="Changes not staged for commit" />
<contains string="${git.command.output}" substring="Untracked files" />
</or>
<then>
<record-fail message="Plugins must not generate modified files." />
</then>
</if>
<trycatch>
<try>
<loadfile property="plugins-inspector.log.content" srcFile="../plugins-inspector.log" />
<if>
<equals arg1="${basedir.name}" arg2="test-broken" />
<then>
<checksum file="../plugins-inspector.log" property="plugins-inspector.log.actual.checksum" />
<property name="plugins-inspector.log.expected.checksum" value="20988e2ed40f504cbc58c773e24b7fe5" />
<if>
<not>
<equals arg1="${plugins-inspector.log.actual.checksum}" arg2="${plugins-inspector.log.expected.checksum}" />
</not>
<then>
<copy file="../plugins-inspector.log" tofile="../plugins-inspector.log.test-broken" />
<echo>${plugins-inspector.log.content}</echo>
<fail>Plugins inspector is not detecting all errors. Expected &quot;${plugins-inspector.log.expected.checksum}&quot; but found &quot;${plugins-inspector.log.actual.checksum}&quot;.</fail>
</then>
</if>
</then>
<elseif>
<equals arg1="${basedir.name}" arg2="test-working" />
<then>
<if>
<available file="../plugins-inspector.log" />
<then>
<echo>${plugins-inspector.log.content}</echo>
<fail>Plugins inspector is not detecting false errors.</fail>
</then>
</if>
</then>
</elseif>
<else>
<if>
<available file="../plugins-inspector.log" />
<then>
<echo>${plugins-inspector.log.content}</echo>
<fail>Plugins inspector detected errors.</fail>
</then>
</if>
</else>
</if>
</try>
<finally>
<delete file="../plugins-inspector.log" />
</finally>
</trycatch>
</target>
</project>

105
build-common-plugins.xml

@ -0,0 +1,105 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="build-common-plugins" xmlns:antelope="antlib:ise.antelope.tasks">
<import file="build-common.xml" />
<import file="build-common-plugins-inspector.xml" />
<path id="plugins.includes.path">
<dirset dir="." excludes="${plugins.excludes}" includes="${plugins.includes}" />
</path>
<pathconvert pathsep="," property="plugins.includes.path" refid="plugins.includes.path" targetos="unix" />
<if>
<equals arg1="${basedir}" arg2="${user.dir}" />
<then>
<property name="plugin.type.dir" value=".." />
</then>
<else>
<property name="plugin.type.dir" value="${basedir}" />
</else>
</if>
<target name="build-service">
<for param="service.file">
<path>
<fileset
dir="."
includes="**/service.xml"
/>
</path>
<sequential>
<antelope:stringutil string="@{service.file}" property="service.file.index">
<antelope:indexof string="docroot" fromindex="0" />
</antelope:stringutil>
<if>
<equals arg1="${service.file.index}" arg2="-1" />
<then>
<antelope:stringutil string="@{service.file}" property="service.file.index">
<antelope:indexof string="service.xml" fromindex="0" />
</antelope:stringutil>
</then>
</if>
<antelope:stringutil string="@{service.file}" property="portlet.dir">
<antelope:substring beginindex="0" endindex="${service.file.index}" />
</antelope:stringutil>
<if>
<available file="${portlet.dir}/build.xml" />
<then>
<ant dir="${portlet.dir}" target="build-service" inheritAll="false" />
</then>
</if>
</sequential>
</for>
</target>
<target name="install">
<multiroot-subant
build.file="build.xml"
excludes="${plugins.excludes}"
includes="${plugins.includes}"
root.dir="${basedir}"
target="install"
/>
</target>
<target name="setup-eclipse">
<multiroot-subant
build.file="build.xml"
excludes="${plugins.excludes}"
includes="${plugins.includes}"
root.dir="${basedir}"
target="setup-eclipse"
/>
</target>
<target name="test-class-group">
<multiroot-subant
build.file="build.xml"
excludes="${plugins.excludes}"
includes="${plugins.includes}"
root.dir="${basedir}"
target="test-class-group"
>
<properties>
<propertyset>
<propertyref name="test.type" />
</propertyset>
</properties>
</multiroot-subant>
</target>
<target name="test-package">
<multiroot-subant
build.file="build.xml"
excludes="${plugins.excludes}"
includes="${plugins.includes}"
root.dir="${basedir}"
target="test-package"
/>
</target>
</project>

3535
build-common.xml

File diff soppresso perché troppo grande Load Diff

544
build.properties

@ -0,0 +1,544 @@
##
## DO NOT EDIT THIS FILE.
##
## To update the properties of this file, create a separate properties file
## named "build.${user.name}.properties" with the properties to overwrite.
##
##
## Application Server
##
#
# Specify the application server type.
#
#app.server.type=geronimo
#app.server.type=glassfish
#app.server.type=jboss
#app.server.type=jetty
#app.server.type=jonas
#app.server.type=resin
app.server.type=tomcat
#app.server.type=weblogic
#app.server.type=websphere
#app.server.type=wildfly
#
# Specify the application server parent directory.
#
app.server.parent.dir=${sdk.dir}/../bundles
#
# Specify the paths to an unzipped Geronimo bundle.
#
app.server.geronimo.dir=${app.server.parent.dir}/geronimo-2.2.1
app.server.geronimo.deploy.dir=${app.server.geronimo.dir}/deploy
app.server.geronimo.lib.global.dir=${app.server.geronimo.dir}/var/shared/lib
app.server.geronimo.portal.dir=${app.server.geronimo.dir}/deploy/liferay-portal
#
# Specify the paths to an unzipped Glassfish bundle.
#
app.server.glassfish.dir=${app.server.parent.dir}/glassfish-3.1.2.2
app.server.glassfish.deploy.dir=${app.server.glassfish.dir}/autodeploy
app.server.glassfish.lib.global.dir=${app.server.glassfish.dir}/domains/domain1/lib
app.server.glassfish.portal.dir=${app.server.glassfish.dir}/domains/domain1/applications/liferay-portal
#
# Specify the paths to an unzipped JBoss bundle.
#
app.server.jboss.dir=${app.server.parent.dir}/jboss-eap-6.1.0
app.server.jboss.deploy.dir=${app.server.jboss.dir}/standalone/deployments
app.server.jboss.lib.global.dir=${app.server.jboss.dir}/modules/com/liferay/portal/main
app.server.jboss.portal.dir=${app.server.jboss.dir}/standalone/deployments/ROOT.war
#
# Specify the paths to an unzipped Jetty bundle.
#
app.server.jetty.dir=${app.server.parent.dir}/jetty-8.1.10
app.server.jetty.deploy.dir=${app.server.jetty.dir}/webapps
app.server.jetty.lib.global.dir=${app.server.jetty.dir}/lib/ext/liferay
app.server.jetty.portal.dir=${app.server.jetty.dir}/webapps/root
#
# Specify the paths to an unzipped JOnAS bundle.
#
app.server.jonas.dir=${app.server.parent.dir}/jonas-5.2.3
app.server.jonas.deploy.dir=${app.server.jonas.dir}/deploy
app.server.jonas.lib.global.dir=${app.server.jonas.dir}/lib/ext
app.server.jonas.portal.dir=${app.server.jonas.dir}/deploy/liferay-portal
#
# Specify the paths to an unzipped Resin bundle.
#
app.server.resin.dir=${app.server.parent.dir}/resin-4.0.44
app.server.resin.deploy.dir=${app.server.resin.dir}/webapps
app.server.resin.lib.global.dir=${app.server.resin.dir}/ext-lib
app.server.resin.portal.dir=${app.server.resin.dir}/webapps/ROOT
#
# Specify the paths to an unzipped tc Server bundle.
#
app.server.tcserver.dir=${app.server.parent.dir}/tc-server-2.6.4
app.server.tcserver.deploy.dir=${app.server.tcserver.dir}/liferay/webapps
app.server.tcserver.lib.global.dir=${app.server.tcserver.dir}/liferay/lib
app.server.tcserver.portal.dir=${app.server.tcserver.dir}/liferay/webapps/ROOT
#
# Specify the paths to an unzipped Tomcat bundle.
#
app.server.tomcat.dir=${app.server.parent.dir}/tomcat-7.0.62
app.server.tomcat.deploy.dir=${app.server.tomcat.dir}/webapps
app.server.tomcat.lib.global.dir=${app.server.tomcat.dir}/lib/ext
app.server.tomcat.manager.user=tomcat
app.server.tomcat.manager.password=tomcat
app.server.tomcat.portal.dir=${app.server.tomcat.dir}/webapps/ROOT
#
# Specify the paths to a WebLogic domain with Liferay installed.
#
app.server.weblogic.dir=${app.server.parent.dir}/weblogic-12.1.3
app.server.weblogic.deploy.dir=${app.server.weblogic.dir}/domains/liferay/autodeploy
app.server.weblogic.lib.global.dir=${app.server.weblogic.dir}/domains/liferay/lib
app.server.weblogic.portal.dir=${app.server.weblogic.dir}/domains/liferay/autodeploy/ROOT
#
# Specify the paths to a WebSphere profile with Liferay installed.
#
app.server.websphere.dir=${app.server.parent.dir}/websphere-7.0
app.server.websphere.deploy.dir=${app.server.websphere.dir}/profiles/liferay/wsadmin-deploy
app.server.websphere.lib.global.dir=${app.server.websphere.dir}/lib/ext
app.server.websphere.portal.dir=${app.server.websphere.dir}/profiles/liferay/installedApps/liferay-cell/liferay-portal.ear/liferay-portal.war
#
# Specify the paths to an unzipped JBoss AS bundle.
#
app.server.wildfly.dir=${app.server.parent.dir}/jboss-7.1.1
app.server.wildfly.deploy.dir=${app.server.wildfly.dir}/standalone/deployments
app.server.wildfly.lib.global.dir=${app.server.wildfly.dir}/modules/com/liferay/portal/main
app.server.wildfly.portal.dir=${app.server.wildfly.dir}/standalone/deployments/ROOT.war
##
## Auto Deploy
##
#
# Plugins will be deployed to this directory. Make sure that Liferay is
# also set to scan this directory.
#
auto.deploy.dir=${app.server.parent.dir}/deploy
#
# Set this to true if deployed WARs are unpacked. Set this to false your
# application server has concurrency issues with deploying large WARs.
#
auto.deploy.unpack.war=true
#
# Set this to true if you want the deployer to rename portlet.xml to
# portlet-custom.xml. This is only needed when deploying the portal on
# WebSphere 6.1.x with a version before 6.1.0.7 because WebSphere's portlet
# container will try to process a portlet at the same time that Liferay is
# trying to process a portlet.
#
auto.deploy.custom.portlet.xml=false
##
## Baseline JAR
##
baseline.jar.bnddir.name=.bnd
baseline.jar.report.level=diff
#baseline.jar.report.level=off
#baseline.jar.report.level=persist
#baseline.jar.report.level=standard
baseline.jar.report.only.dirty.packages=true
baseline.jar.reports.dir.name=baseline-reports
-baseline=
-baselinerepo=localrepo
-fixupmessages: "While setting properties ...";is:=ignore
-jsp: *.jsp,*.jspf
-metatype: *
-plugin=\
aQute.bnd.deployer.repository.LocalIndexedRepo;\
local=${sdk.dir}/.bnd/localrepo;\
name=localrepo;\
phase=any;\
type=R5,\
aQute.bnd.deployer.repository.FixedIndexedRepo;\
cache=${sdk.dir}/.bnd/remoterepo;\
locations='http://obr.liferay.com/r5/liferay-portal/index.xml.gz';\
name=remoterepo;\
phase=any;\
type=R5,\
com.liferay.ant.bnd.bower.BowerAnalyzerPlugin,\
com.liferay.ant.bnd.jsp.JspAnalyzerPlugin,\
com.liferay.ant.bnd.sass.SassAnalyzerPlugin
-pluginpath=${sdk.dir}/osgi/lib/plugin/bnd-repository.jar
-releaserepo=localrepo
-sass: *
##
## BND JSP Support
##
#
# When creating bundles which contain JSPs, simply add ${bnd.jsp.support.imports} as
# part of the package imports in the bnd file.
#
bnd.jsp.support.imports=\
${bnd.jsp.support.imports.javax.el},\
${bnd.jsp.support.imports.javax.servlet},\
${bnd.jsp.support.imports.javax.servlet.jsp},\
${bnd.jsp.support.imports.javax.servlet.jsp.jstl},\
${bnd.jsp.support.imports.org.apache.jasper},\
${bnd.jsp.support.imports.org.apache.taglibs.standard},\
${bnd.jsp.support.imports.xml},\
javax.tools
bnd.jsp.support.imports.javax.el=\
com.sun.el;version='${bnd.jsp.support.version.javax.el}',\
com.sun.el.lang;version='${bnd.jsp.support.version.javax.el}',\
com.sun.el.parser;version='${bnd.jsp.support.version.javax.el}',\
com.sun.el.stream;version='${bnd.jsp.support.version.javax.el}',\
com.sun.el.util;version='${bnd.jsp.support.version.javax.el}',\
javax.el;version='${bnd.jsp.support.version.javax.el}'
bnd.jsp.support.imports.javax.servlet=\
javax.servlet;version='${bnd.jsp.support.version.javax.servlet}',\
javax.servlet.annotation;version='${bnd.jsp.support.version.javax.servlet}',\
javax.servlet.descriptor;version='${bnd.jsp.support.version.javax.servlet}',\
javax.servlet.http;version='${bnd.jsp.support.version.javax.servlet}',\
javax.servlet.resources
bnd.jsp.support.imports.javax.servlet.jsp=\
javax.servlet.jsp;version='${bnd.jsp.support.version.javax.servlet.jsp}',\
javax.servlet.jsp.el;version='${bnd.jsp.support.version.javax.servlet.jsp}',\
javax.servlet.jsp.tagext;version='${bnd.jsp.support.version.javax.servlet.jsp}'
bnd.jsp.support.imports.javax.servlet.jsp.jstl=\
javax.servlet.jsp.jstl.core;version='${bnd.jsp.support.version.javax.servlet.jsp.jstl}',\
javax.servlet.jsp.jstl.fmt;version='${bnd.jsp.support.version.javax.servlet.jsp.jstl}',\
javax.servlet.jsp.jstl.sql;version='${bnd.jsp.support.version.javax.servlet.jsp.jstl}',\
javax.servlet.jsp.jstl.tlv;version='${bnd.jsp.support.version.javax.servlet.jsp.jstl}'
bnd.jsp.support.imports.org.apache.jasper=\
org.apache.jasper;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.compiler;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.compiler.tagplugin;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.resources;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.runtime;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.security;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.servlet;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.tagplugins.jstl;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.apache.jasper.xmlparser;version='${bnd.jsp.support.version.org.apache.jasper}',\
org.glassfish.jsp.api;version='${bnd.jsp.support.version.org.apache.jasper}'
bnd.jsp.support.imports.org.apache.taglibs.standard=\
org.apache.taglibs.standard;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.extra.spath;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.functions;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.lang.jstl;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.lang.jstl.parser;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.lang.jstl.test;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.lang.jstl.test.beans;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.lang.support;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.resources;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.common.core;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.common.fmt;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.common.sql;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.common.xml;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.el.core;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.el.fmt;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.el.sql;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.el.xml;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.rt.core;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.rt.fmt;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.rt.sql;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tag.rt.xml;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tei;version='${bnd.jsp.support.version.org.apache.taglibs.standard}',\
org.apache.taglibs.standard.tlv;version='${bnd.jsp.support.version.org.apache.taglibs.standard}'
bnd.jsp.support.imports.xml=\
javax.xml.parsers,\
javax.xml.transform,\
javax.xml.transform.dom,\
javax.xml.transform.stream,\
javax.xml.validation,\
org.w3c.dom,\
org.w3c.dom.ls,\
org.xml.sax,\
org.xml.sax.ext,\
org.xml.sax.helpers
bnd.jsp.support.version.javax.el=[3.0.0,4.0)
bnd.jsp.support.version.javax.servlet=[2.6.0,4.0.0)
bnd.jsp.support.version.javax.servlet.jsp=[2.3.2,3.0)
bnd.jsp.support.version.javax.servlet.jsp.jstl=[1.2.1,2.0)
bnd.jsp.support.version.org.apache.jasper=[2.3.2,3.0)
bnd.jsp.support.version.org.apache.taglibs.standard=[1.2.3,2.0)
##
## Clean
##
clean.delete.ivy.md5=false
clean.delete.lib=false
##
## Compiler
##
ant.build.javac.source=1.7
ant.build.javac.target=1.7
#javac.compiler=com.google.errorprone.ErrorProneAntCompilerAdapter
#javac.compiler=modern
javac.compiler=org.eclipse.jdt.core.JDTCompilerAdapter
javac.debug=on
javac.deprecation=off
javac.encoding=UTF-8
javac.nowarn=on
##
## Database
##
#
# Set the database name used by the SQL scripts.
#
database.name=lportal
#
# Set the database server types to build SQL scripts for.
#
database.types=db2,derby,firebird,hypersonic,informix,ingres,interbase,jdatastore,mysql,oracle,postgresql,sap,sqlserver,sybase
#database.types=mysql
##
## Extension Environment
##
#ext.work.dir=
##
## Ivy
##
ivy.cache.ttl.default=eternal
ivy.custom.settings.file=${sdk.dir}/ivy-settings.xml
ivy.home=${sdk.dir}/.ivy
#ivy.jar.url=http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar
ivy.jar.url=https://cdn.lfrs.sl/repository.liferay.com/nexus/content/repositories/liferay-public-snapshots/com/liferay/org.apache.ivy/${ivy.version}/org.apache.ivy-${ivy.version}.jar
ivy.log.level=quiet
ivy.pom.developer.name=Brian Wing Shun Chan
ivy.pom.developer.organization=Liferay, Inc.
ivy.pom.developer.organizationUrl=http://www.liferay.com
ivy.pom.license.name=LGPL 2.1
ivy.pom.license.url=http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
ivy.pom.scm.connection=scm:git:git@github.com:liferay/liferay-plugins.git
ivy.pom.scm.developerConnection=scm:git:git@github.com:liferay/liferay-plugins.git
ivy.pom.scm.url=http://github.com/liferay/liferay-plugins
ivy.resolve.transitive.dependencies.test=true
ivy.resolve.transitive.dependencies=true
#ivy.version=2.4.0
ivy.version=2.4.0.LIFERAY-PATCHED-1-SNAPSHOT
##
## JMX
##
jmx.remote.port=8099
##
## JRebel
##
#
# Set the directory that will be used to generate a plugin's JRebel
# configuraton file. Not specifying a directory means that the generated
# JRebel configuration file will be placed in a plugin's compiled classes
# output directory. This is also the directory that JRebel will use to look
# for updated classes.
#
#jrebel.plugin.classes.dir=
##
## JUnit
##
junit.debug.jpda=-agentlib:jdwp=transport=dt_socket,address=8001,server=y,suspend=y
junit.halt.on.failure=false
junit.java.integration.gc=-Xms512m -Xmx512m -XX:MaxNewSize=32m -XX:MaxPermSize=200m -XX:MaxTenuringThreshold=0 -XX:NewSize=32m -XX:ParallelGCThreads=2 -XX:PermSize=200m -XX:SurvivorRatio=65536 -XX:TargetSurvivorRatio=0 -XX:-UseAdaptiveSizePolicy -XX:+UseParallelOldGC
junit.java.unit.gc=-Xms256m -Xmx256m -XX:MaxNewSize=32m -XX:MaxPermSize=64m -XX:MaxTenuringThreshold=0 -XX:NewSize=32m -XX:ParallelGCThreads=2 -XX:PermSize=64m -XX:SurvivorRatio=65536 -XX:TargetSurvivorRatio=0 -XX:-UseAdaptiveSizePolicy -XX:+UseParallelOldGC
junit.java.unit.gc.logging=off
junit.jvm=java
junit.test.excludes=(?!)
##
## Libraries
##
required.portal.jars=commons-logging.jar,log4j.jar,util-bridges.jar,util-java.jar,util-taglib.jar
##
## Liferay Home
##
liferay.home=${app.server.parent.dir}/..
##
## Mirrors
##
mirrors.cache.dir=${user.home}/.liferay/mirrors
##
## Module Framework
##
#
# Set the directory which will form the base path of the module framework.
#
module.framework.base.dir=${liferay.home}/osgi
##
## NodeJS
##
nodejs.npm.url=http://nodejs.org/dist/npm/npm-${nodejs.npm.version}.zip
nodejs.npm.version=1.4.9
#nodejs.url=
nodejs.url[linux32]=http://nodejs.org/dist/v${nodejs.version}/node-v${nodejs.version}-linux-x86.tar.gz
nodejs.url[linux64]=http://nodejs.org/dist/v${nodejs.version}/node-v${nodejs.version}-linux-x64.tar.gz
nodejs.url[osx32]=http://nodejs.org/dist/v${nodejs.version}/node-v${nodejs.version}-darwin-x86.tar.gz
nodejs.url[osx64]=http://nodejs.org/dist/v${nodejs.version}/node-v${nodejs.version}-darwin-x64.tar.gz
nodejs.url[windows32]=http://nodejs.org/dist/v${nodejs.version}/node.exe
nodejs.url[windows64]=http://nodejs.org/dist/v${nodejs.version}/x64/node.exe
nodejs.version=0.10.35
##
## Operating Systems
##
os.apple=Mac OS X
os.unix=Linux,FreeBSD,Solaris,SunOS
os.windows=Windows 95,Windows 98,Windows NT,Windows 2000,Windows 2003,Windows XP,Windows Vista,Windows 7
##
## PGP
##
pgp.generator=
pgp.keyname=auto
pgp.passphrase=
##
## Plugins
##
#
# Set the excludes and includes attributes. These attributes are read when
# you run "ant" from the hooks, layouttpl, portlets, shared, themes, or webs
# directory. By default, the ant task will go through every subdirectory.
# Setting these attributes can limit it to just the plugins you're working
# on.
#
plugins.excludes=modules-admin-portlet
plugins.includes=*
#
# Set the excludes and includes attributes for converting a bundle that has
# the portal and a set of deployed plugins into an EAR file. The web
# applications that match these attributes will be included into the
# generated liferay-portal.ear via the command "ant ear".
#
# For example, if you are using Tomcat, then the directory specified in
# the property "app.server.tomcat.deploy.dir" will point to
# ${app.server.tomcat.dir}/webapps by default. Running "ant ear" will create
# an EAR based on all the WARs in that directory with names that match the
# excludes and includes from these two properties.
#
plugins.ear.excludes=
plugins.ear.includes=tunnel-web
#
# Specify the path of the portal servlet context.
#
# Set this property if you deploy the portal to another path besides root.
#
plugins.ear.portal.context.path=/
#
# Set this to true to generate a source ZIP file when creating a plugin WAR
# file.
#
plugins.src.zip.enabled=false
#
# Set this to true to optimize the size of plugin WAR files by not included
# portal dependencies that will can injected at deploy time.
#
plugins.war.clean.portal.dependencies=true
#
# Set the excludes attributes to specify files that will be excluded from a
# plugin WAR.
#
#plugins.war.excludes=**/WEB-INF/service/**,**/WEB-INF/src/**
##
## PMD
##
pmd.cpd.minimun.token.count=100
pmd.java.excludes=apps/**,tools/**
pmd.java.includes=**/src/**/*.java
pmd.java.ruleset=${sdk.dir}/dependencies/net.sourceforge.pmd/rulesets/java/standard-rules.xml
pmd.output.console=true
pmd.output.type=xml
pmd.threads=2
##
## Snapshot
##
snapshot.check.enabled=true
##
## Sonatype
##
sonatype.release.hostname=repository.liferay.com
sonatype.release.password=
sonatype.release.realm=Sonatype Nexus Repository Manager
sonatype.release.url=https://repository.liferay.com/nexus/content/repositories/liferay-public-releases
sonatype.release.username=
sonatype.snapshot.hostname=repository.liferay.com
sonatype.snapshot.password=
sonatype.snapshot.realm=Sonatype Nexus Repository Manager
sonatype.snapshot.url=https://repository.liferay.com/nexus/content/repositories/liferay-public-snapshots
sonatype.snapshot.username=
##
## Version
##
#
# Set the version of Liferay Portal that these plugins are designed for.
#
lp.version=6.2.0
lp.version.file.suffix=

9
build.ture.properties

@ -0,0 +1,9 @@
# Managed by Liferay IDE (remove this comment to prevent future updates)
app.server.tomcat.lib.global.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62/lib/ext
app.server.tomcat.deploy.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62/webapps
app.server.parent.dir = /home/ture/liferay/portali/paesaggistica
app.server.tomcat.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62
app.server.type = tomcat
app.server.tomcat.portal.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62/webapps/ROOT
javac.encoding = UTF-8

9
build.ture.properties.paesaggistica

@ -0,0 +1,9 @@
# Managed by Liferay IDE (remove this comment to prevent future updates)
app.server.tomcat.lib.global.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62/lib/ext
app.server.tomcat.deploy.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62/webapps
app.server.parent.dir = /home/ture/liferay/portali/paesaggistica
app.server.tomcat.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62
app.server.type = tomcat
app.server.tomcat.portal.dir = /home/ture/liferay/portali/paesaggistica/tomcat-7.0.62/webapps/ROOT
javac.encoding = UTF-8

282
build.xml

@ -0,0 +1,282 @@
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="plugins" basedir="." default="all" xmlns:antelope="antlib:ise.antelope.tasks">
<import file="build-common.xml" />
<condition property="plugins.includes.path" value="">
<or>
<equals arg1="${plugins.includes}" arg2="" />
<not>
<isset property="plugins.includes" />
</not>
</or>
</condition>
<path id="plugins.includes.path">
<dirset dir="apps/content-targeting" excludes="${plugins.excludes}" includes="${plugins.includes}" />
<dirset dir="hooks" excludes="${plugins.excludes}" includes="${plugins.includes}" />
<dirset dir="layouttpl" excludes="${plugins.excludes}" includes="${plugins.includes}" />
<dirset dir="portlets" excludes="${plugins.excludes}" includes="${plugins.includes}" />
<dirset dir="shared" excludes="${plugins.excludes}" includes="${plugins.includes}" />
<dirset dir="themes" excludes="${plugins.excludes}" includes="${plugins.includes}" />
<dirset dir="webs" excludes="${plugins.excludes}" includes="${plugins.includes}" />
</path>
<pathconvert pathsep="," property="plugins.includes.path" refid="plugins.includes.path" targetos="unix" />
<target name="all">
<antcall target="clean" />
<antcall target="deploy" />
</target>
<target name="build-service">
<ant dir="hooks" target="build-service" inheritAll="false" />
<ant dir="portlets" target="build-service" inheritAll="false" />
<ant dir="webs" target="build-service" inheritAll="false" />
</target>
<target name="build-summary">
<exec executable="git" outputproperty="git.branch">
<arg line="rev-parse --abbrev-ref HEAD"/>
</exec>
<if>
<or>
<equals arg1="${git.branch}" arg2="master" />
<matches pattern="ee-.*x$" string="${git.branch}" />
</or>
<then>
<delete>
<fileset dir="." includes="**/liferay-releng.changelog" />
<fileset dir="." includes="**/liferay-releng.changelog.md5" />
</delete>
<copy todir="${sdk.dir}" overwrite="true">
<fileset dir="${release.plugins.dir}">
<include name="**/liferay-plugin-package.properties" />
</fileset>
</copy>
</then>
<else>
<java
classname="com.liferay.portal.tools.PluginsSummaryBuilder"
classpathref="portal.classpath"
fork="true"
newenvironment="true"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<jvmarg value="-Dplugins.dir=${sdk.dir}" />
</java>
<java
classname="com.liferay.portal.tools.XSLTBuilder"
classpathref="portal.classpath"
fork="true"
newenvironment="true"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<arg value="${sdk.dir}/summary.xml" />
<arg value="${sdk.dir}/summary.xsl" />
<arg value="${sdk.dir}/summary.html" />
</java>
</else>
</if>
</target>
<target name="ear">
<delete dir="dist/liferay-portal.ear" />
<delete dir="dist/modules" />
<copy todir="dist" overwrite="yes">
<fileset
dir="${sdk.dir}/tools/templates/ear_tmpl"
/>
</copy>
<copy todir="dist/modules/APP-INF/lib">
<fileset dir="${app.server.lib.global.dir}">
<include name="*.jar" />
</fileset>
</copy>
<fileset dir="dist/modules" id="ear.dependency.libraries">
<include name="APP-INF/lib/*.jar" />
</fileset>
<pathconvert pathsep=" " property="ear.dependency.libraries.converted" refid="ear.dependency.libraries">
<mapper>
<chainedmapper>
<flattenmapper />
<globmapper from="*.jar" to="APP-INF/lib/*.jar" />
</chainedmapper>
</mapper>
</pathconvert>
<war
basedir="${app.server.portal.dir}"
destfile="dist/modules/liferay-portal.war"
>
<manifest>
<attribute name="Class-Path" value="${ear.dependency.libraries.converted}" />
</manifest>
</war>
<for param="module.full.path">
<path>
<dirset
dir="${app.server.deploy.dir}"
excludes="${plugins.ear.excludes}"
includes="${plugins.ear.includes}"
/>
</path>
<sequential>
<antelope:stringutil string="@{module.full.path}" property="module.full.path.unix">
<antelope:replace regex="\\" replacement="/" />
</antelope:stringutil>
<antelope:grep in="${module.full.path.unix}" regex="(.*/)(.*)" group="2" property="module.name" />
<war
basedir="@{module.full.path}"
destfile="dist/modules/${module.name}.war"
/>
</sequential>
</for>
<fileset dir="dist/modules" id="ear.modules">
<include name="*.war" />
</fileset>
<pathconvert pathsep="," property="ear.modules.converted" refid="ear.modules">
<mapper>
<chainedmapper>
<flattenmapper />
</chainedmapper>
</mapper>
</pathconvert>
<java
classname="com.liferay.portal.tools.EARBuilder"
classpathref="portal.classpath"
fork="true"
newenvironment="true"
>
<jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
<arg value="${basedir}/dist/modules/META-INF/application.xml" />
<arg value="${ear.modules.converted}" />
<arg value="${plugins.ear.portal.context.path}" />
</java>
<ear
appxml="dist/modules/META-INF/application.xml"
basedir="dist/modules"
destfile="dist/liferay-portal.ear"
excludes="META-INF/application.xml"
includes="**/*.jar,*.war,META-INF/*.xml"
/>
<delete dir="dist/modules" />
</target>
<target name="extract-plugins-sdk">
<mkdir dir="dist" />
<delete file="dist/liferay-plugins-sdk-${lp.version}.zip" />
<ant dir="webs/resources-importer-web" target="clean" inheritAll="false" />
<zip destfile="dist/liferay-plugins-sdk-${lp.version}.zip">
<zipfileset
dir="."
excludes="**/.gradle/**,**/build/**,**/gradle.properties,**/test.*.properties,*.iml,.bnd/**,.git/**,.ivy/**,build.*.properties,build.gradle,dependencies/**/ivy.xml.MD5,dependencies/**/lib/**,dist/**,ext/*-ext/**,gradle/**,gradlew*,hooks/*-hook/**,ivy.xml.MD5,layouttpl/*-layouttpl/**,lib/**,portlets/*-portlet/**,private-plugins.txt,settings.gradle,shared/*-shared/**,source_formatter_*,suites/**,summary.*,themes/*-theme/**,tmp/**,tools/node-*/**,webs/*-web/**"
prefix="liferay-plugins-sdk-${lp.version}"
/>
<zipfileset
dir="."
excludes="**/releng/**"
includes="webs/resources-importer-web/**"
prefix="liferay-plugins-sdk-${lp.version}"
/>
<zipfileset
dir="."
includes="lib/ant-contrib.jar,lib/antelopetasks.jar,lib/bcpg-jdk16.jar,lib/bcprov-jdk16.jar"
prefix="liferay-plugins-sdk-${lp.version}"
/>
</zip>
</target>
<target name="format-javadoc">
<ant dir="hooks" target="format-javadoc" inheritAll="false" />
<ant dir="layouttpl" target="format-javadoc" inheritAll="false" />
<ant dir="portlets" target="format-javadoc" inheritAll="false" />
<ant dir="themes" target="format-javadoc" inheritAll="false" />
<ant dir="webs" target="format-javadoc" inheritAll="false" />
</target>
<target name="setup-eclipse">
<loop-macrodef-or-target
module.dirs="${plugins.includes.path}"
target.name="clean"
/>
<loop-macrodef-or-target
module.dirs="${plugins.includes.path}"
target.name="compile"
/>
<ant dir="hooks" target="setup-eclipse" inheritAll="false" />
<ant dir="portlets" target="setup-eclipse" inheritAll="false" />
<ant dir="webs" target="setup-eclipse" inheritAll="false" />
</target>
<target name="zip-portal">
<if>
<not>
<equals arg1="${app.server.type}" arg2="tomcat" />
</not>
<then>
<fail>
.
This task only works when the property "app.server.type" is "tomcat". However,
the outputted files will work in any supported application server.
</fail>
</then>
</if>
<tstamp>
<format property="tstamp.value" pattern="yyyyMMddkkmmssSSS" />
</tstamp>
<zip destfile="dist/liferay-portal-dependencies-${tstamp.value}.zip">
<zipfileset
dir="${app.server.lib.global.dir}"
prefix="liferay-portal-dependencies-${tstamp.value}"
/>
</zip>
<delete file="dist/liferay-portal-${lp.version}.war" failonerror="false" />
<zip
basedir="${app.server.portal.dir}"
destfile="dist/liferay-portal-${tstamp.value}.war"
excludes="html/js/editor/_fckeditor/**,html/js/editor/fckeditor/_samples/**"
/>
<copy todir="${tstamp.value}/WEB-INF/lib">
<fileset
dir="lib"
includes="ccpp.jar"
/>
</copy>
<zip
basedir="${tstamp.value}"
destfile="dist/liferay-portal-${tstamp.value}.war"
update="yes"
/>
<delete dir="${tstamp.value}" />
</target>
</project>

1
ci.properties

@ -0,0 +1 @@
jira.project.keys=CLDSVCS,LEVP,LOOP,LPS,LRAMF,LRDCOM,LRDOCS,LRIS,LRQA,LRU,SOS,SYNC,ZOE

13
common.bnd

@ -0,0 +1,13 @@
Bundle-SymbolicName: ${plugin.name}
Bundle-Vendor: ${release.info.vendor}
Bundle-Version: ${release.info.version}.${plugin.version}
Git-Descriptor: ${system-allow-fail;git describe --dirty --always}
Git-SHA: ${system-allow-fail;git rev-list -1 HEAD}
Javac-Compiler: ${javac.compiler}
Javac-Debug: ${javac.debug}
Javac-Deprecation: ${javac.deprecation}
Javac-Encoding: ${javac.encoding}
-donotcopy: (\.touch)
-dsannotations: *
-sources: false

13
copyright.txt

@ -0,0 +1,13 @@
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/

16
dependencies/aQute.bnd/ivy.xml vendored

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<ivy-module
version="2.0"
xmlns:m2="http://ant.apache.org/ivy/maven"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info module="com.liferay.sdk.dependencies.aQute.bnd" organisation="com.liferay">
<extends extendType="configurations,description,info" location="${sdk.dir}/ivy.xml" module="com.liferay.sdk" organisation="com.liferay" revision="latest.integration" />
</info>
<dependencies defaultconf="default">
<dependency name="biz.aQute.bnd" org="biz.aQute.bnd" rev="2.4.1" />
</dependencies>
</ivy-module>

1
dependencies/aQute.bnd/ivy.xml.MD5 vendored

@ -0,0 +1 @@
45b38289274e4397c600a212c5477afa

BIN
dependencies/aQute.bnd/lib/biz.aQute.bnd.jar vendored

File binario non mostrato.

16
dependencies/com.liferay.ant.bnd/ivy.xml vendored

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<ivy-module
version="2.0"
xmlns:m2="http://ant.apache.org/ivy/maven"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info module="com.liferay.sdk.dependencies.com.liferay.ant.bnd" organisation="com.liferay">
<extends extendType="configurations,description,info" location="${sdk.dir}/ivy.xml" module="com.liferay.sdk" organisation="com.liferay" revision="latest.integration" />
</info>
<dependencies defaultconf="default">
<dependency name="com.liferay.ant.bnd" org="com.liferay" rev="2.0.0" />
</dependencies>
</ivy-module>

1
dependencies/com.liferay.ant.bnd/ivy.xml.MD5 vendored

@ -0,0 +1 @@
605466165ccd54086efdcbde81396ccb

BIN
dependencies/com.liferay.ant.bnd/lib/ant-launcher.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.ant.bnd/lib/ant.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.ant.bnd/lib/biz.aQute.bnd.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.ant.bnd/lib/com.liferay.ant.bnd.jar vendored

File binario non mostrato.

16
dependencies/com.liferay.ant.mirrors.get/ivy.xml vendored

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<ivy-module
version="2.0"
xmlns:m2="http://ant.apache.org/ivy/maven"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info module="com.liferay.sdk.dependencies.com.liferay.ant.mirrors.get" organisation="com.liferay">
<extends extendType="configurations,description,info" location="${sdk.dir}/ivy.xml" module="com.liferay.sdk" organisation="com.liferay" revision="latest.integration" />
</info>
<dependencies defaultconf="default">
<dependency name="com.liferay.ant.mirrors.get" org="com.liferay" rev="1.0.3" />
</dependencies>
</ivy-module>

1
dependencies/com.liferay.ant.mirrors.get/ivy.xml.MD5 vendored

@ -0,0 +1 @@
0ffa7525c54ac6279b4bab37db8be270

BIN
dependencies/com.liferay.ant.mirrors.get/lib/com.liferay.ant.mirrors.get.jar vendored

File binario non mostrato.

16
dependencies/com.liferay.jasper.jspc/ivy.xml vendored

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<ivy-module
version="2.0"
xmlns:m2="http://ant.apache.org/ivy/maven"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info module="com.liferay.sdk.dependencies.com.liferay.jasper.jspc" organisation="com.liferay">
<extends extendType="configurations,description,info" location="${sdk.dir}/ivy.xml" module="com.liferay.sdk" organisation="com.liferay" revision="latest.integration" />
</info>
<dependencies defaultconf="default">
<dependency name="com.liferay.jasper.jspc" org="com.liferay" rev="1.0.4" />
</dependencies>
</ivy-module>

1
dependencies/com.liferay.jasper.jspc/ivy.xml.MD5 vendored

@ -0,0 +1 @@
413efe1107bf241590e56459721708af

BIN
dependencies/com.liferay.jasper.jspc/lib/com.liferay.jasper.jspc.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/ecj.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/jsp-api.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/jstl-api.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/jstl.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/servlet-api.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-api.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-el-api.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-jasper-el.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-jasper.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-jsp-api.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-juli.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-servlet-api.jar vendored

File binario non mostrato.

BIN
dependencies/com.liferay.jasper.jspc/lib/tomcat-util.jar vendored

File binario non mostrato.

17
dependencies/net.sourceforge.pmd/ivy.xml vendored

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<ivy-module
version="2.0"
xmlns:m2="http://ant.apache.org/ivy/maven"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info module="com.liferay.sdk.dependencies.org.sourceforge.pmd" organisation="com.liferay">
<extends extendType="configurations,description,info" location="${sdk.dir}/ivy.xml" module="com.liferay.sdk" organisation="com.liferay" revision="latest.integration" />
</info>
<dependencies defaultconf="default">
<dependency name="com.liferay.pmd" org="com.liferay" rev="1.0.1" />
<dependency name="pmd-java" org="net.sourceforge.pmd" rev="5.2.3" />
</dependencies>
</ivy-module>

1
dependencies/net.sourceforge.pmd/ivy.xml.MD5 vendored

@ -0,0 +1 @@
8bf302b4c3d37005e0f46a0be4d0e69c

BIN
dependencies/net.sourceforge.pmd/lib/asm.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/com.liferay.pmd.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/commons-io.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/commons-lang3.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/javacc.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/jaxen.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/jcommander.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/pmd-core.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/pmd-java.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/saxon.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/xercesImpl.jar vendored

File binario non mostrato.

BIN
dependencies/net.sourceforge.pmd/lib/xml-apis.jar vendored

File binario non mostrato.

200
dependencies/net.sourceforge.pmd/rulesets/java/standard-rules.xml vendored

@ -0,0 +1,200 @@
<?xml version="1.0"?>
<ruleset
name="Liferay rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"
>
<description>
Selected standard rules from PMD out of box rule sets. Please refer to the origin rule set file, rule name and version info for future update.
</description>
<rule
class="com.liferay.pmd.rules.junit.AssertFailJUnitRule"
language="java"
message="Do not call Assert#fail improperly."
name="AssertFailJUnitRule"
since="0.1">
<description>
Detect when Assert#fail is called improperly.
</description>
<priority>3</priority>
<example>
<![CDATA[
@Test
public void test() {
try {
// ...
}
catch (Exception e) {
Assert.fail();
}
}
]]>
</example>
<example>
<![CDATA[
@Test
public void test() {
Assert.fail();
}
]]>
</example>
</rule>
<rule
class="net.sourceforge.pmd.lang.java.rule.basic.BooleanInstantiationRule"
externalInfoUrl="http://pmd.sourceforge.net/snapshot/pmd-java/rules/java/basic.html#BooleanInstantiation"
message="Avoid instantiating Boolean objects; reference Boolean.TRUE or Boolean.FALSE or call Boolean.valueOf() instead."
name="BooleanInstantiation"
since="1.2"
>
<description>
[Origin rule set file rulesets/java/basic.xml] Avoid instantiating Boolean objects; you can reference Boolean.TRUE, Boolean.FALSE, or call Boolean.valueOf() instead.
</description>
<priority>2</priority>
<example>
<![CDATA[
// Poor, unnecessary creation, just reference Boolean.TRUE
new Boolean("true");
// Poor, unnecessary creation, just reference Boolean.FALSE
Boolean.valueOf(false);
]]>
</example>
</rule>
<rule
class="com.liferay.pmd.rules.java.OverrideBothEqualsAndHashcodeRule"
externalInfoUrl="http://pmd.sourceforge.net/snapshot/pmd-java/rules/java/basic.html#OverrideBothEqualsAndHashcode"
language="java"
message="Ensure you override both equals() and hashCode()"
name="OverrideBothEqualsAndHashcode"
since="0.4"
>
<description>
[Origin rule set file rulesets/java/basic.xml] Override both public boolean Object.equals(Object other), and public int Object.hashCode(), or override neither. Even if you are inheriting a hashCode() from a parent class, consider implementing hashCode and explicitly delegating to your superclass.
</description>
<priority>3</priority>
<example>
<![CDATA[
// Poor, missing a hashcode() method
public class Bar {
public boolean equals(Object object) {
return true;
}
}
// Poor, missing an equals() method
public class Baz {
public int hashCode() {
return 0;
}
}
// Perfect, both methods are provided
public class Foo {
public boolean equals(Object object) {
return true;
}
public int hashCode() {
return 0;
}
}
]]>
</example>
</rule>
<rule
class="net.sourceforge.pmd.lang.java.rule.unnecessary.UnnecessaryReturnRule"
externalInfoUrl="http://pmd.sourceforge.net/snapshot/pmd-java/rules/java/unnecessary.html#UnnecessaryReturn"
message="Avoid unnecessary return statements"
name="UnnecessaryReturn"
since="1.3"
>
<description>
[Origin rule set file rulesets/java/unnecessary.xml] Avoid the use of unnecessary return statements.
</description>
<priority>3</priority>
<example>
<![CDATA[
public class Foo {
public void bar() {
int x = 42;
return;
}
}
]]>
</example>
</rule>
<rule
class="net.sourceforge.pmd.lang.java.rule.unnecessary.UselessOperationOnImmutableRule"
externalInfoUrl="http://pmd.sourceforge.net/snapshot/pmd-java/rules/java/unnecessary.html#UselessOperationOnImmutable"
message="An operation on an Immutable object (String, BigDecimal or BigInteger) won't change the object itself"
name="UselessOperationOnImmutable"
since="3.5">
<description>
[Origin rule set file rulesets/java/unnecessary.xml] An operation on an Immutable object (String, BigDecimal or BigInteger) won't change the object itself since the result of the operation is a new object. Therefore, ignoring the operation result is an error.
</description>
<priority>3</priority>
<example>
<![CDATA[
BigDecimal bigDecimal = new BigDecimal(10);
// Poor, useless operation
bigDecimal.add(new BigDecimal(5));
// Perfect, useful operation
bigDecimal = bigDecimal.add(new BigDecimal(5));
]]>
</example>
</rule>
<rule
class="net.sourceforge.pmd.lang.java.rule.unusedcode.UnusedLocalVariableRule"
externalInfoUrl="http://pmd.sourceforge.net/pmd-5.2.3/pmd-java/rules/java/unusedcode.html#UnusedLocalVariable"
language="java"
message="Avoid unused local variables such as ''{0}''."
name="UnusedLocalVariable"
since="0.1">
<description>
[Origin rule set file rulesets/java/unusedcode.xml] Detects when a local variable is declared and/or assigned, but not used.
</description>
<priority>3</priority>
<example>
<![CDATA[
public class Foo {
public void doSomething() {
// Poor, unused local variable
int i = 5;
}
}
]]>
</example>
</rule>
</ruleset>

16
dependencies/org.apache.maven.maven.ant.tasks/ivy.xml vendored

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<ivy-module
version="2.0"
xmlns:m2="http://ant.apache.org/ivy/maven"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info module="org.apache.maven.maven.ant.tasks" organisation="com.liferay">
<extends extendType="configurations,description,info" location="${sdk.dir}/ivy.xml" module="com.liferay.sdk" organisation="com.liferay" revision="latest.integration" />
</info>
<dependencies defaultconf="default">
<dependency name="maven-ant-tasks" org="org.apache.maven" rev="2.1.3" />
</dependencies>
</ivy-module>

1
dependencies/org.apache.maven.maven.ant.tasks/ivy.xml.MD5 vendored

@ -0,0 +1 @@
2aae42c5c43b993944b8c0fe9e31d5fb

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/ant-launcher.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/ant.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/backport-util-concurrent.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/classworlds.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-ant-tasks.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-artifact-manager.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-artifact.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-error-diagnostics.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-model.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-plugin-registry.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-profile.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-project.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-repository-metadata.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/maven-settings.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/nekohtml.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/plexus-container-default.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/plexus-interpolation.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/plexus-utils.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-file.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-http-lightweight.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-http-shared.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/wagon-provider-api.jar vendored

File binario non mostrato.

BIN
dependencies/org.apache.maven.maven.ant.tasks/lib/xercesMinimal.jar vendored

File binario non mostrato.

Some files were not shown because too many files have changed in this diff Show More

Caricamento…
Annulla
Salva