new version 1.5.0-SNAPSHOT

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
410263 fixed resolve parent.file is null in some cases

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
introduced AbstractRunnable convenience ICallable impl

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
introduced @RequireMavenExecutionContext test annotation

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
minor MavenBuilder cleanup

Use specific MavenImpl type to be able to access methods not
exposed via public interface.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
minor MavenMarkerManager cleanup

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
perf: use repository session cache during project import

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
perf: use repository session cache during jdt app launch

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
trivial NPE guard in M2EUtils

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Reworked ParentGatherer and related pom.xml manipulations

Introduced ParentHierarchyEntry that encapsulates MavenProject and
corresponding IMavenProjectFacade and reworked all clients of
ParentGatherer to use ParentHierarchyEntry instead of brittle
mapping between MavenProject and IMavenProjectFacade instances.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Suspend execution context during JobHelpers#flushProcessingQueues

JobHelpers#flushProcessingQueues was bypassing normal background
jobs schedulling in some cases, which masked problems with Maven
execution context use in background processing queues.

To prevent test execution context from "leaking" into background
processing queue flushing code, suspend/resume the context when
flushing test queues.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
cleanup compiler warnings in JobHelpers

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
fixed wrong maven execution context use in MavenProjectManager#execute

Reworked MavenProjectManager#execute to execute facade.getMavenProject
inside expected maven execution context.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Fixed missing error marker when builder can't read pom.xml

Also reworked MavenBuilder to reconsile code paths used during
build() and clean() methods.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Do not retain MavenProject instances forever

Before this change, MavenProject instances were eagerly
loaded for each workspace Maven project are were retained for
as long as the projects were opened.

With this change, MavenProject instances are loaded on as needed
basis and discarded when they are not needed any more.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Reintroduced small MavenProject instances cache

MavenProject instances cache size is hardcoded to 5 and it is
meant to improve incremental build performance. From limited
and not very scientific testing, trivial m2e-maven-runtime
incremental build takes ~130ms without the cache and <30ms with
the cache.

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
411621 fixed compatibility with mavenarchiver configurator

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
cleanup: removed useless empty class

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
412436 use reflection to access Equinox file locker

Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
414842 use reflection to access Equinox dev classpath

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