[eclipse-jbosstools] Initial import (#837726)
Gerard Ryan
galileo at fedoraproject.org
Thu Aug 2 13:34:08 UTC 2012
commit 7ebaef43440d8e82c37610edffcaf6a764eedc34
Author: Gerard Ryan <gerard at ryan.lt>
Date: Thu Aug 2 14:33:24 2012 +0100
Initial import (#837726)
.gitignore | 1 +
LICENSE-2.0.txt | 202 +++++++
...ls-archives-core-ArchivesUnmarshallerImpl.patch | 57 ++
...-jbosstools-archives-core-archivesbuilder.patch | 29 +
...-jbosstools-archives-core-buildproperties.patch | 25 +
eclipse-jbosstools-archives-core-manifest.patch | 29 +
...osstools-archives-core-modeltruezipbridge.patch | 186 ++++++
eclipse-jbosstools-archives-core-trueziputil.patch | 163 ++++++
eclipse-jbosstools-archives.patch | 32 +
eclipse-jbosstools-as-archives.webtools.patch | 533 +++++++++++++++++
eclipse-jbosstools-as-methodVisibility.patch | 11 +
eclipse-jbosstools-as.core.patch | 49 ++
eclipse-jbosstools-as.dmr.patch | 33 ++
eclipse-jbosstools-as.mgmt.as71.patch | 86 +++
eclipse-jbosstools-as.patch | 27 +
eclipse-jbosstools-cdi.patch | 30 +
eclipse-jbosstools-common.patch | 46 ++
eclipse-jbosstools-freemarker.patch | 62 ++
eclipse-jbosstools-jmx.patch | 25 +
eclipse-jbosstools-jst.patch | 27 +
eclipse-jbosstools-parent-pom.patch | 133 +++++
eclipse-jbosstools-target-platform.patch | 87 +++
eclipse-jbosstools-usage.patch | 27 +
eclipse-jbosstools-ws.patch | 43 ++
eclipse-jbosstools-x86.patch | 58 ++
eclipse-jbosstools-x86_64.patch | 34 ++
eclipse-jbosstools.spec | 601 ++++++++++++++++++++
lgpl-2.1.txt | 502 ++++++++++++++++
sources | 1 +
29 files changed, 3139 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..974b74d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/eclipse-jbosstools-3.3.1.Final-CLEAN.tar.xz
diff --git a/LICENSE-2.0.txt b/LICENSE-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/LICENSE-2.0.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/eclipse-jbosstools-archives-core-ArchivesUnmarshallerImpl.patch b/eclipse-jbosstools-archives-core-ArchivesUnmarshallerImpl.patch
new file mode 100644
index 0000000..28fff09
--- /dev/null
+++ b/eclipse-jbosstools-archives-core-ArchivesUnmarshallerImpl.patch
@@ -0,0 +1,57 @@
+--- archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/ArchivesUnmarshallerImpl.java.orig 2012-07-03 13:31:38.230243435 +0100
++++ archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/ArchivesUnmarshallerImpl.java 2012-07-03 00:44:10.000000000 +0100
+@@ -25,6 +25,7 @@
+ import org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler;
+ import org.xml.sax.EntityResolver;
+ import org.xml.sax.ErrorHandler;
++import org.xml.sax.InputSource;
+
+ /**
+ * Unmarshaller implementation.
+@@ -168,6 +169,30 @@
+ return builder.getRoot();
+ }
+
++ public Object unmarshal(InputSource is, ObjectModelFactory factory,
++ Object root) throws JBossXBException {
++ if(builder == null) {
++ builder = new ObjectModelBuilder();
++ }
++ builder.init(factory, root);
++ parser.parse(is, builder);
++ return builder.getRoot();
++ }
++
++
++ public Object unmarshal(InputSource source, SchemaBinding schemaBinding) throws JBossXBException {
++ JBossXBParser.ContentHandler cHandler = new SundayContentHandler(schemaBinding);
++ parser.parse(source, cHandler);
++ return cHandler.getRoot();
++ }
++
++ public Object unmarshal(InputSource source,
++ SchemaBindingResolver schemaResolver) throws JBossXBException {
++ JBossXBParser.ContentHandler cHandler = new SundayContentHandler(schemaResolver);
++ parser.parse(source, cHandler);
++ return cHandler.getRoot();
++ }
++
+ public Object unmarshal(String systemId, ObjectModelFactory factory,
+ Object root) throws JBossXBException {
+ if (builder == null) {
+@@ -199,4 +224,15 @@
+ public JBossXBParser getParser() {
+ return parser;
+ }
++
++ public void setWarnOnParserErrors(boolean value)
++ {
++ parser.setWarnOnParserErrors(value);
++ }
++
++ public boolean isWarnOnParserErrors()
++ {
++ return parser.getWarnOnParserErrors();
++ }
++
+ }
diff --git a/eclipse-jbosstools-archives-core-archivesbuilder.patch b/eclipse-jbosstools-archives-core-archivesbuilder.patch
new file mode 100644
index 0000000..e0d2ace
--- /dev/null
+++ b/eclipse-jbosstools-archives-core-archivesbuilder.patch
@@ -0,0 +1,29 @@
+--- archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java.orig 2012-07-03 00:49:54.000000000 +0100
++++ archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java 2012-07-03 00:53:18.000000000 +0100
+@@ -10,6 +10,8 @@
+ ******************************************************************************/
+ package org.jboss.ide.eclipse.archives.core.project;
+
++import java.io.IOException;
++
+ import java.util.Comparator;
+ import java.util.Map;
+ import java.util.TreeSet;
+@@ -87,7 +89,9 @@
+ IArchiveNode[] nodes = root.getChildren(IArchiveNode.TYPE_ARCHIVE);
+ for( int i = 0; i < nodes.length; i++ ) {
+ IPath path = ((IArchive)nodes[i]).getArchiveFilePath();
+- TrueZipUtil.deleteAll(path);
++ try {
++ TrueZipUtil.deleteAll(path);
++ } catch (IOException e) { /* I don't know */ }
+ }
+ }
+ }
+@@ -183,4 +187,4 @@
+ }
+ });
+ }
+-}
+\ No newline at end of file
++}
diff --git a/eclipse-jbosstools-archives-core-buildproperties.patch b/eclipse-jbosstools-archives-core-buildproperties.patch
new file mode 100644
index 0000000..87dc3bc
--- /dev/null
+++ b/eclipse-jbosstools-archives-core-buildproperties.patch
@@ -0,0 +1,25 @@
+--- archives/plugins/org.jboss.ide.eclipse.archives.core/build.properties.orig 2012-07-03 03:38:34.568411630 +0100
++++ archives/plugins/org.jboss.ide.eclipse.archives.core/build.properties 2012-07-03 03:32:35.142156994 +0100
+@@ -5,13 +5,15 @@
+ LICENSE-truezip.txt,\
+ log4j.xml,\
+ archivescore-eclipse.jar,\
+- lib/jboss-xml-binding.jar,\
+- lib/concurrent-1.3.4.jar,\
+- lib/xercesImpl-2.9.1.jar,\
+- lib/jboss-common-logging-log4j-2.0.4.GA.jar,\
+- lib/jboss-common-logging-spi-2.0.4.GA.jar,\
+- lib/jboss-common-core-2.2.1.GA.jar,\
+- lib/truezip-6.6.jar,\
++ lib/jbossxb.jar,\
++ lib/concurrent.jar,\
++ lib/xerces-j2.jar,\
++ lib/jboss-logging.jar,\
++ lib/truezip-kernel.jar,\
++ lib/jboss-common-core.jar,\
++ lib/truezip-file.jar,\
++ lib/truezip-driver-file.jar,\
++ lib/truezip-driver-zip.jar,\
+ plugin.properties,\
+ about.html
+ source.archivescore.jar = src/main/,\
diff --git a/eclipse-jbosstools-archives-core-manifest.patch b/eclipse-jbosstools-archives-core-manifest.patch
new file mode 100644
index 0000000..d9eb49c
--- /dev/null
+++ b/eclipse-jbosstools-archives-core-manifest.patch
@@ -0,0 +1,29 @@
+--- archives/plugins/org.jboss.ide.eclipse.archives.core/META-INF/MANIFEST.MF.orig 2012-06-24 12:22:54.000000000 +0100
++++ archives/plugins/org.jboss.ide.eclipse.archives.core/META-INF/MANIFEST.MF 2012-07-03 03:04:42.000000000 +0100
+@@ -17,15 +17,17 @@
+ Eclipse-BundleShape: dir
+ Bundle-ClassPath: archivescore.jar,
+ archivescore-eclipse.jar,
+- lib/concurrent-1.3.4.jar,
+- lib/jboss-xml-binding.jar,
+- lib/xercesImpl-2.9.1.jar,
+- lib/jboss-common-logging-log4j-2.0.4.GA.jar,
+- lib/jboss-common-logging-spi-2.0.4.GA.jar,
+- lib/jboss-common-core-2.2.1.GA.jar,
+- lib/truezip-6.6.jar
+-Export-Package: de.schlichtherle.io;x-friends:="org.jboss.ide.eclipse.archives.test",
+- de.schlichtherle.io.archive.spi,
++ lib/concurrent.jar,
++ lib/jbossxb.jar,
++ lib/xerces-j2.jar,
++ lib/jboss-logging.jar,
++ lib/jboss-common-core.jar,
++ lib/truezip-file.jar,
++ lib/truezip-kernel.jar,
++ lib/truezip-driver-file.jar,
++ lib/truezip-driver-zip.jar
++Export-Package: de.schlichtherle.truezip.file;x-friends:="org.jboss.ide.eclipse.archives.test",
++ de.schlichtherle.fs.archive,
+ org.jboss.ide.eclipse.archives.core,
+ org.jboss.ide.eclipse.archives.core.ant,
+ org.jboss.ide.eclipse.archives.core.asf,
diff --git a/eclipse-jbosstools-archives-core-modeltruezipbridge.patch b/eclipse-jbosstools-archives-core-modeltruezipbridge.patch
new file mode 100644
index 0000000..988f282
--- /dev/null
+++ b/eclipse-jbosstools-archives-core-modeltruezipbridge.patch
@@ -0,0 +1,186 @@
+--- archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java.orig 2012-07-01 17:29:05.000000000 +0100
++++ archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2012-07-03 00:48:11.000000000 +0100
+@@ -10,6 +10,8 @@
+ ******************************************************************************/
+ package org.jboss.ide.eclipse.archives.core.util.internal;
+
++import java.io.IOException;
++
+ import java.util.ArrayList;
+ import java.util.Arrays;
+
+@@ -32,8 +34,8 @@
+ import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
+ import org.jboss.ide.eclipse.archives.core.util.PathUtils;
+
+-import de.schlichtherle.io.ArchiveDetector;
+-import de.schlichtherle.io.File;
++import de.schlichtherle.truezip.file.TArchiveDetector;
++import de.schlichtherle.truezip.file.TFile;
+
+ /**
+ * This class is meant to bridge between the model
+@@ -41,8 +43,8 @@
+ * API which deals with filesets and packages instead of
+ * raw Strings and paths.
+ *
+- * It will also make sure that a de.schlichtherle.io.File is
+- * created with the proper ArchiveDetector for each and every
++ * It will also make sure that a de.schlichtherle.truezip.TFile is
++ * created with the proper TArchiveDetector for each and every
+ * level, rather than the TrueZipUtil class, which not accurately
+ * create the proper File type for exploded archives.
+ *
+@@ -94,7 +96,7 @@
+ filesMonitor.done();
+
+ // kinda ugly here. delete all empty folders beneath
+- File folder = getFile(fileset);
++ TFile folder = getFile(fileset);
+ if( !cleanFolder(folder, false) ) {
+ IStatus e = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID,
+ ArchivesCore.bind(ArchivesCoreMessages.ErrorEmptyingFolder,folder.toString()));
+@@ -135,9 +137,13 @@
+ new Integer(files.length).toString()), files.length * 100);
+ boolean b = true;
+ ArrayList<IStatus> list = new ArrayList<IStatus>();
+- final File[] destFiles = getFiles(files, fileset);
++ final TFile[] destFiles = getFiles(files, fileset);
+ for( int i = 0; i < files.length; i++ ) {
++ try {
+ b = TrueZipUtil.copyFile(files[i].getAbsolutePath(), destFiles[i], updateTimestamps);
++ } catch (IOException e) {
++ b = false;
++ }
+ if( b == false ) {
+ list.add(new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID,
+ ArchivesCore.bind(ArchivesCoreMessages.FileCopyFailed,
+@@ -157,10 +163,12 @@
+ public static IStatus[] deleteFiles(IArchiveFileSet fileset, final FileWrapper[] files, IProgressMonitor monitor, boolean sync ) {
+ monitor.beginTask(ArchivesCore.bind(ArchivesCoreMessages.DeletingCountFiles,
+ new Integer(files.length).toString()), files.length * 100);
+- final File[] destFiles = getFiles(files, fileset);
++ final TFile[] destFiles = getFiles(files, fileset);
+ ArrayList<IStatus> list = new ArrayList<IStatus>();
+ for( int i = 0; i < files.length; i++ ) {
+- if( !TrueZipUtil.deleteAll(destFiles[i]) ) {
++ try { //want to do this if rm_r fails - rm_r will return a TFile
++ if( TrueZipUtil.deleteAll(destFiles[i]).exists() ) { /* nothing special */ }
++ } catch (IOException ioexception) {
+ IStatus e = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID,
+ ArchivesCore.bind(ArchivesCoreMessages.FileDeleteFailed, destFiles[i].toString()));
+ list.add(e);
+@@ -175,8 +183,17 @@
+
+
+ public static boolean deleteArchive(IArchive archive) {
+- final File file = getFile(archive);
+- boolean b = file.deleteAll();
++ final TFile file = getFile(archive);
++
++ boolean b = true;
++ try{
++ TFile tf = file.rm_r();
++ if (!tf.exists())
++ b = false;
++ } catch (IOException e) {
++ b = false;
++ }
++
+ TrueZipUtil.sync();
+ return b;
+ }
+@@ -201,7 +218,7 @@
+ return createFile(node, true);
+ }
+ public static boolean createFile(final IArchiveNode node, boolean sync) {
+- File f = getFile(node);
++ TFile f = getFile(node);
+ if( f == null ) return false;
+ if( f.exists() ) return true;
+ boolean b = f.mkdirs();
+@@ -218,13 +235,13 @@
+ * @param fs
+ * @return
+ */
+- private static File[] getFiles(FileWrapper[] inputFiles, IArchiveFileSet fs ) {
++ private static TFile[] getFiles(FileWrapper[] inputFiles, IArchiveFileSet fs ) {
+ String filesetRelative;
+- File fsFile = getFile(fs);
++ TFile fsFile = getFile(fs);
+ if( fs == null || fsFile == null )
+- return new File[]{};
++ return new TFile[]{};
+
+- ArrayList<File> returnFiles = new ArrayList<File>();
++ ArrayList<TFile> returnFiles = new ArrayList<TFile>();
+ for( int i = 0; i < inputFiles.length; i++ ) {
+ if( inputFiles[i] == null )
+ continue;
+@@ -234,18 +251,18 @@
+ else
+ filesetRelative = inputFiles[i].getFilesetRelative();
+
+- File parentFile;
++ TFile parentFile;
+ if(new Path(filesetRelative).segmentCount() > 1 ) {
+ String tmp = new Path(filesetRelative).removeLastSegments(1).toString();
+- parentFile = new File(fsFile, tmp, ArchiveDetector.NULL);
++ parentFile = new TFile(fsFile, tmp, TArchiveDetector.NULL);
+ if( parentFile.getEnclArchive() != null )
+- parentFile = new File(fsFile, tmp, ArchiveDetector.DEFAULT);
++ parentFile = new TFile(fsFile, tmp, TArchiveDetector.ALL);
+ } else {
+ parentFile = fsFile;
+ }
+- returnFiles.add(new File(parentFile, new Path(filesetRelative).lastSegment(), ArchiveDetector.NULL));
++ returnFiles.add(new TFile(parentFile, new Path(filesetRelative).lastSegment(), TArchiveDetector.NULL));
+ }
+- return (File[]) returnFiles.toArray(new File[returnFiles.size()]);
++ return (TFile[]) returnFiles.toArray(new TFile[returnFiles.size()]);
+ }
+
+
+@@ -259,7 +276,7 @@
+ * @param node
+ * @return
+ */
+- private static File getFile(IArchiveNode node) {
++ private static TFile getFile(IArchiveNode node) {
+ if( node == null ) return null;
+
+ if( node.getNodeType() == IArchiveNode.TYPE_MODEL_ROOT ) return null;
+@@ -267,27 +284,27 @@
+ if( node.getNodeType() == IArchiveNode.TYPE_ARCHIVE_FILESET)
+ return getFile(node.getParent());
+
+- File parentFile = getFile(node.getParent());
++ TFile parentFile = getFile(node.getParent());
+ if( node.getNodeType() == IArchiveNode.TYPE_ARCHIVE ) {
+ IArchive node2 = ((IArchive)node);
+ boolean exploded = ((IArchive)node).isExploded();
+- ArchiveDetector detector = exploded ? ArchiveDetector.NULL : TrueZipUtil.getJarArchiveDetector();
++ TArchiveDetector detector = exploded ? TArchiveDetector.NULL : TrueZipUtil.getJarArchiveDetector();
+ if( parentFile == null ) {
+ // we're a root archive, and so the destination folder must be a real folder
+ IPath p = PathUtils.getGlobalLocation(node2);
+ if( p == null ) return null;
+- parentFile = new File(p.toOSString(), ArchiveDetector.NULL);
++ parentFile = new TFile(p.toOSString(), TArchiveDetector.NULL);
+ }
+- return new File(parentFile, node2.getName(), detector);
++ return new TFile(parentFile, node2.getName(), detector);
+ }
+ if( node.getNodeType() == IArchiveNode.TYPE_ARCHIVE_FOLDER ) {
+- return new File(parentFile, ((IArchiveFolder)node).getName(), ArchiveDetector.NULL);
++ return new TFile(parentFile, ((IArchiveFolder)node).getName(), TArchiveDetector.NULL);
+ }
+ return null;
+ }
+
+ public static String getFilePath(IArchiveNode node) {
+- File f = getFile(node);
++ TFile f = getFile(node);
+ return f == null ? null : f.getAbsolutePath();
+ }
+ }
diff --git a/eclipse-jbosstools-archives-core-trueziputil.patch b/eclipse-jbosstools-archives-core-trueziputil.patch
new file mode 100644
index 0000000..07fadb9
--- /dev/null
+++ b/eclipse-jbosstools-archives-core-trueziputil.patch
@@ -0,0 +1,163 @@
+--- archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/TrueZipUtil.java.orig 2012-07-01 17:29:12.000000000 +0100
++++ archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/TrueZipUtil.java 2012-07-03 00:47:15.000000000 +0100
+@@ -14,11 +14,12 @@
+
+ import org.eclipse.core.runtime.IPath;
+
+-import de.schlichtherle.io.AbstractArchiveDetector;
+-import de.schlichtherle.io.ArchiveDetector;
+-import de.schlichtherle.io.ArchiveException;
+-import de.schlichtherle.io.archive.spi.ArchiveDriver;
+-import de.schlichtherle.io.archive.zip.Zip32Driver;
++//import de.schlichtherle.truezip.file.AbstractArchiveDetector;
++import de.schlichtherle.truezip.file.TFile;
++import de.schlichtherle.truezip.file.TArchiveDetector;
++import de.schlichtherle.truezip.fs.FsSyncException;
++import de.schlichtherle.truezip.fs.archive.FsArchiveDriver;
++import de.schlichtherle.truezip.fs.archive.zip.ZipDriver;
+
+ /**
+ * Accesses raw files with the truezip filesystem
+@@ -27,17 +28,17 @@
+ */
+ public class TrueZipUtil {
+
+- public static de.schlichtherle.io.File getFile(IPath path) {
+- return getFile(path, ArchiveDetector.DEFAULT);
++ public static de.schlichtherle.truezip.file.TFile getFile(IPath path) {
++ return getFile(path, TArchiveDetector.ALL);
+ }
+- public static de.schlichtherle.io.File getFile(IPath path, ArchiveDetector detector) {
+- return new de.schlichtherle.io.File(path.toOSString(), detector);
++ public static de.schlichtherle.truezip.file.TFile getFile(IPath path, TArchiveDetector detector) {
++ return new de.schlichtherle.truezip.file.TFile(path.toOSString(), detector);
+ }
+
+ public static boolean pathExists(IPath path) {
+ return pathExists( getFile(path));
+ }
+- public static boolean pathExists( de.schlichtherle.io.File file) {
++ public static boolean pathExists( de.schlichtherle.truezip.file.TFile file) {
+ return file.exists();
+ }
+
+@@ -46,7 +47,7 @@
+ return getTimestamp( getFile(path));
+ }
+
+- public static long getTimestamp(de.schlichtherle.io.File file) {
++ public static long getTimestamp(de.schlichtherle.truezip.file.TFile file) {
+ return file.lastModified();
+ }
+
+@@ -55,28 +56,33 @@
+ return copyFile(source, getFile(dest), true);
+ }
+
+- public static boolean copyFile(String source, de.schlichtherle.io.File file, boolean updateTimestamps) {
++ public static boolean copyFile(String source, de.schlichtherle.truezip.file.TFile file, boolean updateTimestamps) throws IOException {
+ file.getParentFile().mkdirs();
+- boolean b = new de.schlichtherle.io.File(source, ArchiveDetector.NULL).archiveCopyAllTo(file);
++ de.schlichtherle.truezip.file.TFile tf = new de.schlichtherle.truezip.file.TFile(source, TArchiveDetector.NULL).cp_rp(file);
++
++ boolean b = false;
++ if (tf.exists())
++ b = true;
++
+ return b && (updateTimestamps ? updateParentTimestamps(file) : true);
+ }
+
+ public static boolean touchFile(IPath path) {
+- de.schlichtherle.io.File f = getFile(path);
++ de.schlichtherle.truezip.file.TFile f = getFile(path);
+ boolean b = f.setLastModified(System.currentTimeMillis());
+ return b && updateParentTimestamps(path);
+ }
+
+
+ // Delete methods
+- public static boolean deleteAll(IPath path, String fileName) {
++ public static TFile deleteAll(IPath path, String fileName) throws IOException {
+ return deleteAll(path.append(fileName));
+ }
+- public static boolean deleteAll(IPath path) {
++ public static TFile deleteAll(IPath path) throws IOException {
+ return deleteAll(getFile(path));
+ }
+- public static boolean deleteAll(de.schlichtherle.io.File file) {
+- return file.deleteAll();
++ public static TFile deleteAll(TFile file) throws IOException {
++ return file.rm_r();
+ }
+
+ public static boolean deleteEmptyChildren(java.io.File file) {
+@@ -102,14 +108,14 @@
+
+
+ public static boolean createFolder(IPath parent, String folderName) {
+- boolean b = new de.schlichtherle.io.File(getFile(parent, ArchiveDetector.DEFAULT), folderName, ArchiveDetector.NULL).mkdirs();
++ boolean b = new de.schlichtherle.truezip.file.TFile(getFile(parent, TArchiveDetector.ALL), folderName, TArchiveDetector.NULL).mkdirs();
+ return b && updateParentTimestamps(parent.append(folderName));
+ }
+ public static boolean createFolder(IPath path) {
+ return createFolder(path.removeLastSegments(1), path.lastSegment());
+ }
+ public static boolean createArchive(IPath parent, String folderName) {
+- boolean b = new de.schlichtherle.io.File(getFile(parent, ArchiveDetector.DEFAULT), folderName, getJarArchiveDetector()).mkdirs();
++ boolean b = new de.schlichtherle.truezip.file.TFile(getFile(parent, TArchiveDetector.ALL), folderName, getJarArchiveDetector()).mkdirs();
+ return b && updateParentTimestamps(parent.append(folderName));
+ }
+ public static boolean createArchive(IPath path) {
+@@ -117,8 +123,8 @@
+ }
+ public static void umount() {
+ try {
+- de.schlichtherle.io.File.umount();
+- } catch( ArchiveException ae ) {
++ de.schlichtherle.truezip.file.TFile.umount();
++ } catch( FsSyncException ae ) {
+ }
+ }
+
+@@ -141,9 +147,9 @@
+ public static boolean updateParentTimestamps(IPath path) {
+ return updateParentTimestamps(getFile(path));
+ }
+- public static boolean updateParentTimestamps(de.schlichtherle.io.File file) {
++ public static boolean updateParentTimestamps(de.schlichtherle.truezip.file.TFile file) {
+ long time = System.currentTimeMillis();
+- de.schlichtherle.io.File parent = file;
++ de.schlichtherle.truezip.file.TFile parent = file;
+ boolean b = true;
+ while( parent != null ) {
+ b &= parent.setLastModified(time);
+@@ -153,21 +159,22 @@
+ }
+
+
+- private static ArchiveDetector JAR_ARCHIVE_DETECTOR;
+- public static ArchiveDetector getJarArchiveDetector() {
++ private static TArchiveDetector JAR_ARCHIVE_DETECTOR;
++ public static TArchiveDetector getJarArchiveDetector() {
+ if( JAR_ARCHIVE_DETECTOR == null ) {
+- JAR_ARCHIVE_DETECTOR = new JarArchiveDetector();
++ JAR_ARCHIVE_DETECTOR = new TArchiveDetector(null);
+ }
+ return JAR_ARCHIVE_DETECTOR;
+ }
+
+- public static class JarArchiveDetector extends AbstractArchiveDetector {
+- public ArchiveDriver getArchiveDriver(String arg0) {
+- return new Zip32Driver();
++ /*
++ public static class JarArchiveDetector extends TArchiveDetector {
++ public FsArchiveDriver getArchiveDriver(String arg0) {
++ return new ZipDriver(de.schlichtherle.truezip.socket.sl.IOPoolLocator.SINGLETON);
+ }
+
+ }
+-
++ */
+
+ public static boolean javaIODeleteDir(java.io.File dir) {
+ if (dir.isDirectory()) {
diff --git a/eclipse-jbosstools-archives.patch b/eclipse-jbosstools-archives.patch
new file mode 100644
index 0000000..64aca6a
--- /dev/null
+++ b/eclipse-jbosstools-archives.patch
@@ -0,0 +1,32 @@
+diff -Naur archives.orig/features/org.jboss.ide.eclipse.archives.feature/target/sources-feature/feature.xml archives/features/org.jboss.ide.eclipse.archives.feature/target/sources-feature/feature.xml
+--- archives.orig/features/org.jboss.ide.eclipse.archives.feature/target/sources-feature/feature.xml 1970-01-01 01:00:00.000000000 +0100
++++ archives/features/org.jboss.ide.eclipse.archives.feature/target/sources-feature/feature.xml 2012-06-23 23:51:18.595062894 +0100
+@@ -0,0 +1 @@
++<feature id="org.jboss.ide.eclipse.archives.feature.source" version="3.2.1.qualifier"/>
+\ No newline at end of file
+diff -Naur archives.orig/features/pom.xml archives/features/pom.xml
+--- archives.orig/features/pom.xml 2012-06-23 23:37:38.292680386 +0100
++++ archives/features/pom.xml 2012-06-23 23:15:42.539963009 +0100
+@@ -12,7 +12,7 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.ide.eclipse.archives.feature</module>
+- <module>org.jboss.ide.eclipse.archives.test.feature</module>
++ <!--<module>org.jboss.ide.eclipse.archives.test.feature</module>-->
+ </modules>
+ </project>
+
+diff -Naur archives.orig/pom.xml archives/pom.xml
+--- archives.orig/pom.xml 2012-06-23 23:37:38.285680519 +0100
++++ archives/pom.xml 2012-06-23 23:51:56.068324062 +0100
+@@ -15,8 +15,8 @@
+ <modules>
+ <module>features</module>
+ <module>plugins</module>
+- <module>tests</module>
+- <module>site</module>
++ <!--<module>tests</module>-->
++ <!--<module>site</module>-->
+ </modules>
+ </project>
+
diff --git a/eclipse-jbosstools-as-archives.webtools.patch b/eclipse-jbosstools-as-archives.webtools.patch
new file mode 100644
index 0000000..0f12f4f
--- /dev/null
+++ b/eclipse-jbosstools-as-archives.webtools.patch
@@ -0,0 +1,533 @@
+diff -Naur as/plugins/org.jboss.ide.eclipse.archives.webtools.orig/src/org/jboss/ide/eclipse/archives/webtools/modules/#LocalZippedPublisherUtil.java# as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/#LocalZippedPublisherUtil.java#
+--- as/plugins/org.jboss.ide.eclipse.archives.webtools.orig/src/org/jboss/ide/eclipse/archives/webtools/modules/#LocalZippedPublisherUtil.java# 1970-01-01 01:00:00.000000000 +0100
++++ as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/#LocalZippedPublisherUtil.java# 2012-07-03 16:54:28.537556216 +0100
+@@ -0,0 +1,410 @@
++/*******************************************************************************
++ * Copyright (c) 2011 Red Hat, Inc.
++ * Distributed under license by Red Hat, Inc. All rights reserved.
++ * This program is made available under the terms of the
++ * Eclipse Public License v1.0 which accompanies this distribution,
++ * and is available at http://www.eclipse.org/legal/epl-v10.html
++ *
++ * Contributors:
++ * Red Hat, Inc. - initial API and implementation
++ *
++ ******************************************************************************/
++package org.jboss.ide.eclipse.archives.webtools.modules;
++
++
++
++import java.io.File;
++import java.util.ArrayList;
++import java.util.Arrays;
++import java.util.Iterator;
++import java.util.List;
++
++import org.eclipse.core.runtime.CoreException;
++import org.eclipse.core.runtime.IPath;
++import org.eclipse.core.runtime.IProgressMonitor;
++import org.eclipse.core.runtime.IStatus;
++import org.eclipse.core.runtime.MultiStatus;
++import org.eclipse.core.runtime.NullProgressMonitor;
++import org.eclipse.core.runtime.Status;
++import org.eclipse.osgi.util.NLS;
++import org.eclipse.wst.server.core.IModule;
++import org.eclipse.wst.server.core.IServer;
++import org.eclipse.wst.server.core.internal.Server;
++import org.eclipse.wst.server.core.model.IModuleFile;
++import org.eclipse.wst.server.core.model.IModuleFolder;
++import org.eclipse.wst.server.core.model.IModuleResource;
++import org.eclipse.wst.server.core.model.IModuleResourceDelta;
++import org.jboss.ide.eclipse.archives.core.util.internal.TrueZipUtil;
++import org.jboss.ide.eclipse.archives.webtools.IntegrationPlugin;
++import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
++import org.jboss.ide.eclipse.as.core.Messages;
++import org.jboss.ide.eclipse.as.core.extensions.events.IEventCodes;
++import org.jboss.ide.eclipse.as.core.publishers.PublishUtil;
++import org.jboss.ide.eclipse.as.core.publishers.patterns.IModulePathFilter;
++import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
++import org.jboss.ide.eclipse.as.core.server.IJBossServerPublisher;
++import org.jboss.ide.eclipse.as.core.server.internal.DeployableServerBehavior;
++import org.jboss.ide.eclipse.as.core.util.FileUtil;
++import org.jboss.ide.eclipse.as.core.util.FileUtil.IFileUtilListener;
++import org.jboss.ide.eclipse.as.core.util.ServerConverter;
++import org.jboss.ide.eclipse.as.wtp.core.util.ServerModelUtilities;
++
++import de.schlichtherle.truezip.file.TArchiveDetector;
++
++public class LocalZippedPublisherUtil extends PublishUtil {
++
++ private String deployRoot;
++ private boolean hasBeenChanged = false;
++ private IModule[] module;
++ private IServer server;
++ public IStatus publishModule(IServer server, String deployRoot, IModule[] module,
++ int publishType, IModuleResourceDelta[] delta,
++ IProgressMonitor monitor) throws CoreException {
++ String name = "Compressing " + module[0].getName(); //$NON-NLS-1$
++ monitor.beginTask(name, 200);
++ monitor.setTaskName(name);
++ this.deployRoot = deployRoot;
++ this.module = module;
++ this.server = server;
++ IStatus[] operationStatus;
++
++
++ // Am I a removal? If yes, remove me, and return
++ if( publishType == IJBossServerPublisher.REMOVE_PUBLISH)
++ operationStatus = removeModule(server, deployRoot, module);
++
++ // Am I a full publish? If yes, full publish me, and return
++ else if( publishType == IJBossServerPublisher.FULL_PUBLISH)
++ operationStatus = fullPublish(server, deployRoot, module);
++
++ else {
++ // Am I changed? If yes, handle my changes
++ ArrayList<IStatus> results = new ArrayList<IStatus>();
++ if( countChanges(delta) > 0) {
++ results.addAll(Arrays.asList(publishChanges(server, deployRoot, module)));
++ }
++
++ IModule[] children = server.getChildModules(module, new NullProgressMonitor());
++ results.addAll(Arrays.asList(handleChildrenDeltas(server, deployRoot, module, children)));
++
++ // Handle the removed children that are not returned by getChildModules
++ List<IModule[]> removed = getBehaviour(server).getRemovedModules();
++ Iterator<IModule[]> i = removed.iterator();
++ while(i.hasNext()) {
++ IModule[] removedArray = i.next();
++ if( removedArray[0].getId().equals(module[0].getId())) {
++ results.addAll(Arrays.asList(removeModule(server, deployRoot, removedArray)));
++ }
++ }
++ operationStatus = (IStatus[]) results.toArray(new IStatus[results.size()]);
++ }
++ TrueZipUtil.umount();
++
++ IStatus finalStatus = createModuleStatus(module, operationStatus);
++
++ monitor.done();
++ return finalStatus;
++ }
++
++
++ private IStatus createModuleStatus(IModule[] module, IStatus[] operationStatus) {
++ IStatus finalStatus;
++ if( operationStatus.length > 0 ) {
++ MultiStatus ms = new MultiStatus(JBossServerCorePlugin.PLUGIN_ID, IEventCodes.JST_PUB_INC_FAIL,
++ "Publish Failed for module " + module[0].getName(), null); //$NON-NLS-1$
++ for( int i = 0; i < operationStatus.length; i++ )
++ ms.add(operationStatus[i]);
++ finalStatus = ms;
++ } else {
++ finalStatus = new Status(IStatus.OK, JBossServerCorePlugin.PLUGIN_ID,
++ IEventCodes.JST_PUB_FULL_SUCCESS,
++ NLS.bind(Messages.ModulePublished, module[0].getName()), null);
++ }
++ return finalStatus;
++ }
++
++
++ protected IDeployableServer getDeployableServer(IServer server) {
++ return (IDeployableServer)server.loadAdapter(IDeployableServer.class, new NullProgressMonitor());
++ }
++ protected DeployableServerBehavior getBehaviour(IServer server) {
++ return (DeployableServerBehavior)server.loadAdapter(DeployableServerBehavior.class, new NullProgressMonitor());
++ }
++
++ protected List<IModule[]> getRemovedModules(IServer s) {
++ return getBehaviour(s).getRemovedModules();
++ }
++
++ public boolean anyChangesRecurse(IServer server, IModule[] module) {
++ // Since for zipped, incremental and full are identical, just return a result other than 'no publish'
++ if( !getBehaviour(server).hasBeenPublished(module))
++ return true;
++
++ if( isRemoved(server, module))
++ return true;
++
++ int modulePublishState = server.getModulePublishState(module);
++ if( modulePublishState != IServer.PUBLISH_STATE_NONE)
++ return true;
++
++ IModuleResourceDelta[] deltas = ((Server)server).getPublishedResourceDelta(module);
++ if( deltas.length > 0)
++ return true;
++
++ IModule[] children = server.getChildModules(module, new NullProgressMonitor());
++ for( int i = 0; i < children.length; i++ ) {
++ IModule[] tmp = combine(module, children[i]);
++ if(anyChangesRecurse(server, tmp))
++ return true;
++ }
++ return false;
++ }
++
++ protected IStatus[] handleChildrenDeltas(IServer server, String deployRoot, IModule[] module, IModule[] children) {
++ // For each child:
++ ArrayList<IStatus> results = new ArrayList<IStatus>();
++ for( int i = 0; i < children.length; i++ ) {
++ IModule[] combinedChild = combine(module, children[i]);
++ // if it's new, full publish it
++ if( !getBehaviour(server).hasBeenPublished(combinedChild)) {
++ results.addAll(Arrays.asList(fullPublish(server, deployRoot, combinedChild)));
++ }
++ // else if it's removed, full remove it
++ else if( isRemoved(server, combinedChild)) {
++ results.addAll(Arrays.asList(removeModule(server, deployRoot, combinedChild)));
++ }
++ // else
++ else {
++ // handle changed resources
++ results.addAll(Arrays.asList(publishChanges(server, deployRoot, combinedChild)));
++
++ // recurse
++ IModule[] children2 = server.getChildModules(combinedChild, new NullProgressMonitor());
++ results.addAll(Arrays.asList(handleChildrenDeltas(server, deployRoot, module, children2)));
++ }
++ }
++ return (IStatus[]) results.toArray(new IStatus[results.size()]);
++ }
++
++ protected boolean isRemoved(IServer server, IModule[] child) {
++ List<IModule[]> removed = getBehaviour(server).getRemovedModules();
++ Iterator<IModule[]> i = removed.iterator();
++ while(i.hasNext()) {
++ IModule[] next = i.next();
++ if( next.length == child.length) {
++ for( int j = 0; j < next.length; j++ ) {
++ if( !next[j].getId().equals(child[j].getId())) {
++ continue;
++ }
++ }
++ return true;
++ }
++ }
++ return false;
++ }
++
++ protected IStatus[] removeModule(IServer server, String deployRoot, IModule[] module) {
++ IPath deployPath = getOutputFilePath(module);
++ final ArrayList<IStatus> status = new ArrayList<IStatus>();
++ IFileUtilListener listener = new IFileUtilListener() {
++ public void fileCopied(File source, File dest, boolean result,Exception e) {}
++ public void fileDeleted(File file, boolean result, Exception e) {
++ if( result == false || e != null ) {
++ status.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, IEventCodes.JST_PUB_FILE_DELETE_FAIL,
++ "Attempt to delete " + file.getAbsolutePath() + " failed",e)); //$NON-NLS-1$ //$NON-NLS-2$
++ }
++ }
++ public void folderDeleted(File file, boolean result, Exception e) {
++ if( result == false || e != null ) {
++ status.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, IEventCodes.JST_PUB_FILE_DELETE_FAIL,
++ "Attempt to delete " + file.getAbsolutePath() + " failed",e)); //$NON-NLS-1$ //$NON-NLS-2$
++ }
++ }
++ };
++ FileUtil.safeDelete(deployPath.toFile(), listener);
++ hasBeenChanged = true;
++ return (IStatus[]) status.toArray(new IStatus[status.size()]);
++ }
++
++ protected IStatus[] fullBinaryPublish(IServer server, String deployRoot, IModule[] parent, IModule last) {
++ ArrayList<IStatus> results = new ArrayList<IStatus>();
++ try {
++ IPath path = getOutputFilePath(combine(parent, last));
++ path = path.removeLastSegments(1);
++ de.schlichtherle.truezip.file.TFile root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
++ IModuleResource[] resources = getResources(last, new NullProgressMonitor());
++ results.addAll(Arrays.asList(copy(root, resources)));
++ TrueZipUtil.umount();
++ return (IStatus[]) results.toArray(new IStatus[results.size()]);
++ } catch( CoreException ce) {
++ results.add(generateCoreExceptionStatus(ce));
++ return (IStatus[]) results.toArray(new IStatus[results.size()]);
++ }
++ }
++ protected IStatus[] fullPublish(IServer server, String deployRoot, IModule[] module) {
++ ArrayList<IStatus> results = new ArrayList<IStatus>();
++ try {
++ IPath path = getOutputFilePath(module);
++ // Get rid of the old
++ FileUtil.safeDelete(path.toFile(), null);
++
++ TrueZipUtil.createArchive(path);
++ de.schlichtherle.truezip.file.TFile root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
++ IModuleResource[] resources = getResources(module);
++ DeployableServerBehavior beh = ServerConverter.getDeployableServerBehavior(server);
++ IModulePathFilter filter = beh.getPathFilter(module);
++ IModuleResource[] resources2 = filter == null ? resources : filter.getFilteredMembers();
++ IStatus[] copyResults = copy(root, resources2);
++ results.addAll(Arrays.asList(copyResults));
++
++ IModule[] children = server.getChildModules(module, new NullProgressMonitor());
++ publishChildren(server, deployRoot, module, results, children);
++ TrueZipUtil.umount();
++ hasBeenChanged = true;
++ return (IStatus[]) results.toArray(new IStatus[results.size()]);
++ } catch( CoreException ce) {
++ results.add(generateCoreExceptionStatus(ce));
++ return (IStatus[]) results.toArray(new IStatus[results.size()]);
++ }
++ }
++
++
++ private void publishChildren(IServer server, String deployRoot, IModule[] module, ArrayList<IStatus> results,
++ IModule[] children) {
++ if( children == null )
++ return;
++
++ for( int i = 0; i < children.length; i++ ) {
++ if( ServerModelUtilities.isBinaryModule(children[i]))
++ results.addAll(Arrays.asList(fullBinaryPublish(server, deployRoot, module, children[i])));
++ else
++ results.addAll(Arrays.asList(fullPublish(server, deployRoot, combine(module, children[i]))));
++ }
++ }
++
++ protected IStatus[] publishChanges(IServer server, String deployRoot, IModule[] module) {
++ IPath path = getOutputFilePath(module);
++ de.schlichtherle.truezip.file.TFile root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
++ IModuleResourceDelta[] deltas = ((Server)server).getPublishedResourceDelta(module);
++ DeployableServerBehavior beh = ServerConverter.getDeployableServerBehavior(server);
++ IModulePathFilter filter = beh.getPathFilter(module);
++
++ return publishChanges(server, deltas, root, filter);
++ }
++
++ /**
++ * @since 2.3
++ */
++ protected IStatus[] publishChanges(IServer server, IModuleResourceDelta[] deltas,
++ de.schlichtherle.truezip.file.TFile root, IModulePathFilter filter) {
++ ArrayList<IStatus> results = new ArrayList<IStatus>();
++ if( deltas == null || deltas.length == 0 )
++ return new IStatus[]{};
++ int dKind;
++ IModuleResource resource;
++ for( int i = 0; i < deltas.length; i++ ) {
++ dKind = deltas[i].getKind();
++ resource = deltas[i].getModuleResource();
++ if( dKind == IModuleResourceDelta.ADDED ) {
++ if( filter == null || filter.shouldInclude(resource)) {
++ results.addAll(Arrays.asList(copy(root, new IModuleResource[]{resource})));
++ }
++ } else if( dKind == IModuleResourceDelta.CHANGED ) {
++ if( filter == null || filter.shouldInclude(resource)) {
++ if( resource instanceof IModuleFile )
++ results.addAll(Arrays.asList(copy(root, new IModuleResource[]{resource})));
++ results.addAll(Arrays.asList(publishChanges(server, deltas[i].getAffectedChildren(), root, filter)));
++ }
++ } else if( dKind == IModuleResourceDelta.REMOVED) {
++ de.schlichtherle.truezip.file.TFile f = getFileInArchive(root,
++ resource.getModuleRelativePath().append(
++ resource.getName()));
++
++ boolean b = true;
++ try {
++ de.schlichtherle.truezip.file.TFile tf = f.rm_r();
++ if (!tf.exists()) { b = false; }
++ } catch (IOException e) { b = false; }
++
++ if( !b )
++ results.add(generateDeleteFailedStatus(f));
++ hasBeenChanged = true;
++ } else if( dKind == IModuleResourceDelta.NO_CHANGE ) {
++ results.addAll(Arrays.asList(publishChanges(server, deltas[i].getAffectedChildren(), root, filter)));
++ }
++ }
++
++ return (IStatus[]) results.toArray(new IStatus[results.size()]);
++ }
++
++
++ protected IStatus[] copy(de.schlichtherle.truezip.file.TFile root, IModuleResource[] children) {
++ ArrayList<IStatus> results = new ArrayList<IStatus>();
++ for( int i = 0; i < children.length; i++ ) {
++ if( children[i] instanceof IModuleFile ) {
++ IModuleFile mf = (IModuleFile)children[i];
++ java.io.File source = getFile(mf);
++ de.schlichtherle.truezip.file.TFile destination = getFileInArchive(root, mf.getModuleRelativePath().append(mf.getName()));
++
++ boolean b = true;
++ try {
++ de.schlichtherle.truezip.file.TFile tf = new de.schlichtherle.truezip.file.TFile(source, TArchiveDetector.NULL).cp_rp(destination);
++ if (!tf.exists()) { b = false; }
++ } catch (IOException e) { b = false; }
++
++ if( !b )
++ results.add(generateCopyFailStatus(source, destination));
++ } else if( children[i] instanceof IModuleFolder ) {
++ de.schlichtherle.truezip.file.TFile destination = getFileInArchive(root, children[i].getModuleRelativePath().append(children[i].getName()));
++ destination.mkdirs();
++ IModuleFolder mf = (IModuleFolder)children[i];
++ results.addAll(Arrays.asList(copy(root, mf.members())));
++ }
++ }
++ hasBeenChanged = true;
++ return (IStatus[]) results.toArray(new IStatus[results.size()]);
++ }
++
++ protected IStatus generateDeleteFailedStatus(java.io.File file) {
++ return new Status(IStatus.ERROR, IntegrationPlugin.PLUGIN_ID, "Could not delete file " + file); //$NON-NLS-1$
++ }
++ protected IStatus generateCoreExceptionStatus(CoreException ce) {
++ return new Status(IStatus.ERROR, IntegrationPlugin.PLUGIN_ID, ce.getMessage(), ce);
++ }
++ protected IStatus generateCopyFailStatus(java.io.File source, java.io.File destination) {
++ return new Status(IStatus.ERROR, IntegrationPlugin.PLUGIN_ID, "Copy of " + source + " to " + destination + " has failed");//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
++ }
++
++ protected de.schlichtherle.truezip.file.TFile getFileInArchive(de.schlichtherle.truezip.file.TFile root, IPath relative) {
++ while(relative.segmentCount() > 0 ) {
++ root = new de.schlichtherle.truezip.file.TFile(root,
++ relative.segment(0), TArchiveDetector.NULL);
++ relative = relative.removeFirstSegments(1);
++ }
++ return root;
++ }
++
++ public static IModule[] combine(IModule[] module, IModule newMod) {
++ return PublishUtil.combine(module, newMod);
++ }
++
++ public IPath getOutputFilePath() {
++ return getOutputFilePath(module);
++ }
++
++ public IPath getOutputFilePath(IModule[] module) {
++ return getOutputFilePath(server,module, deployRoot);
++ }
++
++ public IPath getOutputFilePath(IServer server, IModule[] module, String deployRoot) {
++ IDeployableServer ds = ServerConverter.getDeployableServer(server);
++ return getDeployPath(module, deployRoot, ds);
++ }
++
++ public boolean hasBeenChanged() {
++ return hasBeenChanged;
++ }
++ public IModule[] getModule() {
++ return module;
++ }
++}
+diff -Naur as/plugins/org.jboss.ide.eclipse.archives.webtools.orig/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java
+--- as/plugins/org.jboss.ide.eclipse.archives.webtools.orig/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java 2012-07-03 15:48:33.261087430 +0100
++++ as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/LocalZippedPublisherUtil.java 2012-07-03 16:55:37.327254729 +0100
+@@ -11,6 +11,8 @@
+ ******************************************************************************/
+ package org.jboss.ide.eclipse.archives.webtools.modules;
+
++import java.io.IOException;
++
+ import java.io.File;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+@@ -47,7 +49,7 @@
+ import org.jboss.ide.eclipse.as.core.util.ServerConverter;
+ import org.jboss.ide.eclipse.as.wtp.core.util.ServerModelUtilities;
+
+-import de.schlichtherle.io.ArchiveDetector;
++import de.schlichtherle.truezip.file.TArchiveDetector;
+
+ public class LocalZippedPublisherUtil extends PublishUtil {
+
+@@ -229,7 +231,7 @@
+ try {
+ IPath path = getOutputFilePath(combine(parent, last));
+ path = path.removeLastSegments(1);
+- de.schlichtherle.io.File root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
++ de.schlichtherle.truezip.file.TFile root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
+ IModuleResource[] resources = getResources(last, new NullProgressMonitor());
+ results.addAll(Arrays.asList(copy(root, resources)));
+ TrueZipUtil.umount();
+@@ -247,7 +249,7 @@
+ FileUtil.safeDelete(path.toFile(), null);
+
+ TrueZipUtil.createArchive(path);
+- de.schlichtherle.io.File root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
++ de.schlichtherle.truezip.file.TFile root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
+ IModuleResource[] resources = getResources(module);
+ DeployableServerBehavior beh = ServerConverter.getDeployableServerBehavior(server);
+ IModulePathFilter filter = beh.getPathFilter(module);
+@@ -282,7 +284,7 @@
+
+ protected IStatus[] publishChanges(IServer server, String deployRoot, IModule[] module) {
+ IPath path = getOutputFilePath(module);
+- de.schlichtherle.io.File root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
++ de.schlichtherle.truezip.file.TFile root = TrueZipUtil.getFile(path, TrueZipUtil.getJarArchiveDetector());
+ IModuleResourceDelta[] deltas = ((Server)server).getPublishedResourceDelta(module);
+ DeployableServerBehavior beh = ServerConverter.getDeployableServerBehavior(server);
+ IModulePathFilter filter = beh.getPathFilter(module);
+@@ -294,7 +296,7 @@
+ * @since 2.3
+ */
+ protected IStatus[] publishChanges(IServer server, IModuleResourceDelta[] deltas,
+- de.schlichtherle.io.File root, IModulePathFilter filter) {
++ de.schlichtherle.truezip.file.TFile root, IModulePathFilter filter) {
+ ArrayList<IStatus> results = new ArrayList<IStatus>();
+ if( deltas == null || deltas.length == 0 )
+ return new IStatus[]{};
+@@ -314,10 +316,16 @@
+ results.addAll(Arrays.asList(publishChanges(server, deltas[i].getAffectedChildren(), root, filter)));
+ }
+ } else if( dKind == IModuleResourceDelta.REMOVED) {
+- de.schlichtherle.io.File f = getFileInArchive(root,
++ de.schlichtherle.truezip.file.TFile f = getFileInArchive(root,
+ resource.getModuleRelativePath().append(
+ resource.getName()));
+- boolean b = f.deleteAll();
++
++ boolean b = true;
++ try {
++ de.schlichtherle.truezip.file.TFile tf = f.rm_r();
++ if (!tf.exists()) { b = false; }
++ } catch (IOException e) { b = false; }
++
+ if( !b )
+ results.add(generateDeleteFailedStatus(f));
+ hasBeenChanged = true;
+@@ -330,18 +338,24 @@
+ }
+
+
+- protected IStatus[] copy(de.schlichtherle.io.File root, IModuleResource[] children) {
++ protected IStatus[] copy(de.schlichtherle.truezip.file.TFile root, IModuleResource[] children) {
+ ArrayList<IStatus> results = new ArrayList<IStatus>();
+ for( int i = 0; i < children.length; i++ ) {
+ if( children[i] instanceof IModuleFile ) {
+ IModuleFile mf = (IModuleFile)children[i];
+ java.io.File source = getFile(mf);
+- de.schlichtherle.io.File destination = getFileInArchive(root, mf.getModuleRelativePath().append(mf.getName()));
+- boolean b = new de.schlichtherle.io.File(source, ArchiveDetector.NULL).archiveCopyAllTo(destination);
++ de.schlichtherle.truezip.file.TFile destination = getFileInArchive(root, mf.getModuleRelativePath().append(mf.getName()));
++
++ boolean b = true;
++ try {
++ de.schlichtherle.truezip.file.TFile tf = new de.schlichtherle.truezip.file.TFile(source, TArchiveDetector.NULL).cp_rp(destination);
++ if (!tf.exists()) { b = false; }
++ } catch (IOException e) { b = false; }
++
+ if( !b )
+ results.add(generateCopyFailStatus(source, destination));
+ } else if( children[i] instanceof IModuleFolder ) {
+- de.schlichtherle.io.File destination = getFileInArchive(root, children[i].getModuleRelativePath().append(children[i].getName()));
++ de.schlichtherle.truezip.file.TFile destination = getFileInArchive(root, children[i].getModuleRelativePath().append(children[i].getName()));
+ destination.mkdirs();
+ IModuleFolder mf = (IModuleFolder)children[i];
+ results.addAll(Arrays.asList(copy(root, mf.members())));
+@@ -361,10 +375,10 @@
+ return new Status(IStatus.ERROR, IntegrationPlugin.PLUGIN_ID, "Copy of " + source + " to " + destination + " has failed");//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
+ }
+
+- protected de.schlichtherle.io.File getFileInArchive(de.schlichtherle.io.File root, IPath relative) {
++ protected de.schlichtherle.truezip.file.TFile getFileInArchive(de.schlichtherle.truezip.file.TFile root, IPath relative) {
+ while(relative.segmentCount() > 0 ) {
+- root = new de.schlichtherle.io.File(root,
+- relative.segment(0), ArchiveDetector.NULL);
++ root = new de.schlichtherle.truezip.file.TFile(root,
++ relative.segment(0), TArchiveDetector.NULL);
+ relative = relative.removeFirstSegments(1);
+ }
+ return root;
diff --git a/eclipse-jbosstools-as-methodVisibility.patch b/eclipse-jbosstools-as-methodVisibility.patch
new file mode 100644
index 0000000..6090444
--- /dev/null
+++ b/eclipse-jbosstools-as-methodVisibility.patch
@@ -0,0 +1,11 @@
+--- as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleDelegate.java.orig 2012-06-24 00:04:35.842601733 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleDelegate.java 2012-06-24 00:05:02.289094405 +0100
+@@ -37,7 +37,7 @@
+ }
+
+ @Override
+- protected IFlattenParticipant[] getParticipants() {
++ public IFlattenParticipant[] getParticipants() {
+ List<IFlattenParticipant> participants = new ArrayList<IFlattenParticipant>();
+ participants.add(new JEEHeirarchyExportParticipant());
+ participants.add(new AddMappedOutputFoldersParticipant());
diff --git a/eclipse-jbosstools-as.core.patch b/eclipse-jbosstools-as.core.patch
new file mode 100644
index 0000000..f2d918a
--- /dev/null
+++ b/eclipse-jbosstools-as.core.patch
@@ -0,0 +1,49 @@
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.core.orig/build.properties as/plugins/org.jboss.ide.eclipse.as.core/build.properties
+--- as/plugins/org.jboss.ide.eclipse.as.core.orig/build.properties 2012-07-03 15:15:13.120007605 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.core/build.properties 2012-07-03 15:17:55.357657862 +0100
+@@ -2,11 +2,11 @@
+ bin.includes = META-INF/,\
+ plugin.xml,\
+ License.txt,\
+- jaxen-1.1-beta-6.jar,\
+- dom4j-1.6.1.jar,\
++ jaxen.jar,\
++ dom4j.jar,\
+ plugin.properties,\
+ schema/,\
+- getopt.jar,\
++ gnu-getopt.jar,\
+ properties/,\
+ dtd/,\
+ .,\
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.core.orig/.classpath as/plugins/org.jboss.ide.eclipse.as.core/.classpath
+--- as/plugins/org.jboss.ide.eclipse.as.core.orig/.classpath 2012-07-03 15:15:12.827013865 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.core/.classpath 2012-07-03 15:17:36.785031518 +0100
+@@ -3,8 +3,8 @@
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="jbosscore"/>
+- <classpathentry exported="true" kind="lib" path="dom4j-1.6.1.jar"/>
+- <classpathentry exported="true" kind="lib" path="jaxen-1.1-beta-6.jar"/>
+- <classpathentry exported="true" kind="lib" path="getopt.jar"/>
++ <classpathentry exported="true" kind="lib" path="dom4j.jar"/>
++ <classpathentry exported="true" kind="lib" path="jaxen.jar"/>
++ <classpathentry exported="true" kind="lib" path="gnu-getopt.jar"/>
+ <classpathentry kind="output" path="bin"/>
+ </classpath>
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.core.orig/META-INF/MANIFEST.MF as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF
+--- as/plugins/org.jboss.ide.eclipse.as.core.orig/META-INF/MANIFEST.MF 2012-07-03 15:15:13.121007584 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF 2012-07-03 15:19:20.998958886 +0100
+@@ -46,9 +46,9 @@
+ org.jboss.ide.eclipse.as.core.server.v7.management,
+ org.jboss.ide.eclipse.as.core.server.xpl,
+ org.jboss.ide.eclipse.as.core.util
+-Bundle-ClassPath: dom4j-1.6.1.jar,
+- jaxen-1.1-beta-6.jar,
+- getopt.jar,
++Bundle-ClassPath: dom4j.jar,
++ jaxen.jar,
++ gnu-getopt.jar,
+ .
+ Bundle-Vendor: %Bundle-Vendor.0
+ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/eclipse-jbosstools-as.dmr.patch b/eclipse-jbosstools-as.dmr.patch
new file mode 100644
index 0000000..af0dbb4
--- /dev/null
+++ b/eclipse-jbosstools-as.dmr.patch
@@ -0,0 +1,33 @@
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.dmr.orig/build.properties as/plugins/org.jboss.ide.eclipse.as.dmr/build.properties
+--- as/plugins/org.jboss.ide.eclipse.as.dmr.orig/build.properties 2012-07-03 15:26:46.943448598 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.dmr/build.properties 2012-07-03 15:05:28.000000000 +0100
+@@ -2,5 +2,5 @@
+ output.. = bin/
+ bin.includes = META-INF/,\
+ .,\
+- jboss-dmr-1.1.1.Final.jar,\
++ jboss-dmr.jar,\
+ build.properties
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.dmr.orig/.classpath as/plugins/org.jboss.ide.eclipse.as.dmr/.classpath
+--- as/plugins/org.jboss.ide.eclipse.as.dmr.orig/.classpath 2012-07-03 15:26:46.924448956 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.dmr/.classpath 2012-07-03 15:05:28.471970914 +0100
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <classpath>
+- <classpathentry exported="true" kind="lib" path="jboss-dmr-1.1.1.Final.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-dmr.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.dmr.orig/META-INF/MANIFEST.MF as/plugins/org.jboss.ide.eclipse.as.dmr/META-INF/MANIFEST.MF
+--- as/plugins/org.jboss.ide.eclipse.as.dmr.orig/META-INF/MANIFEST.MF 2012-07-03 15:26:46.944448579 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.dmr/META-INF/MANIFEST.MF 2012-07-03 15:27:57.218131263 +0100
+@@ -7,7 +7,7 @@
+ Bundle-ActivationPolicy: lazy
+ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+ Bundle-Vendor: JBoss by Red Hat
+-Bundle-ClassPath: jboss-dmr-1.1.1.Final.jar,
++Bundle-ClassPath: jboss-dmr.jar,
+ .
+ Export-Package: org.jboss.dmr
+ Require-Bundle: org.eclipse.core.runtime
diff --git a/eclipse-jbosstools-as.mgmt.as71.patch b/eclipse-jbosstools-as.mgmt.as71.patch
new file mode 100644
index 0000000..afd9d24
--- /dev/null
+++ b/eclipse-jbosstools-as.mgmt.as71.patch
@@ -0,0 +1,86 @@
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.management.as71.orig/build.properties as/plugins/org.jboss.ide.eclipse.as.management.as71/build.properties
+--- as/plugins/org.jboss.ide.eclipse.as.management.as71.orig/build.properties 2012-07-03 17:31:05.411064295 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.management.as71/build.properties 2012-07-03 17:32:00.568036046 +0100
+@@ -7,13 +7,13 @@
+ output.. = bin/
+ bin.includes = META-INF/,\
+ .,\
+- jboss-as-controller-client-7.1.0.Final.jar,\
+- jboss-as-protocol-7.1.0.Final.jar,\
+- jboss-dmr-1.1.1.Final.jar,\
+- jboss-logging-3.1.0.GA.jar,\
+- jboss-marshalling-1.3.9.GA.jar,\
+- jboss-sasl-1.0.0.Final.jar,\
+- jboss-threads-2.0.0.GA.jar,\
+- xnio-api-3.0.3.GA.jar,\
+- xnio-nio-3.0.3.GA.jar,\
+- jboss-remoting-3.2.7.GA.jar
++ jboss-as-controller-client.jar,\
++ jboss-as-protocol.jar,\
++ jboss-dmr.jar,\
++ jboss-logging.jar,\
++ jboss-marshalling.jar,\
++ jboss-sasl.jar,\
++ jboss-threads.jar,\
++ xnio-api.jar,\
++ xnio-nio.jar,\
++ jboss-remoting.jar
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.management.as71.orig/.classpath as/plugins/org.jboss.ide.eclipse.as.management.as71/.classpath
+--- as/plugins/org.jboss.ide.eclipse.as.management.as71.orig/.classpath 2012-07-03 17:31:05.371065045 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.management.as71/.classpath 2012-07-03 17:33:41.942148031 +0100
+@@ -1,15 +1,15 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <classpath>
+- <classpathentry exported="true" kind="lib" path="jboss-as-controller-client-7.1.0.Final.jar" sourcepath="/home/rob/code/jboss/as7/jboss-as/controller-client"/>
+- <classpathentry exported="true" kind="lib" path="jboss-as-protocol-7.1.0.Final.jar" sourcepath="/home/rob/code/jboss/as7/jboss-as/protocol/src"/>
+- <classpathentry exported="true" kind="lib" path="jboss-dmr-1.1.1.Final.jar"/>
+- <classpathentry exported="true" kind="lib" path="jboss-logging-3.1.0.GA.jar"/>
+- <classpathentry exported="true" kind="lib" path="jboss-marshalling-1.3.9.GA.jar"/>
+- <classpathentry exported="true" kind="lib" path="jboss-sasl-1.0.0.Final.jar"/>
+- <classpathentry exported="true" kind="lib" path="jboss-threads-2.0.0.GA.jar"/>
+- <classpathentry exported="true" kind="lib" path="xnio-api-3.0.3.GA.jar"/>
+- <classpathentry exported="true" kind="lib" path="xnio-nio-3.0.3.GA.jar"/>
+- <classpathentry exported="true" kind="lib" path="jboss-remoting-3.2.7.GA.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-as-controller-client.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-as-protocol.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-dmr.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-logging.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-marshalling.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-sasl.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-threads.jar"/>
++ <classpathentry exported="true" kind="lib" path="xnio-api.jar"/>
++ <classpathentry exported="true" kind="lib" path="xnio-nio.jar"/>
++ <classpathentry exported="true" kind="lib" path="jboss-remoting.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+diff -Naur as/plugins/org.jboss.ide.eclipse.as.management.as71.orig/META-INF/MANIFEST.MF as/plugins/org.jboss.ide.eclipse.as.management.as71/META-INF/MANIFEST.MF
+--- as/plugins/org.jboss.ide.eclipse.as.management.as71.orig/META-INF/MANIFEST.MF 2012-07-03 17:31:05.412064277 +0100
++++ as/plugins/org.jboss.ide.eclipse.as.management.as71/META-INF/MANIFEST.MF 2012-07-03 17:34:44.386984802 +0100
+@@ -10,16 +10,16 @@
+ Bundle-ActivationPolicy: lazy
+ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+ Bundle-ClassPath: .,
+- jboss-as-controller-client-7.1.0.Final.jar,
+- jboss-as-protocol-7.1.0.Final.jar,
+- jboss-dmr-1.1.1.Final.jar,
+- jboss-logging-3.1.0.GA.jar,
+- jboss-marshalling-1.3.9.GA.jar,
+- jboss-sasl-1.0.0.Final.jar,
+- jboss-threads-2.0.0.GA.jar,
+- xnio-api-3.0.3.GA.jar,
+- xnio-nio-3.0.3.GA.jar,
+- jboss-remoting-3.2.7.GA.jar
++ jboss-as-controller-client.jar,
++ jboss-as-protocol.jar,
++ jboss-dmr.jar,
++ jboss-logging.jar,
++ jboss-marshalling.jar,
++ jboss-sasl.jar,
++ jboss-threads.jar,
++ xnio-api.jar,
++ xnio-nio.jar,
++ jboss-remoting.jar
+ Service-Component: META-INF/jboss-management-service.xml
+ Export-Package: org.jboss.ide.eclipse.as.internal.management.as71;x-friends:="org.jboss.ide.eclipse.as.management.as7.tests"
+ Bundle-Vendor: JBoss by Red Hat
diff --git a/eclipse-jbosstools-as.patch b/eclipse-jbosstools-as.patch
new file mode 100644
index 0000000..b9f22cf
--- /dev/null
+++ b/eclipse-jbosstools-as.patch
@@ -0,0 +1,27 @@
+diff -Naur as.orig/features/pom.xml as/features/pom.xml
+--- as.orig/features/pom.xml 2012-06-24 00:00:05.710796897 +0100
++++ as/features/pom.xml 2012-06-23 23:58:04.096146516 +0100
+@@ -18,7 +18,7 @@
+ <module>org.jboss.ide.eclipse.as.server.rse.integration.feature</module>
+
+ <module>org.jboss.ide.eclipse.as.feature</module>
+- <module>org.jboss.ide.eclipse.as.test.feature</module>
++ <!--<module>org.jboss.ide.eclipse.as.test.feature</module>-->
+
+ </modules>
+ </project>
+diff -Naur as.orig/pom.xml as/pom.xml
+--- as.orig/pom.xml 2012-06-24 00:00:05.702797049 +0100
++++ as/pom.xml 2012-06-23 23:57:47.231473028 +0100
+@@ -14,9 +14,9 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>plugins</module>
+- <module>tests</module>
++ <!--<module>tests</module>-->
+ <module>features</module>
+- <module>site</module>
++ <!--<module>site</module>-->
+ </modules>
+ </project>
+
diff --git a/eclipse-jbosstools-cdi.patch b/eclipse-jbosstools-cdi.patch
new file mode 100644
index 0000000..b6a0ede
--- /dev/null
+++ b/eclipse-jbosstools-cdi.patch
@@ -0,0 +1,30 @@
+--- cdi/pom.xml.orig 2012-07-21 21:19:34.554666802 +0100
++++ cdi/pom.xml 2012-07-21 21:20:06.142090919 +0100
+@@ -15,8 +15,8 @@
+ <modules>
+ <module>features</module>
+ <module>plugins</module>
+- <module>tests</module>
+- <module>site</module>
++ <!--<module>tests</module>-->
++ <!--<module>site</module>-->
+ </modules>
+ </project>
+
+--- cdi/features/pom.xml.orig 2012-07-21 21:20:13.076964208 +0100
++++ cdi/features/pom.xml 2012-07-21 21:21:21.598625873 +0100
+@@ -13,11 +13,11 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.cdi.feature</module>
+- <module>org.jboss.tools.cdi.test.feature</module>
++ <!--<module>org.jboss.tools.cdi.test.feature</module>-->
+ <module>org.jboss.tools.cdi.seam.feature</module>
+- <module>org.jboss.tools.cdi.seam.test.feature</module>
++ <!--<module>org.jboss.tools.cdi.seam.test.feature</module>-->
+ <module>org.jboss.tools.cdi.deltaspike.feature</module>
+- <module>org.jboss.tools.cdi.deltaspike.test.feature</module>
++ <!--<module>org.jboss.tools.cdi.deltaspike.test.feature</module>-->
+ </modules>
+ </project>
+
diff --git a/eclipse-jbosstools-common.patch b/eclipse-jbosstools-common.patch
new file mode 100644
index 0000000..1d5cc7d
--- /dev/null
+++ b/eclipse-jbosstools-common.patch
@@ -0,0 +1,46 @@
+diff -Naur common.orig/features/pom.xml common/features/pom.xml
+--- common.orig/features/pom.xml 2012-06-23 22:53:34.732197210 +0100
++++ common/features/pom.xml 2012-06-23 22:34:14.341255190 +0100
+@@ -13,14 +13,14 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.common.all.feature</module>
+- <module>org.jboss.tools.common.all.test.feature</module>
++ <!--<module>org.jboss.tools.common.all.test.feature</module>-->
+ <module>org.jboss.tools.common.core.feature</module>
+ <module>org.jboss.tools.common.feature</module>
+ <module>org.jboss.tools.common.text.ext.feature</module>
+ <module>org.jboss.tools.common.ui.feature</module>
+ <module>org.jboss.tools.common.verification.feature</module>
+ <module>org.jboss.tools.common.jdt.feature</module>
+- <module>org.jboss.tools.common.mylyn.feature</module>
++ <!--<module>org.jboss.tools.common.mylyn.feature</module>-->
+ </modules>
+ </project>
+
+diff -Naur common.orig/plugins/pom.xml common/plugins/pom.xml
+--- common.orig/plugins/pom.xml 2012-06-23 22:53:36.062171912 +0100
++++ common/plugins/pom.xml 2012-06-23 22:30:30.939490730 +0100
+@@ -33,7 +33,7 @@
+ <module>org.jboss.tools.common.jdt.debug.ui</module>
+ <module>org.jboss.tools.common.jdt</module>
+ <module>org.jboss.tools.common.jdt.ui</module>
+- <module>org.jboss.tools.common.mylyn</module>
++ <!--<module>org.jboss.tools.common.mylyn</module>-->
+ </modules>
+ </project>
+
+diff -Naur common.orig/pom.xml common/pom.xml
+--- common.orig/pom.xml 2012-06-23 22:53:34.725197343 +0100
++++ common/pom.xml 2012-06-23 22:41:40.332789621 +0100
+@@ -16,8 +16,8 @@
+ <modules>
+ <module>plugins</module>
+ <module>features</module>
+- <module>site</module>
+- <module>tests</module>
++ <!--<module>site</module>-->
++ <!--<module>tests</module>-->
+ </modules>
+ </project>
+
diff --git a/eclipse-jbosstools-freemarker.patch b/eclipse-jbosstools-freemarker.patch
new file mode 100644
index 0000000..c224ac9
--- /dev/null
+++ b/eclipse-jbosstools-freemarker.patch
@@ -0,0 +1,62 @@
+--- freemarker/pom.xml.orig 2012-07-22 00:24:06.422186927 +0100
++++ freemarker/pom.xml 2012-07-22 00:24:27.870778637 +0100
+@@ -16,8 +16,8 @@
+ <modules>
+ <module>plugins</module>
+ <module>features</module>
+- <module>site</module>
+- <module>tests</module>
++ <!--<module>site</module>-->
++ <!--<module>tests</module>-->
+ </modules>
+ </project>
+
+--- freemarker/features/pom.xml.orig 2012-07-22 00:24:33.714667375 +0100
++++ freemarker/features/pom.xml 2012-07-22 00:24:44.527461497 +0100
+@@ -13,6 +13,6 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.ide.eclipse.freemarker.feature</module>
+- <module>org.jboss.ide.eclipse.freemarker.test.feature</module>
++ <!--<module>org.jboss.ide.eclipse.freemarker.test.feature</module>-->
+ </modules>
+ </project>
+--- freemarker/plugins/org.jboss.ide.eclipse.freemarker/.classpath.orig 2012-07-22 14:25:42.768119690 +0100
++++ freemarker/plugins/org.jboss.ide.eclipse.freemarker/.classpath 2012-07-22 14:26:03.125731591 +0100
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <classpath>
+- <classpathentry exported="true" kind="lib" path="freemarker-2.3.18.jar"/>
++ <classpathentry exported="true" kind="lib" path="freemarker.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+--- freemarker/plugins/org.jboss.ide.eclipse.freemarker/build.properties.orig 2012-07-22 14:28:21.027101531 +0100
++++ freemarker/plugins/org.jboss.ide.eclipse.freemarker/build.properties 2012-07-22 14:28:44.958644928 +0100
+@@ -1,6 +1,6 @@
+ jars.compile.order = freemarker-ide.jar
+ bin.includes = plugin.*,\
+- freemarker-2.3.18.jar,\
++ freemarker.jar,\
+ META-INF/,\
+ .,\
+ icons/,\
+@@ -13,6 +13,6 @@
+ icons/,\
+ META-INF/,\
+ License.txt,\
+- freemarker-2.3.18.jar
++ freemarker.jar
+ source.freemarker-ide.jar = src/
+ output.freemarker-ide.jar = bin/
+--- freemarker/plugins/org.jboss.ide.eclipse.freemarker/META-INF/MANIFEST.MF.orig 2012-07-22 14:27:14.930362365 +0100
++++ freemarker/plugins/org.jboss.ide.eclipse.freemarker/META-INF/MANIFEST.MF 2012-07-22 14:27:33.120015436 +0100
+@@ -22,7 +22,7 @@
+ org.jboss.tools.usage;bundle-version="1.0.0";resolution:=optional;x-installation:=greedy
+ Bundle-ActivationPolicy: lazy
+ Bundle-ClassPath: freemarker-ide.jar,
+- freemarker-2.3.18.jar
++ freemarker.jar
+ Bundle-Vendor: %providerName
+ Export-Package: freemarker.core,
+ freemarker.template,
diff --git a/eclipse-jbosstools-jmx.patch b/eclipse-jbosstools-jmx.patch
new file mode 100644
index 0000000..26b6a2d
--- /dev/null
+++ b/eclipse-jbosstools-jmx.patch
@@ -0,0 +1,25 @@
+diff -Naur jmx.orig/features/pom.xml jmx/features/pom.xml
+--- jmx.orig/features/pom.xml 2012-06-23 23:55:17.102388771 +0100
++++ jmx/features/pom.xml 2012-06-23 23:54:28.367338739 +0100
+@@ -14,7 +14,7 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.jmx.feature</module>
+- <module>org.jboss.tools.jmx.test.feature</module>
++ <!--<module>org.jboss.tools.jmx.test.feature</module>-->
+ </modules>
+ </project>
+
+diff -Naur jmx.orig/pom.xml jmx/pom.xml
+--- jmx.orig/pom.xml 2012-06-23 23:55:17.097388970 +0100
++++ jmx/pom.xml 2012-06-23 23:54:08.340729843 +0100
+@@ -16,7 +16,7 @@
+ <modules>
+ <module>plugins</module>
+ <module>features</module>
+- <module>site</module>
+- <module>tests</module>
++ <!--<module>site</module>-->
++ <!--<module>tests</module>-->
+ </modules>
+ </project>
diff --git a/eclipse-jbosstools-jst.patch b/eclipse-jbosstools-jst.patch
new file mode 100644
index 0000000..ef6415c
--- /dev/null
+++ b/eclipse-jbosstools-jst.patch
@@ -0,0 +1,27 @@
+diff -u -Naur jst.orig/features/pom.xml jst/features/pom.xml
+--- jst.orig/features/pom.xml 2012-07-04 23:58:54.845883246 +0100
++++ jst/features/pom.xml 2012-07-04 16:47:26.045777425 +0100
+@@ -13,7 +13,7 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.jst.feature</module>
+- <module>org.jboss.tools.jst.test.feature</module>
++ <!--<module>org.jboss.tools.jst.test.feature</module>-->
+ <module>org.jboss.tools.jst.web.tiles.feature</module>
+ </modules>
+ </project>
+diff -u -Naur jst.orig/pom.xml jst/pom.xml
+--- jst.orig/pom.xml 2012-07-04 23:58:54.844883265 +0100
++++ jst/pom.xml 2012-07-04 16:46:48.969499064 +0100
+@@ -13,9 +13,9 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>plugins</module>
+- <module>tests</module>
++ <!--<module>tests</module>-->
+ <module>features</module>
+- <module>site</module>
++ <!--<module>site</module>-->
+ </modules>
+ </project>
+
diff --git a/eclipse-jbosstools-parent-pom.patch b/eclipse-jbosstools-parent-pom.patch
new file mode 100644
index 0000000..81aee11
--- /dev/null
+++ b/eclipse-jbosstools-parent-pom.patch
@@ -0,0 +1,133 @@
+--- build/parent/pom.xml.orig 2012-07-28 16:41:37.796076799 +0100
++++ build/parent/pom.xml 2012-07-28 16:40:55.391914321 +0100
+@@ -23,7 +23,7 @@
+ <memoryOptions2>-XX:MaxPermSize=256m</memoryOptions2>
+ <systemProperties></systemProperties>
+ <platformSystemProperties></platformSystemProperties>
+- <maven.antrun.plugin.version>1.3</maven.antrun.plugin.version>
++ <maven.antrun.plugin.version>1.7</maven.antrun.plugin.version>
+ <swtbot.test.skip>true</swtbot.test.skip>
+
+ <!-- target files available for building: multiple sites, 1 unified site,
+@@ -34,7 +34,7 @@
+ </target.platform.classifier.local>
+
+ <!-- 1a. URL of latest JBT target platform site -->
+- <jbosstools-target-site>http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/</jbosstools-target-site>
++ <!--<jbosstools-target-site>http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/</jbosstools-target-site>-->
+
+ <!-- 1b. or use -Plocal.site -Dlocal.site=file:///${HOME}/3.3.indigo/build/target-platform/REPO/ -->
+ <!-- TODO: don't forget to update JBDS .updatesite jobs when this value changes! -->
+@@ -44,9 +44,9 @@
+ <!-- 2a. URL of latest JBT nightly staging composite site (all the components
+ in once place) -->
+ <!-- for trunk use _composite_/trunk; for 3.3_stable_branch, use _composite_/3.3.indigo -->
+- <jbosstools-nightly-staging-composite>http://download.jboss.org/jbosstools/builds/staging/_composite_/core/3.3.indigo/</jbosstools-nightly-staging-composite>
++ <!--<jbosstools-nightly-staging-composite>http://download.jboss.org/jbosstools/builds/staging/_composite_/core/3.3.indigo/</jbosstools-nightly-staging-composite>-->
+ <!-- this site is not enabled by default as SOA Tooling is a downstream project (sorta). -->
+- <jbosstools-nightly-staging-composite-soa-tooling>http://download.jboss.org/jbosstools/builds/staging/_composite_/soa-tooling/3.3.indigo/</jbosstools-nightly-staging-composite-soa-tooling>
++ <!--<jbosstools-nightly-staging-composite-soa-tooling>http://download.jboss.org/jbosstools/builds/staging/_composite_/soa-tooling/3.3.indigo/</jbosstools-nightly-staging-composite-soa-tooling>-->
+
+ <!-- 2b. or use -Plocal.composite -Dlocal.composite=file:///path/to/mirror/of/composite/staging/site/ -->
+ <!-- for trunk use _composite_/trunk; for 3.3_stable_branch, use _composite_/3.3.indigo -->
+@@ -55,22 +55,22 @@
+
+ <!-- 3a. URL of latest JBT requirements composite mirror -->
+ <!-- TODO: don't forget to update this in ../aggregate/*/associate.properties too (5 files)! -->
+- <jboss-requirements-composite-mirror>http://download.jboss.org/jbosstools/updates/indigo/SR2/</jboss-requirements-composite-mirror>
+- <jboss-requirements-composite-soa-tooling-mirror>http://download.jboss.org/jbosstools/updates/indigo/soa-tooling/SR2/</jboss-requirements-composite-soa-tooling-mirror>
++ <!--<jboss-requirements-composite-mirror>http://download.jboss.org/jbosstools/updates/indigo/SR2/</jboss-requirements-composite-mirror>-->
++ <!--<jboss-requirements-composite-soa-tooling-mirror>http://download.jboss.org/jbosstools/updates/indigo/soa-tooling/SR2/</jboss-requirements-composite-soa-tooling-mirror>-->
+
+ <!-- 3b., or use -Plocal.requirements -Dlocal.requirements=file:///path/to/mirror/of/composite/requirements/site -->
+ <local.requirements>file:///qa/services/http/binaries/RHDS/updates/indigo/</local.requirements>
+
+ <!-- 4. published aggregate update sites go here, for consumption by QE
+ and downstream JBDS builds -->
+- <jbosstools-nightly>http://download.jboss.org/jbosstools/updates/nightly/core/3.3.indigo/</jbosstools-nightly>
+- <jbosstools-nightly-tests>http://download.jboss.org/jbosstools/updates/nightly/coretests/3.3.indigo/</jbosstools-nightly-tests>
++ <!--<jbosstools-nightly>http://download.jboss.org/jbosstools/updates/nightly/core/3.3.indigo/</jbosstools-nightly>-->
++ <!--<jbosstools-nightly-tests>http://download.jboss.org/jbosstools/updates/nightly/coretests/3.3.indigo/</jbosstools-nightly-tests>-->
+ <!-- these sites are not enabled by default as SOA Tooling is a downstream project (sorta). -->
+- <jbosstools-nightly-soa-tooling>http://download.jboss.org/jbosstools/updates/nightly/soa-tooling/3.3.indigo/</jbosstools-nightly-soa-tooling>
+- <jbosstools-nightly-soa-tooling-tests>http://download.jboss.org/jbosstools/updates/nightly/soatests/3.3.indigo/</jbosstools-nightly-soa-tooling-tests>
++ <!--<jbosstools-nightly-soa-tooling>http://download.jboss.org/jbosstools/updates/nightly/soa-tooling/3.3.indigo/</jbosstools-nightly-soa-tooling>-->
++ <!--<jbosstools-nightly-soa-tooling-tests>http://download.jboss.org/jbosstools/updates/nightly/soatests/3.3.indigo/</jbosstools-nightly-soa-tooling-tests>-->
+
+ <!-- 5. extra requirements (for 3rd party "Extras" site) -->
+- <jboss-requirements-composite-extras-mirror>http://download.jboss.org/jbosstools/updates/indigo/extras/SR1a/</jboss-requirements-composite-extras-mirror>
++ <!--<jboss-requirements-composite-extras-mirror>http://download.jboss.org/jbosstools/updates/indigo/extras/SR1a/</jboss-requirements-composite-extras-mirror>-->
+
+ <!-- Default coverage filter, to be overriden when necessary -->
+ <coverage.filter>org.jboss.tools.*</coverage.filter>
+@@ -78,7 +78,7 @@
+ <requirement.build.root>${requirements.root}/target</requirement.build.root>
+
+ <!-- JBIDE-11700, JBIDE-11865: latest stable build of m2e-apt for use with JBDS product builds -->
+- <m2e-apt>http://download.jboss.org/jbosstools/updates/requirements/m2eclipse/m2e-apt-1.0.0-2012-06-05_16-15-59-H16/</m2e-apt>
++ <!--<m2e-apt>http://download.jboss.org/jbosstools/updates/requirements/m2eclipse/m2e-apt-1.0.0-2012-06-05_16-15-59-H16/</m2e-apt>-->
+
+ </properties>
+
+@@ -290,7 +290,7 @@
+ <dependency>
+ <groupId>ant-contrib</groupId>
+ <artifactId>ant-contrib</artifactId>
+- <version>1.0b3</version>
++ <version>1.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>ant</groupId>
+@@ -298,6 +298,7 @@
+ </exclusion>
+ </exclusions>
+ </dependency>
++<!--
+ <dependency>
+ <groupId>ant</groupId>
+ <artifactId>ant-optional</artifactId>
+@@ -309,6 +310,7 @@
+ </exclusion>
+ </exclusions>
+ </dependency>
++-->
+ </dependencies>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>${maven.antrun.plugin.version}</version>
+@@ -770,7 +772,7 @@
+ <dependency>
+ <groupId>ant-contrib</groupId>
+ <artifactId>ant-contrib</artifactId>
+- <version>1.0b3</version>
++ <version>1.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>ant</groupId>
+@@ -884,6 +886,7 @@
+ </repositories>
+
+ <!-- Additional m2 repos to resolve things like org.eclipse.tycho:tycho-maven-plugin:0.13.0-SNAPSHOT -->
++<!--
+ <pluginRepositories>
+ <pluginRepository>
+ <id>sonatype-public-grid</id>
+@@ -896,10 +899,11 @@
+ <url>https://repository.sonatype.org/content/repositories/snapshots</url>
+ </pluginRepository>
+ </pluginRepositories>
+-
++-->
+ <!-- To deploy parent to Nexus -->
+ <!-- Don't change "id" since it should match credentials entry in $M2_REPO/settings.xml -->
+ <distributionManagement>
++<!--
+ <snapshotRepository>
+ <id>jboss-snapshots-repository</id>
+ <name>JBoss Snapshots Repository</name>
+@@ -912,5 +916,6 @@
+ <uniqueVersion>false</uniqueVersion>
+ <url>https://repository.jboss.org/nexus/content/groups/staging/</url>
+ </repository>
++-->
+ </distributionManagement>
+ </project>
diff --git a/eclipse-jbosstools-target-platform.patch b/eclipse-jbosstools-target-platform.patch
new file mode 100644
index 0000000..720d444
--- /dev/null
+++ b/eclipse-jbosstools-target-platform.patch
@@ -0,0 +1,87 @@
+diff -Naur build/target-platform.orig/pom.xml build/target-platform/pom.xml
+--- build/target-platform.orig/pom.xml 2012-06-23 16:39:22.787992090 +0100
++++ build/target-platform/pom.xml 2012-06-23 16:40:37.371551577 +0100
+@@ -14,10 +14,10 @@
+ <target.platform.classifier.multiple.name>multiple</target.platform.classifier.multiple.name>
+ <target.platform.classifier.unified.name>unified</target.platform.classifier.unified.name>
+ <target.platform.classifier.local.name>local</target.platform.classifier.local.name>
+- <unified.URL>http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/</unified.URL>
++ <!--<unified.URL>http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/</unified.URL>-->
+ <eclipse.version>3.7.2</eclipse.version>
+ <eclipse.type>platform</eclipse.type>
+- <eclipse.URL>http://www.eclipse.org/downloads/download.php?r=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/</eclipse.URL>
++ <!--<eclipse.URL>http://www.eclipse.org/downloads/download.php?r=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/</eclipse.URL>-->
+ </properties>
+
+ <build>
+diff -Naur build/target-platform.orig/targetUpdateFromRepo.xml build/target-platform/targetUpdateFromRepo.xml
+--- build/target-platform.orig/targetUpdateFromRepo.xml 2012-06-23 16:39:22.837991125 +0100
++++ build/target-platform/targetUpdateFromRepo.xml 2012-06-23 16:42:14.789670036 +0100
+@@ -12,7 +12,7 @@
+ <!-- create a second .target file which replaces all URLs with a single unified (published) one
+ (eg., for jbosstools target platform site), set these properties too -->
+ <property name="unified.targetFile" value="unified.target" />
+- <property name="unified.URL" value="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/" />
++ <!--<property name="unified.URL" value="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/" />-->
+ <property name="local.targetFile" value="local.target" />
+ <property name="local.URL" value="file://${repoDir}" />
+
+diff -Naur build/target-platform.orig/unified-junoM6.target build/target-platform/unified-junoM6.target
+--- build/target-platform.orig/unified-junoM6.target 2012-06-23 16:39:22.839991085 +0100
++++ build/target-platform/unified-junoM6.target 2012-06-23 16:42:50.047989056 +0100
+@@ -15,7 +15,7 @@
+ <location includeAllPlatforms="false" includeMode="planner" type="InstallableUnit">
+ <!-- don't forget to increment these files when moving up a version:
+ build.xml, *.target*, publish.sh, target2p2mirror.xml -->
+- <repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.juno.M6/latest/"/>
++ <!--<repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.juno.M6/latest/"/>-->
+
+ <!-- m2e, m2e-wtp + deps -->
+ <unit id="org.eclipse.m2e.sdk.feature.feature.group" version="1.1.0.20120320-0058"/>
+diff -Naur build/target-platform.orig/unified-junoM6.target.p2mirror.xml build/target-platform/unified-junoM6.target.p2mirror.xml
+--- build/target-platform.orig/unified-junoM6.target.p2mirror.xml 2012-06-23 16:39:22.790992033 +0100
++++ build/target-platform/unified-junoM6.target.p2mirror.xml 2012-06-23 16:43:32.685165559 +0100
+@@ -28,7 +28,7 @@
+ <p2.mirror destination="file://${repoDir}" verbose="${verbose}">
+ <slicingOptions includeFeatures="true" followStrict="${followStrict}"/>
+ <source>
+-<repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>
++<!--<repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>-->
+ </source>
+ <iu id="org.eclipse.m2e.sdk.feature.feature.group" version=""/>
+ <iu id="org.eclipse.m2e.feature.feature.group" version=""/>
+diff -Naur build/target-platform.orig/unified.target build/target-platform/unified.target
+--- build/target-platform.orig/unified.target 2012-06-23 16:39:22.796991916 +0100
++++ build/target-platform/unified.target 2012-06-23 16:45:13.110225942 +0100
+@@ -9,13 +9,13 @@
+ <locations>
+ <location includeAllPlatforms="false" includeMode="planner" type="InstallableUnit">
+ <!-- for trunk use _composite_/trunk; for 3.3_stable_branch, use _composite_/3.3.indigo -->
+- <repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>
++ <!--<repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>-->
+ </location>
+
+ <location includeAllPlatforms="false" includeMode="planner" type="InstallableUnit">
+ <!-- don't forget to increment these files when moving up a version:
+ build.xml, *.target*, publish.sh, target2p2mirror.xml -->
+- <repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>
++ <!--<repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>-->
+
+ <!-- m2e, m2e-wtp + deps -->
+ <unit id="org.eclipse.m2e.sdk.feature.feature.group" version="1.0.100.20110804-1717"/>
+diff -Naur build/target-platform.orig/unified.target.p2mirror.xml build/target-platform/unified.target.p2mirror.xml
+--- build/target-platform.orig/unified.target.p2mirror.xml 2012-06-23 16:39:22.838991105 +0100
++++ build/target-platform/unified.target.p2mirror.xml 2012-06-23 16:46:06.791189144 +0100
+@@ -27,10 +27,10 @@
+ <echo level="info">Download features/plugins into ${repoDir}</echo>
+ <p2.mirror destination="file://${repoDir}" verbose="${verbose}">
+ <slicingOptions includeFeatures="true" followStrict="${followStrict}"/>
+-<source>
++<!--<source>
+ <repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>
+ <repository location="http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo.SR2/latest/"/>
+-</source>
++</source>-->
+ <iu id="org.eclipse.m2e.sdk.feature.feature.group" version=""/>
+ <iu id="org.eclipse.m2e.feature.feature.group" version=""/>
+ <iu id="org.maven.ide.eclipse.wtp.feature.feature.group" version=""/>
diff --git a/eclipse-jbosstools-usage.patch b/eclipse-jbosstools-usage.patch
new file mode 100644
index 0000000..dc71ae4
--- /dev/null
+++ b/eclipse-jbosstools-usage.patch
@@ -0,0 +1,27 @@
+diff -Naur usage.orig/features/pom.xml usage/features/pom.xml
+--- usage.orig/features/pom.xml 2012-06-23 23:44:20.377090404 +0100
++++ usage/features/pom.xml 2012-06-23 23:40:20.205626677 +0100
+@@ -14,7 +14,7 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.usage.feature</module>
+- <module>org.jboss.tools.usage.test.feature</module>
++ <!--<module>org.jboss.tools.usage.test.feature</module>-->
+ </modules>
+ </project>
+
+diff -Naur usage.orig/pom.xml usage/pom.xml
+--- usage.orig/pom.xml 2012-06-23 23:44:20.374090461 +0100
++++ usage/pom.xml 2012-06-23 23:43:05.625503049 +0100
+@@ -15,9 +15,9 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>plugins</module>
+- <module>tests</module>
++ <!--<module>tests</module>-->
+ <module>features</module>
+- <module>site</module>
++ <!--<module>site</module>-->
+ </modules>
+ </project>
+
diff --git a/eclipse-jbosstools-ws.patch b/eclipse-jbosstools-ws.patch
new file mode 100644
index 0000000..ea82ec4
--- /dev/null
+++ b/eclipse-jbosstools-ws.patch
@@ -0,0 +1,43 @@
+--- ws/pom.xml.orig 2012-07-21 15:46:56.506038340 +0100
++++ ws/pom.xml 2012-07-21 15:47:16.996650325 +0100
+@@ -15,9 +15,9 @@
+ <packaging>pom</packaging>
+ <modules>
+ <module>plugins</module>
+- <module>tests</module>
++ <!--<module>tests</module>-->
+ <module>features</module>
+- <module>site</module>
++ <!--<module>site</module>-->
+ </modules>
+ </project>
+
+--- ws/features/pom.xml.orig 2012-07-21 15:47:24.971499311 +0100
++++ ws/features/pom.xml 2012-07-21 15:47:35.669296735 +0100
+@@ -15,7 +15,7 @@
+ <modules>
+ <module>org.jboss.tools.ws.feature</module>
+ <module>org.jboss.tools.ws.jaxrs.feature</module>
+- <module>org.jboss.tools.ws.test.feature</module>
++ <!--<module>org.jboss.tools.ws.test.feature</module>-->
+ </modules>
+ </project>
+
+--- ws/features/org.jboss.tools.ws.feature/feature.xml~ 2012-07-05 00:33:39.000000000 +0100
++++ ws/features/org.jboss.tools.ws.feature/feature.xml 2012-07-21 21:00:33.446844165 +0100
+@@ -18,6 +18,7 @@
+ %license
+ </license>
+
++<!--
+ <requires>
+ <import feature="org.eclipse.jst.enterprise_ui.feature" version="3.3.2" match="compatible"/>
+ <import feature="org.eclipse.jst.web_ui.feature" version="3.3.2" match="compatible"/>
+@@ -25,6 +26,7 @@
+ <import feature="org.eclipse.wst.ws_ui.feature" version="3.3.2" match="compatible"/>
+ <import feature="org.eclipse.wst.xml_ui.feature" version="3.3.2" match="compatible"/>
+ </requires>
++-->
+
+ <plugin
+ id="org.jboss.tools.ws.core"
diff --git a/eclipse-jbosstools-x86.patch b/eclipse-jbosstools-x86.patch
new file mode 100644
index 0000000..cd02565
--- /dev/null
+++ b/eclipse-jbosstools-x86.patch
@@ -0,0 +1,58 @@
+--- build/parent/pom.xml.orig 2012-07-28 16:47:44.942057161 +0100
++++ build/parent/pom.xml 2012-07-28 16:50:03.551436942 +0100
+@@ -93,6 +93,7 @@
+ <format>'v'yyyyMMdd-HHmm'-${BUILD_ALIAS}'</format>
+ <archiveSite>true</archiveSite>
+ <environments>
++<!--
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+@@ -113,16 +114,19 @@
+ <ws>win32</ws>
+ <arch>x86_64</arch>
+ </environment>
++-->
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86</arch>
+ </environment>
++<!--
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86_64</arch>
+ </environment>
++-->
+ </environments>
+ </configuration>
+ </plugin>
+@@ -142,6 +146,7 @@
+ <resolver>p2</resolver>
+ <ignoreTychoRepositories>true</ignoreTychoRepositories>
+ <environments>
++<!--
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+@@ -162,16 +167,19 @@
+ <ws>win32</ws>
+ <arch>x86_64</arch>
+ </environment>
++-->
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86</arch>
+ </environment>
++<!--
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86_64</arch>
+ </environment>
++-->
+ </environments>
+ </configuration>
+ </plugin>
diff --git a/eclipse-jbosstools-x86_64.patch b/eclipse-jbosstools-x86_64.patch
new file mode 100644
index 0000000..cada685
--- /dev/null
+++ b/eclipse-jbosstools-x86_64.patch
@@ -0,0 +1,34 @@
+--- build/parent/pom.xml.orig 2012-07-28 16:47:44.942057161 +0100
++++ build/parent/pom.xml 2012-07-28 16:55:43.205023173 +0100
+@@ -93,6 +93,7 @@
+ <format>'v'yyyyMMdd-HHmm'-${BUILD_ALIAS}'</format>
+ <archiveSite>true</archiveSite>
+ <environments>
++<!--
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+@@ -118,6 +119,7 @@
+ <ws>gtk</ws>
+ <arch>x86</arch>
+ </environment>
++-->
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+@@ -142,6 +144,7 @@
+ <resolver>p2</resolver>
+ <ignoreTychoRepositories>true</ignoreTychoRepositories>
+ <environments>
++<!--
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+@@ -167,6 +170,7 @@
+ <ws>gtk</ws>
+ <arch>x86</arch>
+ </environment>
++-->
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
diff --git a/eclipse-jbosstools.spec b/eclipse-jbosstools.spec
new file mode 100644
index 0000000..af36a1d
--- /dev/null
+++ b/eclipse-jbosstools.spec
@@ -0,0 +1,601 @@
+%global eclipse_dropins %{_datadir}/eclipse/dropins
+%global build_base build/.m2/org/jboss/tools/
+
+Name: eclipse-jbosstools
+Version: 3.3.1
+Release: 2%{?dist}
+Summary: A set of Eclipse plugins that supports JBoss and related technology
+
+Group: Development/Tools
+
+# For mult. license info, see https://community.jboss.org/thread/158037
+License: EPL and LGPLv2+ and ASL 2.0
+URL: http://www.jboss.org/tools.html
+
+# svn export http://anonsvn.jboss.org/repos/jbosstools/tags/jbosstools-3.3.1.Final/ eclipse-jbosstools-3.3.1.Final
+# cp -r eclipse-jbosstools-3.3.1.Final eclipse-jbosstools-3.3.1.Final-CLEAN
+# pushd eclipse-jbosstools-3.3.1.Final-CLEAN
+# find -name *.jar -delete && find -name *.class -delete
+# rm -r birt/ bpel/ central/ deltacloud/ documentation/ drools/ esb/ flow/ forge/ gwt/ hibernatetools/ jbpm/ jsf/ maven/ modeshape/ module_template/ openshift/ portlet/ requirements/ runtime/ runtime-soa/ seam/ struts/ tests/ xulrunner/
+# popd
+# tar -cJf eclipse-jbosstools-3.3.1.Final-CLEAN.tar.xz eclipse-jbosstools-3.3.1.Final-CLEAN/
+Source0: %{name}-%{version}.Final-CLEAN.tar.xz
+
+Source1: LICENSE-2.0.txt
+Source2: lgpl-2.1.txt
+
+# Comment out unsatisfiable dep: ant-optional
+# Comment out some external repositories (not sure if this is necessary...)
+# Change versions of some deps to match fedora packages
+Patch0: %{name}-parent-pom.patch
+Patch1: %{name}-target-platform.patch
+
+# Without one of the following patches, the following error prevents building:
+# [ERROR] Internal error: java.lang.RuntimeException: Could not determine SWT implementation fragment bundle
+Patch2: %{name}-x86_64.patch
+Patch3: %{name}-x86.patch
+
+# These patches all similarly comment out stuff that prevents building. It's
+# mainly stuff that we don't need immediately anyway (site,tests modules)
+Patch4: %{name}-common.patch
+Patch5: %{name}-usage.patch
+Patch6: %{name}-archives.patch
+Patch7: %{name}-jmx.patch
+Patch8: %{name}-as.patch
+Patch9: %{name}-jst.patch
+Patch10: %{name}-ws.patch
+Patch11: %{name}-cdi.patch
+Patch12: %{name}-freemarker.patch
+
+# This patch seems to have been included in upstream trunk already
+# http://web.archiveorange.com/archive/v/yXYbUiLHbz40Q1bDwhSS
+Patch13: %{name}-as-methodVisibility.patch
+
+# Update refs from old bundled deps in archives, to symlinked deps from Fedora
+Patch14: %{name}-archives-core-manifest.patch
+Patch15: %{name}-archives-core-buildproperties.patch
+
+# Migrate to from obselete to current version of TrueZip dependency
+Patch16: %{name}-archives-core-trueziputil.patch
+Patch17: %{name}-archives-core-modeltruezipbridge.patch
+Patch18: %{name}-archives-core-archivesbuilder.patch
+Patch19: %{name}-as-archives.webtools.patch
+
+# Add unimplemented methods from updated jbossxb dependency
+Patch20: %{name}-archives-core-ArchivesUnmarshallerImpl.patch
+
+# Update refs from old bundled deps in AS, to symlinked deps from Fedora
+Patch21: %{name}-as.dmr.patch
+Patch22: %{name}-as.core.patch
+Patch23: %{name}-as.mgmt.as71.patch
+
+BuildRequires: ant >= 1.8.3
+BuildRequires: ant-contrib >= 0.16.b3
+BuildRequires: axis >= 1.4-16
+BuildRequires: dom4j >= 1.6.1-8
+BuildRequires: eclipse-dtp >= 1.10
+BuildRequires: eclipse-emf-core >= 2.8.0
+BuildRequires: eclipse-emf-sdk >= 2.8.0
+BuildRequires: eclipse-gef >= 3.8.0
+BuildRequires: eclipse-jdt >= 4.2.0
+BuildRequires: eclipse-pde >= 4.2.0
+BuildRequires: eclipse-platform >= 4.2.0
+BuildRequires: eclipse-rcp >= 4.2.0
+BuildRequires: eclipse-rse >= 3.3.1
+BuildRequires: eclipse-swt >= 4.2.0
+BuildRequires: eclipse-wtp-common >= 3.4.0
+BuildRequires: eclipse-wtp-jeetools >= 3.4.0
+BuildRequires: eclipse-wtp-jpa >= 3.4.0
+BuildRequires: eclipse-wtp-jsf >= 3.4.0
+BuildRequires: eclipse-wtp-jst-web >= 3.4.0
+BuildRequires: eclipse-wtp-servertools >= 3.4.0
+BuildRequires: eclipse-wtp-webservices >= 3.4.0
+BuildRequires: eclipse-wtp-sourceediting >= 3.4.0
+BuildRequires: gnu-getopt >= 1.0.13
+BuildRequires: icu4j-eclipse >= 4.4.2.2
+BuildRequires: jacoco-maven-plugin
+BuildRequires: jakarta-commons-httpclient >= 3.1
+BuildRequires: java-devel
+BuildRequires: jaxen >= 1.1.3
+BuildRequires: jboss-as >= 7.1.1-3
+BuildRequires: jboss-dmr >= 1.1.1
+BuildRequires: jbossxb >= 2.0.3
+BuildRequires: jpackage-utils
+BuildRequires: maven
+BuildRequires: maven-jar-plugin
+BuildRequires: maven-install-plugin
+BuildRequires: maven-javadoc-plugin
+BuildRequires: maven-release-plugin
+BuildRequires: maven-compiler-plugin
+BuildRequires: maven-surefire-plugin
+BuildRequires: maven-resources-plugin
+BuildRequires: resteasy >= 2.3.2-7
+BuildRequires: truezip-driver-zip >= 7.5.5
+BuildRequires: truezip-file >= 7.5.5
+BuildRequires: tycho
+BuildRequires: tycho-extras
+BuildRequires: velocity >= 1.7-4
+BuildRequires: xerces-j2 >= 2.11.0-7
+
+Requires: java
+Requires: jpackage-utils
+
+Requires: %{name}-archives = %{version}-%{release}
+Requires: %{name}-as = %{version}-%{release}
+Requires: %{name}-cdi = %{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Requires: %{name}-freemarker = %{version}-%{release}
+Requires: %{name}-jmx = %{version}-%{release}
+Requires: %{name}-jst = %{version}-%{release}
+Requires: %{name}-parent = %{version}-%{release}
+Requires: %{name}-usage = %{version}-%{release}
+Requires: %{name}-ws = %{version}-%{release}
+
+%description
+JBoss Tools is an umbrella project for a set of Eclipse plugins that supports
+JBoss and related technology; there is support for Hibernate, JBoss AS, Drools,
+jBPM, JSF, (X)HTML, Seam, Maven, JBoss ESB, JBoss Portal and more...
+
+%package parent
+Summary: JBoss Tools Parent
+Requires: jpackage-utils
+
+%description parent
+Parent and target-platform POM files for %{name} package.
+
+%package common
+Summary: JBoss Tools common Eclipse tools
+
+Requires: %{name}-parent = %{version}-%{release}
+Requires: eclipse-gef
+Requires: eclipse-jdt
+Requires: eclipse-platform
+Requires: eclipse-pde
+Requires: eclipse-rcp
+Requires: eclipse-swt
+Requires: eclipse-wtp-common
+Requires: eclipse-wtp-jeetools
+Requires: eclipse-wtp-jpa
+Requires: eclipse-wtp-sourceediting
+Requires: jakarta-commons-httpclient
+Requires: java
+Requires: jpackage-utils
+Requires: xerces-j2
+
+%description common
+Common functionality on which other plugins and features from %{name} depend.
+
+%package jmx
+Summary: Eclipse tools for interacting with JMX connections
+
+Requires: %{name}-parent = %{version}-%{release}
+Requires: eclipse-platform
+Requires: eclipse-swt
+Requires: java
+Requires: jpackage-utils
+
+%description jmx
+JBoss JMX Tools allows you to setup multiple JMX connections, and provides a
+view for exploring the JMX tree and execute operations directly from within
+Eclipse.
+
+%package archives
+Summary: JBoss Archives Tools
+
+Requires: %{name}-as = %{version}-%{release}
+Requires: %{name}-jmx = %{version}-%{release}
+Requires: %{name}-parent = %{version}-%{release}
+Requires: %{name}-usage = %{version}-%{release}
+Requires: ant
+Requires: eclipse-emf-core
+Requires: eclipse-jdt
+Requires: eclipse-pde
+Requires: eclipse-platform
+Requires: eclipse-rcp
+Requires: eclipse-swt
+Requires: eclipse-wtp-common
+Requires: eclipse-wtp-servertools
+Requires: java
+Requires: jpackage-utils
+Requires: truezip-driver-file
+Requires: truezip-file
+
+%description archives
+Project Archives provides a way to define archives based on include/exclude
+filesets which then gets incrementally updated allowing for fluent
+deployment for any type of Eclipse project.
+
+%package usage
+Summary: JBoss Tools Usage Reporting
+
+Requires: %{name}-parent = %{version}-%{release}
+Requires: eclipse-rcp
+Requires: eclipse-swt
+Requires: java
+Requires: jpackage-utils
+
+%description usage
+JBoss Tools Usage reporting provides an anonymous opt-in call-back mechanism
+that can be used to see how widely used plugins are, which plugin installations
+have been done, where in the world and what versions of operating system, java
+and other information that is available.
+
+%package as
+Summary: JBossAS Tools
+
+Requires: %{name}-archives = %{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Requires: %{name}-jmx = %{version}-%{release}
+Requires: %{name}-parent = %{version}-%{release}
+Requires: %{name}-usage = %{version}-%{release}
+Requires: ant
+Requires: dom4j
+Requires: eclipse-emf-core
+Requires: eclipse-jdt
+Requires: eclipse-pde
+Requires: eclipse-platform
+Requires: eclipse-rcp
+Requires: eclipse-rse
+Requires: eclipse-swt
+Requires: eclipse-wtp-common
+Requires: eclipse-wtp-jeetools
+Requires: eclipse-wtp-servertools
+Requires: gnu-getopt
+Requires: icu4j-eclipse
+Requires: java
+Requires: jaxen
+Requires: jboss-as
+Requires: jboss-dmr
+Requires: jpackage-utils
+
+%description as
+Provides WTP server adapters for JBoss installations. These adapters are
+capable of deployment and providing classpaths for projects. Zipped or
+exploded deployments, JMX integration, and other extensions are included.
+
+%package jst
+Summary: JBoss Tools Java Standard Tools
+
+Requires: %{name}-common = %{version}-%{release}
+Requires: %{name}-parent = %{version}-%{release}
+Requires: %{name}-usage = %{version}-%{release}
+Requires: ant
+Requires: eclipse-dtp
+Requires: eclipse-gef
+Requires: eclipse-jdt
+Requires: eclipse-platform
+Requires: eclipse-rcp
+Requires: eclipse-swt
+Requires: eclipse-wtp-jeetools
+Requires: eclipse-wtp-jst-web
+Requires: eclipse-wtp-sourceediting
+Requires: java
+Requires: jpackage-utils
+Requires: velocity
+Requires: xerces-j2
+
+%description jst
+JBoss Tools Java Standard Tools provides common tools for use in JBoss Tools
+other plugins, such as Knowledge Base builder and validators for use in JSF/Web
+projects.
+
+%package ws
+Summary: JBoss WebServices Tools and JBoss JAX-RS Tools
+
+Requires: %{name}-as = %{version}-%{release}
+Requires: %{name}-common = %{version}-%{release}
+Requires: %{name}-parent = %{version}-%{release}
+Requires: %{name}-usage = %{version}-%{release}
+Requires: apache-commons-codec
+Requires: axis
+Requires: eclipse-emf-core
+Requires: eclipse-emf-xsd
+Requires: eclipse-jdt
+Requires: eclipse-platform
+Requires: eclipse-rcp
+Requires: eclipse-swt
+Requires: eclipse-wtp-common
+Requires: eclipse-wtp-jeetools
+Requires: eclipse-wtp-jsf
+Requires: eclipse-wtp-webservices
+Requires: icu4j-eclipse
+Requires: java
+Requires: jdom
+Requires: jpackage-utils
+Requires: resteasy
+Requires: wsdl4j
+
+
+%description ws
+JBoss WebServices Tools provides wizards for working with webservices
+and a webservice tester view to test out both SOAP and REST services.
+
+JBoss JAX-RS Tools provides a common navigator to browse and introspect
+your JAX-RS endpoints and provide validation for JAX-RS annotations, such
+as checking that parameters referenced by name actually also are declared.
+
+%package cdi
+Summary: JBoss CDI Tools, Apache Deltasipke Tools, Seam 3 Tools
+
+Requires: %{name}-common = %{version}-%{release}
+Requires: %{name}-jst = %{version}-%{release}
+Requires: %{name}-parent = %{version}-%{release}
+Requires: %{name}-usage = %{version}-%{release}
+Requires: ant
+Requires: eclipse-gef
+Requires: eclipse-jdt
+Requires: eclipse-platform
+Requires: eclipse-rcp
+Requires: eclipse-swt
+Requires: eclipse-wtp-common
+Requires: eclipse-wtp-jeetools
+Requires: eclipse-wtp-jsf
+Requires: eclipse-wtp-sourceediting
+Requires: java
+Requires: jpackage-utils
+Requires: xerces-j2
+
+%description cdi
+Context and Dependency Injection Tools provides support for JSR-299 also know
+as CDI. Adds wizards, code navigation, validation and quickfixes to work with
+projects that uses CDI.
+
+Apache Deltasipke Tools provides tooling for the CDI components released as
+part of Deltaspike modules.
+
+Seam 3 Tools provides tooling for the CDI components released as part of
+Seam 3 modules such as Solder and Config. Tooling covers recognizing
+these CDI components and editing the seam config xml.
+
+%package freemarker
+Summary: FreeMarker IDE
+
+Requires: %{name}-parent = %{version}-%{release}
+Requires: %{name}-usage = %{version}-%{release}
+Requires: eclipse-jdt
+Requires: eclipse-rcp
+Requires: eclipse-swt
+Requires: freemarker
+Requires: java
+Requires: jpackage-utils
+
+%description freemarker
+FreeMarkerIDE provides editor for FreeMarker templates
+
+
+%prep
+%setup -q -n %{name}-%{version}.Final-CLEAN
+
+cp %{SOURCE1} %{SOURCE2} .
+
+find -name '*.jar' -delete
+find -name '*.class' -delete
+
+# add symlinks to Fedora versions of removed jars
+pushd archives/plugins/org.jboss.ide.eclipse.archives.core/lib/
+ln -s %{_javadir}/concurrent.jar
+ln -s %{_javadir}/jboss-common-core.jar
+ln -s %{_javadir}/jboss-logging.jar
+ln -s %{_javadir}/jbossxb.jar
+ln -s %{_javadir}/truezip/truezip-driver-file.jar
+ln -s %{_javadir}/truezip/truezip-driver-zip.jar
+ln -s %{_javadir}/truezip/truezip-file.jar
+ln -s %{_javadir}/truezip/truezip-kernel.jar
+ln -s %{_javadir}/xerces-j2.jar
+popd
+pushd as/plugins/org.jboss.ide.eclipse.as.dmr/
+ln -s %{_javadir}/jboss-dmr.jar
+popd
+pushd as/plugins/org.jboss.ide.eclipse.as.core/
+ln -s %{_javadir}/dom4j.jar
+ln -s %{_javadir}/jaxen.jar
+ln -s %{_javadir}/gnu-getopt.jar
+popd
+pushd as/plugins/org.jboss.ide.eclipse.as.management.as71/
+ln -s %{_javadir}/jboss-as/jboss-as-controller-client.jar
+ln -s %{_javadir}/jboss-as/jboss-as-protocol.jar
+ln -s %{_javadir}/jboss-dmr.jar
+ln -s %{_javadir}/jboss-logging.jar
+ln -s %{_javadir}/jboss-marshalling.jar
+ln -s %{_javadir}/jboss-remoting.jar
+ln -s %{_javadir}/jboss-sasl.jar
+ln -s %{_javadir}/jboss-threads.jar
+ln -s %{_javadir}/xnio-api.jar
+ln -s %{_javadir}/xnio-nio.jar
+popd
+pushd ws/plugins/org.jboss.tools.ws.jaxrs.core/lib/
+ln -s %{_javadir}/resteasy/jaxrs-api.jar
+popd
+pushd ws/plugins/org.jboss.tools.ws.ui/lib/
+ln -s %{_javadir}/axis/axis.jar
+ln -s %{_javadir}/axis/jaxrpc.jar
+ln -s %{_javadir}/resteasy/jaxrs-api.jar
+popd
+pushd freemarker/plugins/org.jboss.ide.eclipse.freemarker/
+ln -s %{_javadir}/freemarker.jar
+popd
+
+%patch0
+%patch1
+
+%ifarch x86_64
+%patch2
+%else
+%patch3
+%endif
+
+%patch4
+%patch5
+%patch6
+%patch7
+%patch8
+%patch9
+%patch10
+%patch11
+%patch12
+%patch13
+%patch14
+%patch15
+%patch16
+%patch17
+%patch18
+%patch19
+%patch20
+%patch21
+%patch22
+%patch23
+
+
+%build
+# build the local repository for building with maven
+
+/bin/sh -x %{_eclipse_base}/buildscripts/copy-platform SDK %{_eclipse_base} \
+ wtp-jeetools wtp-webservices eclipse-wtp-common dtp-enablement wtp-jpa \
+ dtp-connectivity wtp-sourceediting org.eclipse.jst.server_ui.feature \
+ eclipse-wtp-jst-web eclipse-wtp-jsf dtp-modelbase emf emf-sdk gef xsd rse
+
+SDK=$(cd SDK >/dev/null && pwd)
+
+mkdir repo
+repodir=$(cd repo >/dev/null && pwd)
+
+%{_eclipse_base}/eclipse -debug -consolelog -nosplash -verbose \
+ -data /tmp/workspace \
+ -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \
+ -metadataRepository file:${repodir} \
+ -artifactRepository file:${repodir} \
+ -source ${SDK} -compress -publishArtifacts
+
+# Build everything from within build
+# Skipping tests because of missing dependency swtbot
+pushd build/
+for tool in parent common usage archives jmx as jst cdi ws freemarker; do
+ mvn-rpmbuild install -Plocal.site,${tool} -Dlocal.site=file://${repodir} \
+ -Dmaven.test.skip=true
+done
+popd
+
+
+%install
+install -d -m 755 %{buildroot}%{_mavenpomdir}
+install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
+%add_maven_depmap JPP-%{name}.pom
+
+pushd %{build_base}
+
+# parent POM
+pushd parent/*-SNAPSHOT/
+ install -pm 644 parent-*.pom \
+ %{buildroot}%{_mavenpomdir}/JPP-%{name}-parent.pom
+ %add_maven_depmap JPP-%{name}-parent.pom -f parent
+popd
+
+for tool in common usage archives jmx as jst cdi ws freemarker; do
+ install -d -m 755 %{buildroot}%{eclipse_dropins}/%{name}-${tool}/eclipse/features
+ install -d -m 755 %{buildroot}%{eclipse_dropins}/%{name}-${tool}/eclipse/plugins
+
+ ## POM for each tool
+ pushd ${tool}/*-SNAPSHOT
+ install -pm 644 ${tool}-*.pom \
+ %{buildroot}%{_mavenpomdir}/JPP-%{name}-${tool}.pom
+ %add_maven_depmap JPP-%{name}-${tool}.pom -f ${tool}
+ popd
+
+ ## features
+ pushd ${tool}/features
+ for feat in `echo *.feature`; do
+ pushd ${feat}/*-SNAPSHOT
+ unzip ${feat}-*-SNAPSHOT.jar -d \
+ %{buildroot}%{eclipse_dropins}/%{name}-${tool}/eclipse/features/${feat}
+ popd;
+ done;
+ popd
+
+ ##plugins
+ pushd ${tool}/plugins
+ for plug in `echo org.jboss.*`; do
+ pushd ${plug}/*-SNAPSHOT
+ install -p ${plug}-*-SNAPSHOT.jar \
+ %{buildroot}%{eclipse_dropins}/%{name}-${tool}/eclipse/plugins
+ popd;
+ done;
+ popd;
+
+done;
+
+ # org.jboss.tools.jst.web.kb is in jst/tests, but we need it
+ install -p jst/tests/org.jboss.tools.jst.web.kb/*-SNAPSHOT/*-SNAPSHOT.jar \
+ %{buildroot}%{eclipse_dropins}/%{name}-jst/eclipse/plugins
+
+popd;
+
+%files
+%{_mavenpomdir}/JPP-%{name}.pom
+%{_mavendepmapfragdir}/%{name}
+
+%files parent
+%{_mavenpomdir}/JPP-%{name}-parent.pom
+%{_mavendepmapfragdir}/%{name}-parent
+
+%files common
+%doc lgpl-2.1.txt
+%doc common/features/org.jboss.tools.common.verification.feature/epl-v10.html
+%{eclipse_dropins}/%{name}-common
+%{_mavenpomdir}/JPP-%{name}-common.pom
+%{_mavendepmapfragdir}/%{name}-common
+
+%files usage
+%doc LICENSE-2.0.txt
+%doc common/features/org.jboss.tools.common.verification.feature/epl-v10.html
+%{eclipse_dropins}/%{name}-usage
+%{_mavenpomdir}/JPP-%{name}-usage.pom
+%{_mavendepmapfragdir}/%{name}-usage
+
+%files archives
+%doc lgpl-2.1.txt
+%{eclipse_dropins}/%{name}-archives
+%{_mavenpomdir}/JPP-%{name}-archives.pom
+%{_mavendepmapfragdir}/%{name}-archives
+
+%files jmx
+%doc common/features/org.jboss.tools.common.verification.feature/epl-v10.html
+%{eclipse_dropins}/%{name}-jmx
+%{_mavenpomdir}/JPP-%{name}-jmx.pom
+%{_mavendepmapfragdir}/%{name}-jmx
+
+%files as
+%{eclipse_dropins}/%{name}-as
+%{_mavenpomdir}/JPP-%{name}-as.pom
+%{_mavendepmapfragdir}/%{name}-as
+
+%files jst
+%{eclipse_dropins}/%{name}-jst
+%{_mavenpomdir}/JPP-%{name}-jst.pom
+%{_mavendepmapfragdir}/%{name}-jst
+
+%files cdi
+%{eclipse_dropins}/%{name}-cdi
+%{_mavenpomdir}/JPP-%{name}-cdi.pom
+%{_mavendepmapfragdir}/%{name}-cdi
+
+%files ws
+%doc lgpl-2.1.txt
+%{eclipse_dropins}/%{name}-ws
+%{_mavenpomdir}/JPP-%{name}-ws.pom
+%{_mavendepmapfragdir}/%{name}-ws
+
+%files freemarker
+%doc lgpl-2.1.txt
+%{eclipse_dropins}/%{name}-freemarker
+%{_mavenpomdir}/JPP-%{name}-freemarker.pom
+%{_mavendepmapfragdir}/%{name}-freemarker
+
+
+%changelog
+* Thu Jul 26 2012 Gerard Ryan <galileo at fedoraproject.org> - 3.3.1-2
+- Fix license field and install license files.
+- Use a clean tarball to reduce srpm size.
+- Use spaces consistently; add some necessary comments.
+
+* Thu Jul 26 2012 Gerard Ryan <galileo at fedoraproject.org> - 3.3.1-1
+- Initial packaging.
diff --git a/lgpl-2.1.txt b/lgpl-2.1.txt
new file mode 100644
index 0000000..4362b49
--- /dev/null
+++ b/lgpl-2.1.txt
@@ -0,0 +1,502 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/sources b/sources
index e69de29..5c38562 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+06ddb810d8257b62221c2afa9ebfd3f0 eclipse-jbosstools-3.3.1.Final-CLEAN.tar.xz
More information about the scm-commits
mailing list