375160 Add name and vendor attributes to source bundle manifest

When a source bundle is generated, the bundle's name and vendor
attributes should be passed from the original bundle.
Bundle-Name and Bundle-Vendor values of the original bundle are
i18n-resolved and resolved values (with " Source" appended for
Bundle-Name) are used to generate OSGI-INF/l10n/bundle-src.properties
for the source bundle.

To allow overriding generation, if OSGI-INF/l10n/bundle-src.properties
is included in src.includes, this file will not be generated.

Default value for Bundle-Name (if missing) is Bundle-SymbolicName.
Default value for Bundle-Vendor (if missing) is "unknown".
Warnings are logged in both cases.

Change-Id: I7982d0578ca9d5ebe61bea6adcd78d35683e0d6f
371539 make deprecation of eclipse-application obvious

Change-Id: Ib341a0d4dade198875005e45c57e0fa25d855f86
371539 Polish eclipse-application deprecation warning text
380387 Fix ClassCastException

Change-Id: I87f9a36106b874f0758020b99feff2218903b41b
373776 Warn if selection on Content tab is ignored from target file

- Eclipse supports de-selecting individual bundles from a resolved
  target file (on the "Content" tab of the Target Definition editor,
  resulting in a <includeBundles> tag), but Tycho doesn't. Now, we at
  least issue a warning about this.

Change-Id: I9c7853e3a03f21758b94814cbce7d5acd7cbc31a
Move confusing warning to debug level

Every feature build will produce a warning

[WARNING] [...] example-feature-2\target\site does not exist or is
not a directory

this is something the user cannot understand nor fix.

Change-Id: I4bcb14f88fccac662ac704a409a70a51ca3e1a04
Move lengthy director args log to debug

Change-Id: Id4c0e86f13648fdbc638ed26eea88ad0966c60e5
366967 Validate module baseDirs are unique

While it seems that maven core tolerates this,
we don't support mutliple reactor modules in the
same baseDir.
This would lead to irreproducible and unexpected
results with mvn clean.
Also, we use the module baseDir in several places as
unique key.
Detect this situation early and fail the build.

Change-Id: I9747551815731626621fe2c9eac6b6a3a2bc98cc
366967 Fix expected error log text

Change-Id: I5937a8f1ca936af1f1b848f7a10c7be4e2dd3a52
373806 Only call target file resolution once per module

- This was probably the reason the target file cache (d5f6b94) could
  lead to such vast performance improvements: The target definition
  resolution was called once for each <location> in the target file...

Change-Id: Idad6a491f7ea50396a5c2c444ffe987e131c0192
[cleanup] Fix line ending
380027 fixed no local canonical artifact in some cases

Canonical artifact was not saved locally when
includePackedArtifacts=true and remote repository only contains packed
artifact.

Change-Id: I3c3a988e66ba3f794f381c1d79b35888cde6bb6b
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
377357 fall back to canonical artifact if packed download fails

When resolving dependencies from remote repositories, try packed artifact
if available but fall back to download of canonical artifact if it is
available and packed artifact download fails for whatever reason.

Although the fix will handle any corrupted/failed packed artifact
download, it also orks around p2 bug 361628 [1] which fails to
unpack some Eclipse 3.7 packed artifacts when running under Java 7.

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=361628

Change-Id: I34487d88b6fa8db2e4037376bb0d79c423f121a8
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
version 0.16.0-SNAPSHOT

Change-Id: I5737ecbde63124f6c52e3ba2d6b67ae555c74219
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
380904 380903 380898: normalize canonical artifact descriptor

Change-Id: Iba7dd92318cb5afe1cf8a7cf90b969b13558e36c
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
use maven plugin-testing 2.0

Maven plugin testing includes new feature MPLUGINTESTING-23

<quote>
Introduced new AbstractMojoTestCase.lookupConfiguredMojo. which returns
fully configured Mojo instance. Unlike other lookupMojo methods,
lookupConfiguredMojo uses maven plugin parameter default values, so test
can use much smaller and easier to maintain pom.xml files.
</quote>

Change-Id: I8a3e2f0ff8b8e3d2363eb98919860558f6d6925c
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
362883 make build timestamp generation logic customizable

Introduced BuildTimestampProvider component interface that allows
custom build timestamp generation logic. The defaut behaviour remains
unchanged, i.e. the timestamp derived from the build start time is
used for all reactor projects. See BuildQualifierMojo javadoc for
info how to enable custom timestamp generation logic.

Change-Id: I7bc5fcfcb6262e00dc9c24835060ceebd825d12c
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
380934 do not 'fixSWT' for swt fragment projects

Change-Id: I2990ff68acfe14e104480ba85ce30c2138d74e45
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
356016 Distinguish between p2 and Maven mirrors

- With the support for Maven mirror configuration to coming up, we
  need to make sure this is not confused with p2 mirrors (which may
  be configured in p2 artifact repositories).
- Also: More type-safety while setting up the remote agent.

Change-Id: I13b75a720c08aacb9e5a5cdd30eed48ec1875957
362883 build version qualifier aggregation

For features and other aggregate project types, calculate build
version qualifier as the latest timestamp of the project itself
and timestamps of any immediately included bundles and features.
This results in the same version qualifier used if the same source
tree with the same dependencies is rebuilt multiple times.

Change-Id: I5b676a2c7676799575d263ec78424126c2e34bf1
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>