Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Changed DefaultToolingImplementationLoader to prefer ModelBuilder over the old interfaces. Restructured the ConsumerConnection implementations.

    • -2
    • +5
    ./DefaultToolingImplementationLoader.java
  1. … 11 more files in changeset.
Pushed the mapping from model type -> protocol type and converting the resulting model right down to just above the provider.

    • -3
    • +7
    ./DefaultToolingImplementationLoader.java
  1. … 15 more files in changeset.
Introduced ProviderMetaDataRegistry as a factory for VersionDetails for a given provider version. Replaced a bunch of specific methods on VersionDetails with isModelSupported().

    • -3
    • +6
    ./DefaultToolingImplementationLoader.java
  1. … 14 more files in changeset.
Fix for tooling API + really old provider versions + ibm jvm 5

    • -1
    • +6
    ./DefaultToolingImplementationLoader.java
Pushed ConsumerConnectionParameters up to ToolingImplementationLoader.create().

    • -2
    • +3
    ./CachingToolingImplementationLoader.java
    • -2
    • +1
    ./DefaultToolingImplementationLoader.java
    • -3
    • +4
    ./SynchronizedToolingImplementationLoader.java
  1. … 5 more files in changeset.
Added ConfigurableConnection, to allow a provider connection to receive some configuration. Changed the consumer to prefer this over configureLogging(boolean).

Currently, configuration provided is the consumer version and whether verbose logging should be enabled.

    • -1
    • +3
    ./DefaultToolingImplementationLoader.java
  1. … 14 more files in changeset.
Merged ConsumerConnection.getModel() and executeBuild() into a single run() method.

    • -6
    • +6
    ./DefaultToolingImplementationLoader.java
  1. … 15 more files in changeset.
- Introduced BuildActionRunner to the tooling API protocol. Can be implemented by a provider connection to mix in capability to run a build and return a result. - Use this interface in the consumer, if the connection implements it, otherwise fall back to InternalConnection and finally ConnectionVersion4. - Split up AdaptedConnection into specific implementations for each of the above cases.

    • -1
    • +13
    ./DefaultToolingImplementationLoader.java
  1. … 12 more files in changeset.
Moved ServiceLocator from core to baseServices.

    • -0
    • +1
    ./DefaultToolingImplementationLoader.java
  1. … 7 more files in changeset.
Moved ClassPath and DefaultClassPath from core to baseServices.

    • -1
    • +1
    ./CachingToolingImplementationLoader.java
    • -0
    • +1
    ./DefaultToolingImplementationLoader.java
  1. … 38 more files in changeset.
Represent the tooling API provider implementation using a ClassPath, rather than Collection<File>.

    • -5
    • +3
    ./CachingToolingImplementationLoader.java
    • -6
    • +2
    ./DefaultToolingImplementationLoader.java
  1. … 8 more files in changeset.
Refactored the slf4j logging for the tooling api provider in an attempt to clean things out and resolve some of the CI issues (like the recent jvm crashes). Stopped using the awkwardly synchronized single-op logging configurer (this is where the jvm was crashing). Instead I configure the logging when the connection is created. Since we have a single connection per classpath/classloader this should be also concurrency safe. On the downside, I'm pushing a boolean verboseLogging around, however I cannot really use a LogLevel type because log levels are not modelled in the protocol (they are not a part of the cross version contract).

    • -2
    • +2
    ./CachingToolingImplementationLoader.java
    • -2
    • +4
    ./DefaultToolingImplementationLoader.java
    • -3
    • +3
    ./SynchronizedToolingImplementationLoader.java
  1. … 13 more files in changeset.
- Added ClasspathSource, to allow a ClassLoader to make its classpath available via ClasspathUtil.getClasspath() without making it parent(s) visible. - Fixed broken int tests. - Removed the 'observable' bit from ObservableUrlClassLoader and renamed it to MutableURLClassLoader.

    • -1
    • +1
    ./DefaultToolingImplementationLoader.java
  1. … 18 more files in changeset.
Moved Factory and ServiceRegistry back to where they were, and leave behind some deprecated subtypes for the old compiled tasks to find.

    • -1
    • +1
    ./DefaultToolingImplementationLoader.java
  1. … 142 more files in changeset.
- Moved ServiceFactory and Factory back to their old packages (for now) to avoid breaking tasks implemented in Groovy and compiled against older Gradle versions. - Added some int test coverage for this case.

    • -1
    • +1
    ./DefaultToolingImplementationLoader.java
  1. … 145 more files in changeset.
Shuffled some classes around to some new packages.

    • -1
    • +1
    ./DefaultToolingImplementationLoader.java
  1. … 243 more files in changeset.
Tooling api refactoring and tidy-up...

Made the loaders use internal consumer interface instead of the protocol interface. This way the code is easier to maintain as we have more flexibility in refactoring.

    • -5
    • +5
    ./CachingToolingImplementationLoader.java
    • -2
    • +6
    ./DefaultToolingImplementationLoader.java
    • -3
    • +3
    ./SynchronizedToolingImplementationLoader.java
  1. … 8 more files in changeset.
Tooling api concurrency, added extra message when a different thread is busy acquiring the gradle distro...

-The fixes were applied in the consumer code which means the fixes should apply to previous target gradle versions.

-SynchronizedToolingImplementationLoader logs extra progress message in case a different thread is busy acquiring the distribution. The check is very simple, e.g. the progress message will be shown regardless how long the other thread spends on acquiring the distro.

    • -1
    • +13
    ./SynchronizedToolingImplementationLoader.java
  1. … 2 more files in changeset.
Tooling api improvements. Connection object is now thread safe.

Sort of a mean check-in but it was hard to chop it into steps. Details:

-The fixes were applied in the consumer code which means the fixes should apply to previous target gradle versions. Alternative approach to the problem was changing the provider code and attach logging tools to the InternalLongRunningOperationParameters so that they are created per operation.

-Started using ThreadLocal for the progressLoggerFactory and listenerManager. Those two are paired together (they share some state). Added a connection decorator that initializes the ThreadLocal state before other connection implementations kick in.

-Distribution and ToolingImplementationLoader no longer keep ProgressLoggerFactory. It is passed as method argument. This makes many things much simpler as we don't have to worry about that state in concurrent conditions

-Added/improved corresponding coverage

    • -3
    • +4
    ./CachingToolingImplementationLoader.java
    • -4
    • +5
    ./DefaultToolingImplementationLoader.java
    • -2
    • +3
    ./SynchronizedToolingImplementationLoader.java
  1. … 17 more files in changeset.
Added missing copyright statements.

    • -0
    • +16
    ./SynchronizedToolingImplementationLoader.java
  1. … 1 more file in changeset.
Busted some tooling api consumer classes into a dedicated package

    • -0
    • +46
    ./CachingToolingImplementationLoader.java
    • -0
    • +73
    ./DefaultToolingImplementationLoader.java
    • -0
    • +29
    ./SynchronizedToolingImplementationLoader.java
    • -0
    • +23
    ./ToolingImplementationLoader.java
  1. … 13 more files in changeset.