429809 Use commons-compress to create .tar.gz product archives

Use commons-compress to create the tar.gz product archives. This enables
creating symlink archive entries for symlinks instead of inlining them
(see root cause http://jira.codehaus.org/browse/PLXCOMP-117)

- Read PosixFilePermissions and convert them to octal
(chmod style) file mode so they are preserved in the tar archive.
- Detect symlinks and create a symlink archive entry if the link
target resolves below the archive root.
- Preserve lastModified timestamp of archive entries.
- Preserve user name / group name of file owner
- Use GNU extensions for tar entries with path length > 100 chars.
- Fallback to old implementation (based plexus-archiver) if java.nio
not present (i.e. for JDK version <= 6)
- Add "emergency off" switch -Dtycho.tar=plexus in case we
  want to force the use of the old tar archiver

Bug: 429809
Change-Id: Ic91eb1f895f6f9d0a1cc09f885fce291c51403c2
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
433971 [product icon] add support for 256x256 BMP

honor new bmp attribute winExtraLargeHigh for 256x256 BMP files 
used for windows icons in product files.

Bug: 433971 
Change-Id: Ia21f624ccf2d67027bc0bde3138126595d4c5f65
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
430950 Macosx PowerPC launcher plugin cannot be resolved

...when enabling git version plugin

-Add PPC as platform
-Add PPC to the existing x86 exception for macosx when looking for the
launcher plugin

Change-Id: I19b20166122c40a8970ccfb3ac60a6a37c0430ac
Signed-off-by: pieter-jan.pintens@inventivegroup.com
429809 symlink target computed always relative to archive root

the relative symbolic link target was always computed
relative to the archive root. This leads to unresolvable
link target in case the symbolic link is not located in 
the archive root.
Instead, compute it relative to the symbolic link
parent directory.

Also, add a test for the case where the symbolic link
points into the archive but link target path is absolute and must be
converted to a relative path.

Bug: 429809
Change-Id: I88442305a62934a90bc8570beef96fbb63c79a88
Signed-off-by: Tobias Heide <tucks@gmx.de>
Also-by: Jan Sievers <jan.sievers@sap.com>
433522 Identify fragments by the right capability

- Both bundles and fragments provide capabilities in the "osgi.bundle"
  namespace with the bundle symbolic name as name. The provided
  capability "osgi.fragment" actually has the bsn of the host as name.
  Therefore checking the latter capability in isBundleOrFragmentWithId
  is wrong.
- This bug is only rarely visible because the provided capabilities are
  usually sorted, and the "osgi.bundle" capability is earlier in the
  list than the "osgi.fragment" capability . Only when there is an
  ICapabilityAdvice, the provided capabilities are in hash order (see
  AbstractPublisherAction.processCapabilityAdvice) and the wrong
  capability was inspected.

Bug: 433522
Change-Id: If83d6c9997da5c72308b1e745c94c7a76ef3ae84
422857 Only use PlatformAdmin in case of resolution errors in test RT

- Only try to use the PlatformAdmin for diagnosic information in case
  the test bundle had resolution problems.
- Also: Ignore exceptions which happen while computing the error
  diagnostics.

Bug: 422857
Bug: 433209
Change-Id: I7b75bf45271219aabcef0082d3fe10dd2ba2d4e7
Signed-off-by: Mickael Istria <mistria@redhat.com>
Also-by: Tobias Oberlies <tobias.oberlies@sap.com>
430986 Use Luna M7 version of JDT compiler

This is intended to get early feedback on the Java8
capable compiler used with Tycho.
org.eclipse.jdt.compiler.apt binaries are not available
from a maven repo so we still use the Kepler version,
so annotation processing might not work correctly.
Tycho integration test
org.eclipse.tycho.test.compiler.AnnotationProcessorTest
succeeds though.

We have to upload and switch to the final Luna versions before 
we release.

Bug: 430986
Change-Id: Iae3ad0129d6e529b6da3b9a1bcf625b88b8a2b5c
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
Revert "430986 Use Luna M7 version of JDT compiler"

This reverts commit 928ca6b1ba9ead7e20d155f51ab0ccb3aa461f7f.

Change-Id: If11a1af8bfd4a40a0af16b8621ca60411e98d186
435050 pin wagon version to 2.4

... as advised in https://issues.sonatype.org/browse/OSSRH-9873
We are pulling in older wagon versions (1.0-beta-6) transitively via
maven-compat and maven-bundle-plugin.
wagon 2.4 is the version that comes with maven 3.0.5.

Bug: 435050
Change-Id: I01fae11636250b5d5fe0436ad3e71fc473786154
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
430986 Use Luna M7 version of JDT compiler - take 2

This is intended to get early feedback on the Java8
capable compiler used with Tycho.
org.eclipse.jdt.compiler.apt binaries are not available
from a maven repo so we still use the Kepler version,
so annotation processing might not work correctly.
Tycho integration test
org.eclipse.tycho.test.compiler.AnnotationProcessorTest
succeeds though.

We have to upload and switch to the final Luna versions before
we release.

Bug: 430986
Change-Id: Iae34d012ad6e569b6da399a1bcf425b8808a2b5c
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
412416 Don't re-compute target platform in test mojo

- Since commit cb1a0a2, the special preparation for optional
  dependencies is no longer done in computeTargetPlatform (but instead
  in resolveDependencies). Therefore calling computeTargetPlatform is
  no longer necessary.
- Also: Fix name of computeTargetPlaform - since commit dd1e6a7 it
  only aims to compute the preliminary target platform. When called in
  the middle of the build, it would have returned a mixture of
  preliminary/final metadata. With this change, we are certain to use
  the final target platform for resolving the test runtime.

Bug: 412416
Change-Id: I30ee61cc67527af79b360cd20bfe1d42d26e3fce
Signed-off-by: Tobias Oberlies <tobias.oberlies@sap.com>
430986 Use Luna M7 version of JDT and APT binaries 

use SNAPSHOT versions as deployed by job 
http://ci.tesla.io:8080/view/Tycho/job/deploy-jdt-snapshot/

Bug: 430986
Change-Id: I21811f0a1a4839396bfbb6a620f698659999e440
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
434977 [refactor] Use Java5 mojo annotations

Use java annotations for mojos, their parameters and 
plexus components instead
of javadoc annotations. This enables extending
the mojos.
Also, replace deprecated syntax
@parameter expression="${property}"
by recommended newer syntax
@Parameter(property="property")
to get rid of build warnings.

Bug: 434977
Change-Id: Id66f9f2737deba8cc2c468e539513050fbf74c57
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
430986 Use Luna RC1 versions of JDT and APT

Bug: 430986
Change-Id: I73a2276abbe7688569dee163ba8542cdd892d51a
Signed-off-by: Jan Sievers <jan.sievers@sap.com>
[cleanup] Don't cache references which are now cheap to obtain

- It is no longer necessary to cache the results of
  getOriginalReactorProjectMap and getOriginalMavenArtifactMap
  because these methods became cheap with commit 91da536.

Bug: 412416
[refactoring] Make DefaultArtifactKey usable in the facade

- Remove reference from DefaultArtifactKey to tycho-core class
  OsgiManifest, so that it can be moved to one of the facade bundles and
  so be used from both the Maven and OSGi classloader.

Bug: 352081
Move DefaultArtifactKey to facade

... so that it can be used from both the Maven and OSGi class loader
side.

Bug: 352081
[cleanup] Remove unnecessary use of ClassifiedLocation

- Remove parameter in PomDependencyCollectorImpl method which can be
  deduced from another parameter.
Move classes shared between target and dep. resolver to util.resolution

- "Resolver" sounds like the union of target platform computation and
  dependency resolution, and not the intersection of the two functions.
  So to clarify that the package contains the shared classes, use the
  name "org.eclipse.tycho.p2.util.resolution".

Bug: 364134
Moved dependency resolver to package "p2.resolver"

- Completed the renaming of the resolver-related packages by moving the
  dependency resolver from "p2.impl.resolver" to "p2.resolver".

Bug: 364134