sdedic edited a comment on pull request #2948:
URL: https://github.com/apache/netbeans/pull/2948#issuecomment-840376942


   Asking for an initial review. Outline of the changes:
   - adapted @JaroslavTulach prototype of a declarative action provider for 
Maven. Actions can be contributed using module's layer registrations; examples 
provided in docs.
   - synced Maven's extensibilty with Gradle: a module may inject service into 
project's Lookup when a certain plugin is configured for the project. This is 
present in Gradle and is IMHO beneficial for Maven too.
   - improved interaction of default GUI and the declarative 
`MavenActionProviders`; supplied actions can be customized.
   - Branding API for Maven to mask out POM-profile implied configurations; 
just real configurations (user or module-provided) will be visible in 
Configuration chooser
   - Exported Configurations over LSP. Launch config may specify the desired 
configuration (unspecificed = the active one).
   
   ---
   
   **A somewhat controversial change** is the introduction of 
`ActionProvider.ConfigurationAware` interface. For the purpose of this PR, the 
`getSupportedActions` method does not get enough context: an action may be 
defined for a specific configuration only (in Maven). An option would be to 
disallow defining new action IDs local to a configuration; or merge all IDs 
form all configurations.
   
   Discussed offline with @dbalek whether it is preferrable to pass the 
selected `ProjectConfiguration` in the context Lookup (see docs for 
ProjectConfigurationProvider); the result was that given both concepts are 
exposed in the Project API, wormholing through Lookup seems awkward - so I 
introduced `ConfigurationAware` to create a configuration-bound 
`ActionProvider` instance.
   
   I developed the implementation, but I need to get review on this 
`ConfigurationAware` concept now. If approved, I neeed to provide 
`ProjectUtils` methods for API clients, so they need not interact with 
ProjectConfigurationProvider SPI that much + provide compatibility bridge. If 
disapproved, I need to change Maven implementation to merge IDs from known 
configuration to supported IDs.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to