Moved low-level p2 resolver classes to a new package

- The target definition and the dependency resolver share the same
  low-level p2 resolution classes. They form a self-contained set of
  functionality and therefore should be its own package. This also
  reduces the package tangle between o.e.t.p2.target and
  o.e.t.p2.impl.resolver.
- Note: The package o.e.t.p2.impl.resolver still needs to be renamed
  to distinguish it from the new package created with this commit
  (o.e.t.p2.resolver), e.g. to o.e.t.p2.dependencies.
Refactoring: Separate resolver data and resolution strategy

- Instead of inheriting from a data container (containing the input
  for resolution), the resolution strategies should take a data
  object as a prameter. This change does a step in this direction:
  The data object is still a member of the base class, but through a
  read-only interface (ResolutionDate) it is now clear that the data
  is never written to by the strategies.
- Also: make methods final in the AbstractResolutionStrategy base
  class where possible to improve readability.
Refactoring: Moved ignoreFilters logic into SlicerResolutionStrategy

- Moved fairly complex ignoreFilters logic out of anonymous subclass
  into SlicerResolutionStrategy. This makes the (still existing)
  anonymous subclass in TargetDefinitionResolver trivial, so that one
  now only has to understand three levels of derived classes to
  understand the code.
- Also: renamed one of the resolve methods to multiPlatformResolve in
  order to not have overloading and overriding at the same time.
Tycho ITs dev mode support, i.e. running from with m2e workspace

* split WorkspaceDependencyResolver in two classes,
  DevWorkspaceResolver and WorkspaceP2RuntimeLocator.

* added support for osgi.dev to sisu-equinox-launching

* changed TestMojo to resolve junit runtime from dev workspace

* changed AbstractTychoIntegrationTest to run Verifier without
  forking maven in separate jvm and pass required parameters to
  enable m2e and tycho workspace dependency resolution.

Change-Id: If534927f26b4f19e0b9e54752b396eaaccfc8e57
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
362883 write baseline/build classfile disassembly for easy comparison

Change-Id: I1d0ecf6eca7d292d3a2d4a4d0310e3ef53eb2a5e
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
log OSGi compiler effective BREE, source and target

Change-Id: I4c4359ab1f2a8e9998619e1216cdbc3036470a2f
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
386187 update tycho to use released Juno dependencies

Change-Id: I7aeef14d9550c2443f1d2edb5167739e83accca4
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
fixed can't run tycho in dev mode, likely due to new equinox

Change-Id: I57f866f5970bb75db202113875e23b98b05605ca
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
386210 fixed compile failure due to project configuration crosstalk

JDTCompiler was retaining state between invocation, which resulted in
compilation error due to wrong compiler options in some multi-module
reactor builds. The fix is to keep all compiler configuration in
stack local variables.

Change-Id: I2780f6dbe2646815e2a17cd31cd91f69361c2604
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
386278 enforce BREE and compiler target compatibility

Change-Id: I67ccf2b3b5f19f3eebf5a09ed36779933a0769ed
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
fixed OsgiCompilerTest test failure

Change-Id: I5701b9db4c689a496a4bf3b1fc21784496ba6eb4
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
386278 added support for java target version aliases

Change-Id: I6ed8b5523cacd0104f818dad449a55c19c74452e
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
386490 detect reactor with mixed tycho versions and fail-fast

The maven build extension tycho-maven-plugin is merged into
the maven core classloader at runtime.
AFAIK the maven core classloader supports only one version per artifact.
Dependencies from tycho plugins to artifacts in
tycho-maven-plugin such as tycho-core are all remapped
to the one single version provided by the maven core classloader.
This can lead to various binary mismatch errors at runtime if
several tycho versions are used.
This means we cannot support several versions of tycho plugins
in the same reactor.
Detect this situation as early as possible and fail with a clear error message.

Change-Id: Id6f9f38dd5d5a7871443c0008c82fd31d996ce77
git add -f tycho-artifactcomparator jdt settings

Change-Id: I142100b933925d0a0d6196b67fa02f6219eeb319
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
log more details about mininal and effective bree

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
log baseline/build disassembly of classes from nested jars

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
[cleanup] make checked in settings files consistent

- Use same jdt.core.prefs in tycho-artifactcomparator as other
  modules
- Use jdt.ui.prefs without date
- Added missing .gitignore in tycho-artifactcomparator
[cleanup] fix line endings
384494 Extract interface for more flexible EE handling during resolution

- Introduced the interface ExecutionEnvironmentResolutionHints that
  contains all the information necessary to support execution
  environment specific resolution. The interface is more general than
  the previously existing flat list of JRE IUs, in order to allow fixing
  bug 384494 and adding support for custom execution environment
  profiles (bug 385930).
- This change does not include any functional changes yet - the exiting
  JREInstallableUnits implements the interface in a way to get exactly
  the same result as before.

Bug: 384494
Change-Id: I3a4769ef129e6cfc79076fc703911c4788bd2a67
384494 Expose EE handling interface to resolver tests

- Drop use of the P2ResolverFactory in the P2ResolverTestBase based
  tests so that the ExecutionEnvironmentResolutionHints instance to be
  used in the TargetPlatformBuilderImpl may be set directly (see next
  commit).

Change-Id: I78737510f7a50feb1c7e6d7edbe640fa5ec95c69