MavenPluginFacet enhancement: smart plugin resolution
by Charles SALMON
Hello all,
I recently contributed to the forge project (FORGE-842) by adding the
pluginManagement support to the mavenPluginFacet.
One question is still opened, which is the purpose of this post.
Basically, it is about a smart plugin resolution, ie having the plugin
properties (artifactId, groupId, version,...) automatically resolved when a
plugin is defined in a "pluginManagement" section and used in a "plugins"
section.
Let's take the following example:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins></build>
Currently, a call to the
mavenPluginFacet.getPlugin(DependencyBuilder.create("org.apache.maven.plugins:maven-compiler-plugin")).getVersion()
will return a null value, because the version is not declared in the
"//build/plugins/plugin" section.
Maven will, however, resolve the plugin by using the version and
configuration of the maven-compiler-plugin declared in the
"//build/pluginManagement/plugins" section.
Moreover, we should also note that the pluginManagement section will be,
most of the time, declared in the parent pom, which makes the smart
resolution as follow:
1. Compute the effective pom
2. Resolve the plugin properties
My question is: based on the fact that similar implementation was done with
Dependency and DependencyManagement sections (in the MavenDependencyFacet
and DependencyInstaller), which methods should be implemented ?
Following the same logic, we could also thing of a smart "addPlugin"
method: what if I add a plugin that is already managed, with the same
version of the managed plugin ? With some configuration element(s) being
the same as the managed plugin ? ...
Based on your answers, I will create a FORGE issue and will try to
implement the missing methods.
Thanks,
Charles.
11 years, 8 months
Forge meeting minutes - 2013-04-10
by ggastald@redhat.com
Due to some problems with the jbott, no formal minutes were generated.
<lincolnthree> Hey folks. Let's get started.
<lincolnthree> I'd like to have a quick meeting today. I know we all
have a lot to do.
<lincolnthree> #topic Agenda
<lincolnthree> #info Forge 2 Status
<gastaldi> Scaffold-X Team Status ?
<lincolnthree> #chair gastaldi vineetreynolds koentsje stalep
<jbott> Current chairs: gastaldi koentsje lincolnthree stalep vineetreynolds
<lincolnthree> add your infos as needed
<gastaldi> vineetreynolds ^^ ?
<gastaldi> hum, mmatlocka wanted to discuss something about the website too
<gastaldi> too bad he isn't here atm
<vineetreynolds> my updates will be a bit short
* mmatloka (~mmatloka(a)efn41.neoplus.adsl.tpnet.pl) has joined #forge
<vineetreynolds> sblanc will probably have something to add
<lincolnthree> #info X-Scaffold Status
<lincolnthree> ok
<lincolnthree> #topic Forge 2 Status
<gastaldi> I made some changes in the jboss tools plugin yesterday
<lincolnthree> I think we are at the point where we need to push to get
the addons addon working.
<gastaldi> The CheckboxTable component is now visually nicer
<lincolnthree> You changed combo box?
<lincolnthree> Ah great./
<gastaldi> combo box ? What's wrong with it ?
<lincolnthree> nothing
<lincolnthree> i didnt remember the name of the comp you changed
<koentsje> in a way it is also a combo box ;)
* kenfinnigan (~kenfinnig(a)c-75-67-145-183.hsd1.ma.comcast.net) has
joined #forge
* ChanServ gives voice to kenfinnigan
<gastaldi> ComboControlBuilder :)
<lincolnthree> true
<gastaldi> so, ok, we need to get the addons addon working. I added to
the addon-repository inside the eclipse plugin too
<gastaldi> so we don't need to install it manually
<lincolnthree> yeah that's working nicely except for a few bugs with
multiple repos
<gastaldi> since this strategy avoids multiple repos, that won't be a
trouble atm
<lincolnthree> ah, you added addons addon to the addon repo?
<gastaldi> yes
<lincolnthree> good
<gastaldi> You need to remove that to test if you change something
<gastaldi> Does anyone have any pending issue for Forge 1.2.3.Final ?
<gastaldi> I was thinking to release it today or still this week
<gastaldi> but we can wait until monday if necessary
<gastaldi> the update fix is the most important fix
<lincolnthree> yes
<lincolnthree> i think we need to release the update fix asap
<lincolnthree> if you want to do that today that's fine
<gastaldi> Ok, any complaints ?
<gastaldi> no ? Ok, go on :)
<lincolnthree> ok
<gastaldi> #action gastaldi will release Forge 1.2.3.Final today
<lincolnthree> #action lincolnthree will work on the multiple repo bugs
today
<gastaldi> lincolnthree, I improved the README in the repo
<gastaldi> with our to-be blog post
<lincolnthree> ah. fantastic
<gastaldi> because some people were already trying to use Forge
2.0.0.Alpha2 and having some trouble
<lincolnthree> great idea
<lincolnthree> youre very good at keeping up with the community. an
ability i sometimes lack
<lincolnthree> thank you
<gastaldi> you're welcome :)
<lincolnthree> koentsje: briefly, regarding the JBDS release
<lincolnthree> what needs to be done?
<lincolnthree> also, why do the tests show up in the installation window?
<lincolnthree> along with the development sources
<koentsje> i am still adding the forge 1 wizards in the JBDS release
<gastaldi> we also need to change the descriptions in the
feature.properties file
<maxandersen> lincolnthree: because you are installing from the
component site - not the jbosstools site.
<lincolnthree> ah ok
<koentsje> there are some issues with the new target platform (kepler
M6), some of the stuff is not compatible
<maxandersen> lincolnthree: that repo is purely for internal consumption.
<lincolnthree> gotcha
<maxandersen> koentsje: what we need for alpha2 of JBT afaik is:
<maxandersen> A) update to latest forge 1 to avoid the "update to
forge2" bug ?
<maxandersen> B) get it to work on kepler M6 (what is broken ?)
<lincolnthree> maxandersen: gastaldi will be releasing that fix today
<maxandersen> C) update to use Forge 2 alpha2
<koentsje> nothing that is in the repo is broken actually
<gastaldi> maxandersen, "forge update" inside JBT doesn't work yet
<gastaldi> I think
<koentsje> maxandersen, what do you mean by C)?
<maxandersen> gastaldi: ah so its not relevant ?
<lincolnthree> gastaldi: maxandersen it shouldn't be
<lincolnthree> no
<maxandersen> koentsje: when you left on PTO, the build was using forge
2 alpha1-snapshot
<maxandersen> lincoln release forge 2 alpha1 - the snapshot disappearted
-> build fails
<koentsje> maxandersen, but that has been fixed as well right?
<lincolnthree> maxandersen: that's weird. we don't have a snapshot like
that "2alpha1-snapshot"
<maxandersen> I thus set it the alpha1 jbt branch to use alpha1 Forge to
make the build work (it did not compile against alpha2 of forge)
<koentsje> afaik the only issue right now for forge is two failing tests
<maxandersen> lincolnthree: well - it might be it was just compile errors
<lincolnthree> ah
<lincolnthree> k
<maxandersen> lincolnthree: in any case - snapshot wasn't compatible
<koentsje> but those failures are harmless and i have a fix for them
<maxandersen> then alpha2 of forge was released, so I assume that is
what we should ship in alph2 of jbt forge 2 tools.
<lincolnthree> maxandersen: yes, until alpha3 comes out :)
* pmuir has quit (Quit: Leaving)
<maxandersen> lincolnthree: well thats another day ;)
* pmuir (~pmuir(a)cpc8-sgyl32-2-0-cust146.18-2.cable.virginmedia.com) has
joined #forge
* pmuir has quit (Changing host)
* pmuir (~pmuir@redhat/jboss/pmuir) has joined #forge
<maxandersen> lincolnthree: and for another jbt release ;)
<maxandersen> gastaldi: about "own server" for forge - I don't think
having a "forge server" makes sense for the usecase you describe.
<koentsje> so the summary is 1) get the forge1 wizards in, 2) update
forge2 to alpha2
<maxandersen> gastaldi: its close - but too many mismatches.
<maxandersen> koentsje: yes and you said there were some kepler M6 stuff?
<koentsje> yes because the wizards have some jpa deps
<koentsje> didn't track that until i compile against the right target
platform of course :@
<koentsje> so that is part of getting the forge 1 wizards in
<koentsje> maxandersen^^
<lincolnthree> okay
<maxandersen> kon
<gastaldi> maxandersen, perhaps, I was talking with koentsje this
morning and he pointed out that maybe having a "Forge Config" view may
be more suitable
<maxandersen> koentsje: ah yes the beautfiul dali api
<maxandersen> kon
<maxandersen> koentsje: but surprised you used API here that failed you?
<koentsje> maxandersen, indeed... it now not only haunts me in
hibernate-tools but also in forge-tools
<maxandersen> gastaldi: Forge Runtime preferences is where I would put this.
<koentsje> maxandersen, i used
jpaProject.getAnnotatedJavaSourceClassNames() and apparently that
disappeared
<gastaldi> maxandersen, Runtime Preferences ? For Deploying addons and
such ?
<maxandersen> gastaldi: yes.
<gastaldi> maxandersen, could you complement this info in FORGE-841,
please ?
<jbossbot> jira [FORGE-841] Add Forge as a container in the Servers tab
[Open (Unresolved) Feature Request, Major, Koen Aers]
https://issues.jboss.org/browse/FORGE-841
<maxandersen> gastaldi: you are setting the runtime info.
<maxandersen> you mean comment?
<gastaldi> comment, yes
<lincolnthree> whenever everyone is ready, we can turn over to
vineetreynolds
<gastaldi> go go go
<lincolnthree> #topic X-Scaffold Status
<gastaldi> Release is starting
<lincolnthree> woot
<vineetreynolds> Sorry guys, in another meeting as well. I'll be short
<lincolnthree> kk
<vineetreynolds> I started some work on the F2 scaffold-x plugin
<vineetreynolds> I ran into a couple of issues - one with the Eclipse
plugin and the other with aesh
<vineetreynolds> I believe the first should be solved in Alpha3
<gastaldi> ah perhaps with the multiple repos feature
<lincolnthree> vineetreynolds: aesh doesn't currently really work at all
<vineetreynolds> lincolnthree, ok, but I was looking at what would work
<gastaldi> the aesh addon doesn't work, aesh does :)
<lincolnthree> right
<gastaldi> or else stalep will get mad :)
<vineetreynolds> since stalep was testing his work on the new-project addon
<vineetreynolds> so I figured I'll try and get some feedback on how my
new addon would work in a F2 installation
<vineetreynolds> Anyway, this is probably something to try out in the
coming week or so
<vineetreynolds> I did get some good feedback on how to approach writing
the addon
<vineetreynolds> Firstly, the Java EE plugins from F1 should be ported
* lfryc has quit (Ping timeout: 240 seconds)
<vineetreynolds> otherwise the scaffold-x plugin would have to work off
user-created java classes
<vineetreynolds> The entity, field, validation and rest plugins are kind
of important here
<lincolnthree> right
<lincolnthree> in order to port the ee addons, we need some of the
features i have been working on
<lincolnthree> like the dependency installer
<vineetreynolds> ok, seems like I'd have to wait longer then
<lincolnthree> which was actually quite difficult to get right in F1
<vineetreynolds> There's some work I managed to do in the scaffold-x
provider for F1
<vineetreynolds> Moving it closer to releasable state
<gastaldi> nice
<vineetreynolds> Firstly, I managed to figure out the usecase for the
RichFaces support in the Faces provider
<gastaldi> Can we make it to 1.2.4.Final ?
<vineetreynolds> Yes, or 1.2.3 which ever comes first
<vineetreynolds> :)
<gastaldi> 1.2.3.Final comes today
<vineetreynolds> Ah ok
<gastaldi> It's coming now :)
<vineetreynolds> Then make it 1.2.4
<gastaldi> sweet! :)
<vineetreynolds> I just need to review the FTLs. I've got useful inputs
from maxandersen and I'll review them with sblanc
<lincolnthree> vineetreynolds: we can always do a 1-off release to get
it released sooner when you finish!
<vineetreynolds> That's the first in the list of items to complete
<vineetreynolds> A few more:
<gastaldi> I can rollback the release and wait
<gastaldi> should we ?
* maschmid has quit (Quit: Ex-Chat)
<vineetreynolds> * verify if it makes sense to use Richard's
Freemarkerwidget from metawidget instead of relying on just the inspectors
<vineetreynolds> No, don't too undeterministic
<gastaldi> Speak now or forever hold your peace
<vineetreynolds> I've spoken: release 1.2.3 now, and plan on 1.2.4
<gastaldi> ok
<vineetreynolds> A one-off 1.2.4 sounds better
<lincolnthree> ok
<gastaldi> next topic then ?
<vineetreynolds> Back to the items to complete - the tests needs a bit
of review
<vineetreynolds> and the bidi support in the rest plugin needs
implementation (needs to be moved from the prototype I have)
<stalep> hi, i see someone mentioned me
<vineetreynolds> That's about it I guess
<stalep> its dinner here now so im afking a lot
<lincolnthree> hey stalep, yes, we mentioned aesh
<maxandersen> btw. guys - would be awesome you try out alpha2 of JBT
with our LiveReload stuff
<lincolnthree> stalep: and that commands cant currently be executed
<lincolnthree> maxandersen: how do we access the livereload featuers?
<gastaldi> maxandersen, LiveReload ? JRebel ?
<vineetreynolds> stalep, yeah, it was about aesh and how
UIInput<SomeClass> would fail
<stalep> lincolnthree: its a parser thing in forgeshell
<vineetreynolds> UIInput<String> probably works
<stalep> vineetreynolds: yes that is correct
<stalep> ive done some changes to æsh as well so the parser throw more
specific exceptions instead of just illegalargument
<stalep> that will help regarding what kind of options/values/arguments
thats missing
<lincolnthree> awesome
<gastaldi> nice
<vineetreynolds> Ah, we need to figure out a way to bring in support for
@Alias or the equivalent in F2
<stalep> ill complete that tomorrow and i can integrate that into forge
tomorrow as well ithink
<gastaldi> I always knew that aesh was the path to go in F2
<gastaldi> :)
<lincolnthree> vineetreynolds: how so? Metadata.create() ?
<lincolnthree> err
<stalep> forgeshell should log the exception thats thrown when you try
to execute a command
<lincolnthree> Metadata.forCommand()
<vineetreynolds> Hmm, I'm not so sure
<stalep> so if there is something that doesnt work look in the log
<lincolnthree> stalep: how do we enable that?
<vineetreynolds> Say I have UIInput<ScaffoldProvider>, then I'd like
aesh to display the @Alias'es of the providers
<gastaldi> oh
<vineetreynolds> instead of forcing me to extract them into UIInput<String>
<gastaldi> I know the answer!
<lincolnthree> vineetreynolds: that's already supported in the UI API
<gastaldi> setItemLabelConverter
<lincolnthree> but you need to use a converter afaik
<vineetreynolds> Ah
<gastaldi> It should be a UISelectOne<ScaffoldProvider>
<gastaldi> this stuff is awesome :)
<lincolnthree> :D
<lincolnthree> vineetreynolds: yeah, we ahve more than just UIInput
<vineetreynolds> Umm yes, it was UISelectOne
<lincolnthree> k
<vineetreynolds> Didnt know about converters
<maxandersen> gastaldi: lincolnthree:
http://htmlpreview.github.io/?https://github.com/jbosstools/jbosstools-do...
<maxandersen> there is a video below
<maxandersen>
http://www.youtube.com/watch?feature=player_embedded&v=CUwZixfRYyg
<maxandersen> this is eclipse as a livereload server for all file
resources in eclipse workspace.
<maxandersen> in beta1 we'll have it for all deployed resources too.
<stalep> lincolnthree: it should be in there now
<maxandersen> i.e. stuff served out from servers.
<stalep> its logged to forge.log
<lincolnthree> maxandersen: that's a really nice feature
<lincolnthree> maxandersen: do you have any recommended memory settings
for using JBT so it doesn't slow down immensely on large proejcts?
<lincolnthree> stalep: excellent thanks
<maxandersen> lincolnthree: don't run forge ? :)
<gastaldi> wow !
<stalep> vineetreynolds: gastaldi i dont know how that works tbh, so i
wouldnt mind a bit of help how to support unknown classes
<maxandersen> lincolnthree: just kidding ;)
<lincolnthree> so while running aesh and trying to execute a command,
you should be able to see the log output in forge.log if there are problems
<stalep> lincolnthree: yes
<lincolnthree> stalep: ok
<gastaldi> maxandersen, nice!
<maxandersen> lincolnthree: I run with 1GB mx
<lincolnthree> maxandersen: any way to get JBT to auto-sense and adjust?
<maxandersen> lincolnthree: memory ? yeah - once Java VM's allow that.
<lincolnthree> max nah, you could edit the eclipse config file
<stalep> vineetreynolds: atm its CommandLineUtil that do the population
of UIInput objects
<stalep> its very crude atm
<stalep> i started it without knowing much of how the inputs would end up
<vineetreynolds> np, I figured that the equivalent functionality in F1
needed porting, or I was missing something
* cbrock (cbrock@redhat/jboss/cbrock) has joined #forge
* ChanServ gives voice to cbrock
<stalep> i use the ConverterFactory gastaldi mentioned
<vineetreynolds> Didnt dig deeper since it became evident that a lot
more needed to be done for my addon
<gastaldi> good :)
<lincolnthree> stalep: awesome
<gastaldi> Gunnar morling contacted me the other day about a project he
is working on
<gastaldi> mapstruct.org
<stalep> i just think i need to add methods for all the different
UIInput subclasses and it "should" work
<gastaldi> https://github.com/mapstruct/mapstruct/
<lincolnthree> ok
<gastaldi> perhaps it could be useful in the future, not sure, anyway
that's for posterity records :)
<gastaldi> are we done ?
<lincolnthree> yes
<lincolnthree> i think so
<lincolnthree> thanks everyone
<gastaldi> great
<gastaldi> #endmeeting
11 years, 8 months
Meeting minutes 2013-04-03
by Lincoln Baxter, III
(11:52:41 AM) jbott: Meeting ended Wed Apr 3 15:47:01 2013 UTC. Information
about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)
(11:52:41 AM) jbott: Minutes:
http://transcripts.jboss.org/meeting/irc.freenode.org/forge/2013/forge.20...
(11:52:42 AM) jbott: Minutes (text):
http://transcripts.jboss.org/meeting/irc.freenode.org/forge/2013/forge.20...
(11:52:42 AM) jbott: Log:
http://transcripts.jboss.org/meeting/irc.freenode.org/forge/2013/forge.20...
==============
#forge Meeting
==============
Meeting started by lincolnthree1 at 14:54:24 UTC. The full logs are
available athttp://transcripts.jboss.org/meeting/irc.freenode.org/forge/2013/forge....
.
Meeting summary
---------------
* Agenda (lincolnthree1, 14:55:00)
* Forge 2 Status (lincolnthree1, 14:55:48)
* Google Summer of Code Proposals (lincolnthree1, 14:55:55)
* X-Scaffold Status (lincolnthree1, 14:56:13)
* Forge 2 Status (lincolnthree1, 14:57:31)
* Forge 2.0.0.Alpha1 released. But will probably quickly do another
Alpha2 release. (lincolnthree1, 14:58:22)
* Container stability for tests is improved, but not perfect. Nothing
wrong, just sometimes tests execute before Addons have loaded, etc.
(lincolnthree1, 14:58:54)
* Google Summer of Code Proposals (lincolnthree1, 15:04:48)
* Need to make sure proposal content is filled out (lincolnthree1,
15:05:11)
*
https://community.jboss.org/wiki/GSOC13Ideas#implement_a_Database_Migrati...
(lincolnthree1, 15:05:15)
*
https://community.jboss.org/wiki/GSOC13Ideas#Support_for_the_Gradle_build...
(lincolnthree1, 15:05:31)
* ACTION: lincolnthree will fill out the gradle proposal and mail
forge-dev for review (lincolnthree1, 15:07:32)
* AGREED: We will add IntelliJ support as a GSoC proposal
(lincolnthree1, 15:13:33)
* LINK:
https://community.jboss.org/wiki/GSOC13Ideas#Support_for_the_Gradle_build...
(lincolnthree1, 15:13:55)
* X-Scaffold Status (lincolnthree1, 15:17:07)
* Enum support was added to the angular scaffold-x provider
(vineetreynolds, 15:30:59)
* Target directories are now supported in the angular scaffold-x
provider (vineetreynolds, 15:30:59)
* Collection handing (1:1,1:M,M;1,M:M) has been improved.
(vineetreynolds, 15:31:46)
* Entity/REST resource ids no longer need to be named as 'id'
(vineetreynolds, 15:32:51)
* Woot (lincolnthree1, 15:46:37)
* ACTION: vineetreynolds will initiate the Forge 2 scaffold-x addon
(lincolnthree1, 15:46:58)
Meeting ended at 15:47:01 UTC.
Action Items
------------
* lincolnthree will fill out the gradle proposal and mail forge-dev for
review
* vineetreynolds will initiate the Forge 2 scaffold-x addon
Action Items, by person
-----------------------
* vineetreynolds
* vineetreynolds will initiate the Forge 2 scaffold-x addon
* **UNASSIGNED**
* lincolnthree will fill out the gradle proposal and mail forge-dev
for review
People Present (lines said)
---------------------------
* lincolnthree1 (102)
* vineetreynolds (82)
* gastaldi (41)
* jbott (7)
* rruss (7)
* sblanc (4)
* jbossbot (2)
Generated by `MeetBot`_ 0.1.4
.. _`MeetBot`: http://wiki.debian.org/MeetBot
--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
11 years, 9 months
Plugin Backwards Compatibility
by James R. Perkins
What are the rules for plugin backward compatibility? I've done quite a
bit of work cleaning up the JBoss AS 7 plugin, but I changed some
prompts and some behavior. I haven't completely finished testing yet,
but since Forge allows scripts I was wondering if backwards
compatibility is important.
--
James R. Perkins
JBoss by Red Hat
11 years, 9 months