Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merged idea & eclipse subprojects into 'ide' subproject. Pending: -package names changes? -move eclipse/idea integ tests to ide subproject

  1. … 203 more files in changeset.
Housekeeping. Added a fix of an edge case for idea plugin (when there was a dependency to a non-idea project the idea plugin could fail). Added corresponding integration test. Refactored names to make it more consistent.

  1. … 6 more files in changeset.
(GRADLE-1446) Refactored the intra-task dependencies between configurer & generator task for eclipse plugin. Made it more gradle-like by using dependency mechanism instead of implicit method call inside EclipseConfigurer. EclipseConfigurer no longer configures the domain objects for generator tasks, other tasks do it now. ModelBuilder needs to run extra tasks now (pending refactoring)

Pending:

-documentation for GeneratorTask

  1. … 4 more files in changeset.
housekeeping - split 1 test into 2, rename job

(GRADLE-1446) Rename job & moved the domain object configurer to tasks api so that it lives close to GeneratorTask that needs it. Put the interface on GeneratorTask where it belongs.

  1. … 3 more files in changeset.
(GRADLE-1446) Refactored the intra-task dependencies between configurer & generator task. Made it more gradle-like by using dependency mechanism instead of implicit method call inside IdeaConfigurer. Details:

Details:

-removed the hacky configuraiton-lifecycle stuff from GeneratorTask

-IdeaConfigurer no longer configures the domain objects for generator tasks

-new task task does it now

-removed awkward 'model' state from IdeaModule/IdeaPlugin/IdeaProject. It was my earlier refactoring and didn't make much sense in a first place...

Pending:

-documentation for GeneratorTask

-fix eclipse plugin

  1. … 2 more files in changeset.
(GRADLE-1446) Refactored GeneratorTask to enable tooling api use some idea/eclipse plugins goodness. Details:

- GeneratorTask now allows 'preconfiguration' of the domain object. I'm not very happy with this implementation but it felt lesser evil given that I need to keep the api of GeneratorTask intact because it is a part of our public api.

- EclipseConfigurer and IdeaConfigurer task now run domain object configuration for relevant idea/eclipse GeneratorTasks. This way after configurer finishes his work we have the complete model of eclipse/idea (all subprojects).

- Added integration test for idea plugin. It checks if before/whenConfiguration hooks work ok.

  1. … 5 more files in changeset.
Added more documentation to the DSL reference.

- examples related to EclipseProject/IdeaModule generation

- mentioned deduplication logic for eclipse project name

- added example related to 'provided' dependencies

  1. … 1 more file in changeset.
(GRADLE-1407) Next step in removing the duplication across eclipse & idea plugin. The duplication relates to module name deduplication logic.

- idea plugin uses the common deduplication logic

- some refactoring regarding names

- ideaModule task no longer exposes getCandidateNames

  1. … 8 more files in changeset.
housekeeping - tiny refactoring

Fixed a failing test

provide (empty) defaults for IDEA's 'provided' scope

Fixed totally lame mistake...

(GRADLE-1437) Updated docs for IdeaModule, moduleName and outputFile properties. Added examples when necessary

  1. … 1 more file in changeset.
housekeeping - rename job

housekeeping. Simplified the deduplication a lot.

housekeeping after code review. Fixed some name issues. Added explicit types.

housekeeping after code review:

-Got rid of an unnecessary interface

-Stopped exposing configurer to the task users

-fixed various small groovy mistakes (redundant defs, it->, etc.)

-reduced duplication in some tests

  1. … 1 more file in changeset.
housekeeping after code review. Removed confusing type.

housekeeping after code review. Reduced some duplication.

housekeeping after code review. Tuned the test method name.

(GRADLE-1127 / GRADLE-1408) IDEA module names problems - REFACTORING

Next step in cleaning up the idea plugin. Made the IdeaWorkspace task consistent with oder tasks. This means the model object is constructed by the plugin.

(GRADLE-1127 / GRADLE-1408) IDEA module names problems - REFACTORING

Next step in cleaning up the idea plugin. Made the IdeaProject pathFactory consistent how we did it before, e.g. the create() method was responsible for it.

(GRADLE-1127 / GRADLE-1408) IDEA module names problems - REFACTORING

Next step in cleaning up the idea plugin. Made the Module model object created by IdeaPlugin and started storing this object in the IdeaModule task.

(GRADLE-1127 / GRADLE-1408) IDEA module names problems - REFACTORING

First step in cleaning up the idea plugin. Made the Project model object created by IdeaPlugin and started storing this object in the IdeaProject task.

(GRADLE-1127 / GRADLE-1408) IDEA module names problems - fixed an edge case - dependency on projects order

I needed to make sure the order of projects passed to configurer does not matter. Therefore I'm sorting them based on nesting level. It is an edge case in case user applies idea plugin in a weird order (e.g. first on some selected subprojects, then on root, etc.). Should it have an integration test also?

(GRADLE-1127 / GRADLE-1408) IDEA module names problems - fixed possible edge case

If user overwrites the moduleName there is a possibility of duplicates even if we include the path. Deduper should deal with that case gracefully

(GRADLE-1127 / GRADLE-1408) IDEA module names problems - refactored deduper into configurer

Made the configurer tasks more generic

- it is run before all generation tasks

- currently it only makes sure the module names are unique

- at configuration phase the configurer tasks is set only once, on the root project

(GRADLE-1127) IDEA plugin generates invalid .ipr file when multiple projects have the same name (GRADLE-1408) IDEA plugin generates incorrect module dependencies when non-default module name is used

GRADLE-1127 should be completed now but I need to do some more checks & a code review. To implement GRADLE-1127 I needed to fix GRADLE-1408 anyway (to make sure the dependencies are correctly resolved to new, deduplicated names). Hence both issues are sort of fixed by this check-in.

To fix the problems I needed to create yet another task (ModuleNameDeduper) that runs before:

- idea project generation - ideaProject task. *.ipr file specifies the list of modules so modules names should be unique by this time

- idea modules generation - ideaModule tasks. *.iml files need to have correct file names and correct dependencies so module names should be unique by this time

- cleaning modules - cleanIdeaModule tasks. When cleaning up *.imls we need to know the correct file names.

To make sure deduper runs first it is added as dependency to the tasks.

Added corresponding unit tests

Pending:

- code review & refactoring

- proper integration test for both issues (so far the integration test is half-manual)

- make sure edge cases are covered / covered in the integration test

second shot at GRADLE-1305: IDEA plugin should configure the IDE to generate classes into the default location for the IDE added new configuration option IdeaModule.inheritOutputDirs

  1. … 8 more files in changeset.