360427 Add support for annotation processors

- update plexus-compiler-api and plexus-comiler-manager
  to version 1.8.1
- Add support for annotationProcessor compiler configuration
- Add integration test
- add jdt.compiler.apt to instructions for uploading jars
  to  maven central

Change-Id: I598b8867677c89b90f9f0ecefdc589825126e4c6
Improvements in test helper classes

- StubServiceRegistration now allows to set the instance to be registered
  as service either in the constructor or later in the test.

Change-Id: Iff8ebc648620217d53edf1fbcf9af16ac15d698d
372196 maven.test.ignore.failure should only ignore test failures

Infrastructure errors while setting up
surefire (before starting any test)
should always fail the build.

Change-Id: Ic3da8f5e950a7b59ab678dd54ab5f3e99adee3a3
Fix content.xml of checked-in test p2 repo

Fix dependencies of feature IU org.eclipse.executable
to reflect what is actually available in the
repository.

Change-Id: Ic3da3f5e950a7b49ab678dd54ab7f3e99adee3a3
347416 New parameter 'finalName' for the repo archive file name

- Add the parameter finalName to the Mojo (defaults to
  ${project.build.finalName} )
- Use finalName as file name for the repository archive
- adapt Tycho491PublishFeaturesAndCategoriesTest
- Added test case RepositoryFinalNameTest with a custom
  finalName and asserts that check for the zip file
  being created having that name

Change-Id: Ia50c4bf1bbeeee51cc863b74f549acd0791bd9e4
375529 correctly handle output dirs of nested jars

creation of PDE dev.properties for test execution
did not construct output dirs of nested jars correctly.
Use BuildOutputJar which already provides
output dir information. Thus make sure  that logic for
output dir creation is only in one place.

Change-Id: Ic3da3f5e950a7b29fb678dd54ad7f3e99adee3a3
376981 Created dedicated agent for remote p2 repositories

- Added a new IProvisioningAgent impementation dedicated to loading
  remote p2 repositories in Tycho. Moved corresponding implementation
  classes to the same package.
- Re-implemented test for offline mode and cache, which tests
  directly via the p2 agent interfaces. The existing tests for
  the offline mode, P2ResolverLocalMetadataCacheTest, shall be
  deleted eventually.

Change-Id: I90b905120e3f4c401f6aa930d926cdadda4ba2f8
376981 Removed unneeded cases in p2 agent cache

- Dropped possibility for different agents for different
  offline/localMavenRepository settings, because these settings are
  always the same within one Maven session/lifetime of the OSGi
  runtime.

Change-Id: Id1c0e076d52e18815a2e8149f140e39b2fe9572d
376981 Hold remote agent instance in a service

- Hold agent for remote repositories in a new service, the
  RemoteAgentManager, instead of a static variable. With this change,
  the test-only "purgeAgents" method is no longer needed.

Change-Id: I06f4d8f66d56dafdfaf3e853d18fdd58dc0fe3a0
376981 Handle disableMirrors parameter in RemoteAgent

- Handle disableMirrors parameter at the right location: in the agent
  dedicated to loading remote repositories. As a side-effect,
  composite repositories no longer need to be treated specially,
  because they load their children via the same agent, which
  intercepts the load and hence clears the mirrors on all leaves.
- Unlike offline, the disableMirrors parameter may vary within a
  reactor. Therefore there may be two RemoteAgent instances for a
  correct behaviour according to the diableMirrors parameter. Still,
  a warning is issued in this case because this may lead to repeated
  loading of the repositories from remote. The recommendation is to
  have a consistent setting througout the reactor.
- Re-implemented test for disabling mirrors. It covers the same cases
  as the test TargetPlatformDisableP2MirrorsTest.

Change-Id: I0a67ffaa24e2a2a38a6b506f45d299790fd9c830
376981 Don't cache p2 local repos in remote agent

- The p2 views on the local Maven repository shall not be loaded
  through the remote agent, because they don't need the special
  treatment of remote repositories. This means that the loaded
  repositories also can't be cached in the agent.
- Temporarily cache the repo instances in the P2ResolverFactoryImpl.
  The proper solution, loading them from a new p2 agent for local
  repositories via an URN key, needs to wait until we can consume the
  p2 fix in M7 I did for this (bug 347319).

Change-Id: I206e50648c80960f99ca4b963052f81de5ed0d2c
376981 Dropped redundant p2 repository cache

- Dropped redundant caching of loaded p2 repositories. The
  repository managers for metadata and artifacts, which sub-class
  AbstractRepositoryManager, already keep soft references to all
  loaded instances; the additional cache in P2RepositoryCacheImpl is
  not needed.
- Deleted TargetPlatformDisableP2MirrorsTest which used
  implementation details no longer available. The exact same cases
  are tested in RemoteAgentDisableP2MirrorsTest (through the right
  interface).

Change-Id: I8a67ffaa24e2a2a38a6b506f45d299790fd9c837
375529 Remove unused dev.properties generation for IDE usecase

dev.properties generation is only used for tycho
test execution for now.
Build ouput folders in dev.properties were wrong
(see previous commit) and are fixed now
so they are consistent for the tycho usecase.
The IDE usecase where PDE build ouput folders
are required is unused AFAICT, so remove unused method
and interface.

Change-Id: Ic7da3f5e950b7b49ab678dd54ab7d3e99adee3a3
374794 correctly package dir classpath entries

Fix handling of dir classpath entries:

- use separate output folder target/<ENTRY_WITHOUT_SLASH>-classes
- PackagePluginMojo will now only create nested jars for jar classpath
  entries and add dir classpath entries with the correct prefix
  to the main bundle jar
- add IT which builds sample project with  ".", nested jar, dir/ and
  resource dir and assert correct packaging

Change-Id: I7bd5fcfcb6362e00dc9c24835070ceebc825d12c
[cleanup] Some comments in LocalRepositoryP2IndicesImpl

- Also: Added a test constructor

Change-Id: I85811ccf56ec84d71b85ae4a0d357a3516485654
Fix P2DependencyGeneratorImplTest

test was relying on undefined IU
order which may be different on
different OS/hash set impl.

Change-Id: If99b55652a3f318b3a9c0ddc7e35492c7f7a2e91
cleanup: removed remnants of tycho/maven repository support

Historical reference https://issues.sonatype.org/browse/TYCHO-335

Change-Id: I701dfc451a67478cf7153228cf1b67c715a32314
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
cleanup: removed old/unused pack200 and signing code and tests

Change-Id: Iab504601fc42c5fd0222683ad96a2ed3191ee2a1
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
373759 compiler should honor project.build.sourceEncoding

Same as maven-compiler-plugin[1], tycho-compiler-plugin
now supports ${project.build.sourceEncoding} for
configuring the java source file encoding.
Legacy ${maven.compiler.encoding} is kept but
deprecated and @readonly, so invisible for maven
site documentation.
${project.build.sourceEncoding} has precedence
if both are present.

[1]
https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#encoding

Change-Id: Iad86c1b10761658c075562d509b392081323475f
349877 Update to p2 version with Mac publisher fixes

- Assemble bundles from I-build of p2 which include the fix for bug
  352457 "Unbranded Mac OS X Product cannot be installed on case
  sensitive file system".
- This p2 version also includes the fix for bug 316028
  ("EquinoxExecutableAction should create for macos a symlink to the
  executable"), but due to PLXCOMP-117, MacOSX archives won't contain
  a symlink but a copy of the eclipse executable in the root.

Change-Id: Ia56d3df0dc74b31399c08d671dde0e7d12492f7b