404217 support pom <plugin> element in tycho-versions-plugin

Change-Id: I2588bff01577bcee47ce03d59738c8093ecc1f78
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
404514 dependencies/dependencyManagement version update in pom profiles

Change-Id: I6d35d6bcd4a69fd93a1d5bd6cee2a7cefbd5c5f2
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
404515 manipulate pom properties during set-version

Change-Id: I845eda7d15f8ca6d1acd05eb864333689f97c0a3
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
404515 fixed new set-mojo -Dproperties parameter

Change-Id: I3b8fff7225ca61c0f745a5009e75d02a79c8312f
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
404515 fixed new set-mojo -Dproperties parameter

/me sucks

Change-Id: Iecc342f902069bada4e492bf0833e018e2e8be5f
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
380438 Fail fast if there are partial IUs

- Partial IUs lead to surprising results when used with a planner (e.g.
  for target file resolution) so instead of potentially failing there,
  the build should fail with the root cause and the URL of the
  repository that contains these IUs.

Bug: 380438
Change-Id: I3156051c66604dff31311c77b727b7060685d250
383192 use equinox StateObjectFactory to validate OSGi MANIFESTs

StateObjectFactoryImpl provides more strict validation
of OSGi manifest headers on semantical level for bundles being built with clear error messages.

Although this introduces some parsing overhead,
I think it is worth safeguarding the build
with fail-fast behaviour from invalid MANIFEST files which otherwise lead to late surprises and potentially cryptic p2 error messages.

Change-Id: I311dfd6eaa1cb7de47833391731f560280b0ab11
404595 allow -Dtycho.debug.resolver=true

for partial builds or small reactors, it's tedious
to lookup the artifactId for which to switch on
resolver debug mode.
Keep the current behaviour, but also allow -Dtycho.debug.resolver=true for convenience.

Bug: 404595
Change-Id: Iae633739e00cb86a7259fb0f4aa6e4d7267f755c
378021 allow OS-specific installation root folders

Allow to configure OS-specific installation root
folders in tycho-p2-director-plugin with new product
attribute "rootFolders".
Old behaviour using attribute "rootFolder" preserved
for backwards compatibility.
OS-specific "rootFolders" take precendence over
default "rootFolder" if both present.

Example configuration:

<plugin>
	<groupId>org.eclipse.tycho</groupId>
	<artifactId>tycho-p2-director-plugin</artifactId>
	<version>${tycho-version}</version>
	<configuration>
		<products>
			<product>
			  <id>example.product.id</id>
			  <rootFolder>defaultFolder</rootFolder>
			  <rootFolders>
				<macosx>test.app</macosx>
			  </rootFolders>
			</product>
		</products>
	</configuration>
</plugin>

Bug: 378021
Change-Id: I47bf76c1b4a45050e2324b6d30ea8b034382ba91
403950 [refactor] extract license feature handling into component

Extract a plexus helper component for license feature
handling to allow reuse in SourceFeatureMojo.

Bug: 403950
Change-Id: I67044eae01b8c22aa765c9d9fa6170fd09dd9d5d
[cleanup] Use non-deprecated methods & classes from JUnit & Hamcrest

- Follow move of methods from JUnitMatchers to CoreMatchers.
- Use non-internal TypeSafeMatcher base class.
- Use CoreMatchers' endsWith matcher instead of our own implementation.
- Also: Also use JUnit 4.11 in the Maven class loader side. (We are
  already using 4.11 on the OSGi side.)

Change-Id: I42f7077a25c74a0e119fa855cbcd6ec5a3af33ba
404959 don't enforce OSGi version for non-OSGi projects

Change-Id: If7b104be3765cb0a32d7d3889893667fcbce3f91
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
405440 Make profile properties in dependency resolution configurable

- Added a target-platform-configuration/dependency-resolution/
  profileProperties configuration parameter that takes a list of
  key=value pairs. These properties will be set during dependency
  resolution. They may for example be used to activate/deactivate
  filters on dependencies during dependency resolution.

Bug: 405440
Change-Id: Icb6ac11c1362eb1bc66d924f52d4345c8acdd5ab
407172 add additionalFileSets param to tycho-source-plugin

New plugin configuration parameter "additionalFileSets"
can be used if src.includes is not flexible enough,
e.g. if the same file path should be included both
in binary and source bundle but with differing content.

Example plugin configuration:

<plugin>
 <groupId>org.eclipse.tycho</groupId>
 <artifactId>tycho-source-plugin</artifactId>
 <version>${tycho-version}</version>
 <configuration>
  <additionalFileSets>
   <fileSet>
    <directory>${project.basedir}/sourceIncludes/</directory>
    <includes>
     <include>**/*</include>
    </includes>
   </fileSet>     
  </additionalFileSets>
 </configuration>
 <executions>
  <execution>
   <id>plugin-source</id>
   <goals>
    <goal>plugin-source</goal>
   </goals>
  </execution>
 </executions>
</plugin>

Bug: 407172
Change-Id: I374808343b66cc54547c224269e10e1b525f1ea0
406056 avoid direct dependencies on aether and sisu-inject-plexus

- sisu-inject-plexus which comes with maven 3.0.x will change
  groupId/artifactId/package namespace with maven 3.1.x. Remove unneeded 
  direct dependencies on it and replace with provided-scope
  dependency on plexus-container-default instead
- Likewise, aether will change groupId/artifactId/package namespace with 
  maven 3.1.x so we remove unneeded direct dependencies on it
  and use the maven-model API instead
- this change is a first step towards making tycho 
  work with upcoming maven 3.1.x (while keeping compatible with 
  maven 3.0.x)
  
Bug: 406056
Change-Id: I69849bd3425203ea6950fe2b1165dffd4f079207
407676 add filter parameter to AssembleRepositoryMojo

Allow to set additional p2 filter properties 
during repository aggregation.

Example configuration snippet:

<plugin>
	<groupId>org.eclipse.tycho</groupId>
	<artifactId>tycho-p2-repository-plugin</artifactId>
	<version>${tycho-version}</version>
	<configuration>
	  <profileProperties>
		<macosx-bundled>true</macosx-bundled>
	  </profileProperties>
	</configuration>
</plugin>

Bug: 407676
Change-Id: Ia75c024dc68db4fc9e21a0938e98b314c6f7fcc2
406056 Revert "406056 avoid direct dependencies on aether and sisu-inject-plexus"

This reverts commit b10fb9575e68d56b1af25d169271efbdda1ea011.
Apparently this change broke tycho-extras unit tests.
Need to investigate later.

Bug: 406056
Change-Id: I9c5927e74b3c330e1ece6af8e72876e9ca332772
408168 allow configuring indentation for feature.xml serialization

Bug: 408168
Change-Id: Id11808f39ae1b49cca75ee9cf643fc3103fb0ef4
407972 Update included p2 version to Kepler RC1

- To consume new features from p2 (nested category.xml - bug 406902,
  product IU marker properties) and bug fixes (Mac icons - bug 406942)
- Updated to include fix for p2 bug 408691
- Adapted tests that assert on old product IU marker property ("lineUp")

Bug: 407972
Change-Id: Iffbc05eecf077d900c56e77cbcc131ca9ede61fd
Release Tycho 0.18.0

Change-Id: I04e03b0d6aebce8e1b90341aefa10451449a221d