Cleanup: Delete unnecessary interface

- I don't see the added value of a separate TargetDefinitionContent
  interface, especially now that there is also a public
  implementation (since 7277dee).
Moved test utility class BuildPropertiesParserForTest

... so that it can be reused in all bundle tests
356016 377086 Use URL as fallback ID for mirrors/credentials

- When looking for credentials or mirrors of p2 repositories in the
  Maven settings.xml, use the URL as ID if there is no ID specified
  explicitly, e.g. in a target file.
- The ID is computed as URI.toString() followed by a removal of a
  trailing slash (if present).

Change-Id: I70deab0f63d662322ac3d97b26b7e88d5f258b1f
Use tycho 0.15.0 for bootstrap

undo optional dependency workaround necessary with 0.13.0

Change-Id: I6501695141d22477e3c1670043653faaa39653b8
381834 additional l10n fall-back for more OSGi-compliant eclipse-plugins

Honor default bundle localization path
OSGI-INF/l10n/bundle.properties

if bundle header Bundle-Localization not set.

Change-Id: I1f6351ac191b1852ded2ac899ff8928d57b9ff17
375715 Pick correct ID for modules with extra IUs

- The ID of extra IUs (created through a p2.inf) could be taken as
  feature ID in feature projects. This is a (conservative) change to
  handle this situation correctly.

Change-Id: Ia9c65754ef10b8be313cc945bd2e69b9e9be7299
Renamed integration test project for multi-environment p2.inf

- Hierarchical name so that alphabetical sorting groups p2.inf-related
  tests together.
- Changed groupId to start with "tycho-its-project"
- Changed artifactIds to avoid collisions with other integration test
  projects.
- Also: Omitted "install" in test execution to avoid side-effects via
  the local Maven repository.
382532 warnings logged as errors if errors present

In case of both compiler warnings and errors, we
would throw a CompilationFailureException containing
both errors and warnings which would cause warnings
to be logged with severity ERROR.
Instead, first log warnings (if any) and then in case of
errors, throw a CompilationFailureException containing
the errors only.

Change-Id: I4d0cd15c54a74d90130a785f436bacf35b75c01f
Fix test for p2 repositories with authentication

- Before this change, the server started in the test didn't actually
  check authentication. This is now fixed.
- Also: Migrated to Jetty 8.1.1

Change-Id: I9f338f6a3614e38770ad014084f131e24cc8a48b
362883 fixed 'project does not have expanded version' in some cases

Build qualifier aggregator did not properly detect attached classified
artifacts of 'this' project.

Change-Id: I0914152d6e9edf3897e3038ec2359e21b066fd06
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
cleanup: use proper packaging type constant

Change-Id: I257b7bba109d4d9cc8afb4f3bacb05642f047148
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
cleanup: made test suite and method names part of working copy directory name

This is useful when the same test project is used by multiple tests
in the same test suite. Before this change, the same working copy
directory name was used by all methods and only logs from the last
method executed were available for test failure analysis. With this
change all methods use separate working copy and all logs are present
after test execution.

Downside is deeper directory strcuture, which may cause problems on
windows.

Change-Id: I6345931edfe7c9debbf10c20c5a213cdd5ed9b1d
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
372780 Separate reactor and external artifacts in target platform

- Change the TargetPlatform instance to only contain artifacts from
  outside the reactor. This is the content that shall be re-used for the
  full/final target platform, which shall serve as input for p2
  repository aggregation.
- (Re-)Introduced an ResolutionContext object that serves as input for
  the p2 resolver and includes the dependency-only IUs during dependency
  resolution.

Change-Id: I15fba3b15800e2287cd386f3f17090c7e27d006d
Cleanup: Better method name getPublishingRepositoryFor[Artifact]Writing

... because metadata can be written to all publisher repositories
refactor: separated p2 metadata generation and persistent logic

P2GeneratorImpl.generateMetadata was both generating and persisting
reactor project p2 metadata. This made it unnecessary difficult to
manipulate generated metadata.

This refactoring
- introduces IP2Artifact value interface to encapsulate p2 metadata
  of a single artifact file on local filesystem
- changes P2GeneratorImpl.generateMetadata to return map
  classifier=>IP2Artifact
- introduces new P2GeneratorImpl.persistMetadata method to write
  metadata to specified p2content.xml and p2artifacts.xml

Change-Id: I28d82f793533d2101fcb1c9656ad167f19afcb32
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
382985 Moved BuildOutputDirectory to allow use in ReactorProject

Change-Id: I4f6e3aa582d866fcba62b19b601817bd2e755b0b
382985 Use BuildOutputDirectory type in ReactorProject

- Motivation: ReactorProject shall extend an interface to be
  introduced in the following commit.

Change-Id: Id1df169d8e5a482c742aa8a2142743605044eb70
382732 [refactor] make surefire provider pluggable

- Move provider-specific logic out of TestMojo and
  introduce plexus component TestFrameworkProvider instead
- Implement junit 3 and 4 providers as TestFrameworkProvider
  components
- Add an option to force a specific provider implementation
  by specifying providerHint mojo parameter
- this refactoring anticipates adding the junit47 provider
  and makes it possible for extenders to add their own
  provider without necessarily having to patch tycho

Change-Id: I3bf409e13b04cff85a0641258e10ba0747329b49
358987 Inject nested jars as dependencies for same project

- checked-in nested jars were not injected back into maven
  model for classpath of project itself
- we had a test project for this already but strangely
  no assertion...

Change-Id: Ib0da90775841bb996d760d8b1045fb7b23a31248
Update p2 version to Juno M4

- Previously used version doesn't seem available any more.
- Added Equinox Core SDK feature to satisfy dependency from bundle
  org.eclipse.ecf to package org.eclipse.equinox.concurrent.future.
- Removed unneded bundle references.

Change-Id: I8a3e120d9ccbd6724b2dd67eb228e25213d68036