Hmm, I'm not quite sure I'm following what you want/expect, but I can tell you what I think the difference is between, for example: "jpa-new-entity" and "jpa-scaffold-from-db" based on what I gather from what you've said.
- jpa-new-entity
- has no knowledge of an existing database
- simply allows the users to create a JPA entity, step by step
- jpa-scaffold-from-db
- requires an existing database
- generates a full jpa entity from existing information
- name does not make clear what is being created/scaffolded
The latter command seems a bit ambiguous, and I'm not sure what will happen if we start using "scaffold" as a general term that is separate from the UI layer. Scaffolding is frequently used to refer to a vertically aligned generated/framework driven approach that results in a CRUD UI. And this starts to blur that line.On Mon, Jan 6, 2014 at 1:01 PM, Antonio Goncalves <antonio.mailing@gmail.com> wrote:
In red below, the new commands between shell, core and scaffold.First, core has Java EE stuff... so why not go for javaee instead of core (you could have Spring, Play with Scala or whatever other addons). And sorry to bring that again and again but I don't see the point of a sepeate scaffold addon. For me, as a user, there is no difference between scaffolding and generation. A jpa-new-entity is the same as a jpa-scaffold-from-db, a rest-new-enpoint is the same as a rest-scaffold-from-entity.Technically, generation and scaffolding are maybe different, but for a user, I would love to install the javaee addon, and do a rest-new-enpoint and rest-scaffold-from-entity. One day, I will install the spring addon and do a mvc-new-controller and mvc-scaffold-from-entity.
$ forge -i shell[Forge]$ TABalias export clear exit less mkdir pwd services-list transaction-startunalias cd echo grep ls more rm touch man$ forge -i core
[Forge]$ TABalias addon-new-command cdi-setup faces-new-converter jax-ws-setup jstl-setup more services-list
unalias addon-remove clear faces-new-validator jms-setup jta-setup project-new servlet-setupexport bean-validation-setup echo faces-new-validator-method jpa-new-entity less pwd touchaddon-build-and-install build ejb-setup faces-setup jpa-new-field ls rest-setup transaction-startaddon-install cd exit grep jpa-setup mkdir rm man$ forge -i scaffold
[Forge]$ TABalias addon-new-command cdi-setup faces-new-converter jax-ws-setup jstl-setup more scaffold-generate transaction-start
unalias addon-remove clear faces-new-validator jms-setup jta-setup project-new scaffold-setup manexport bean-validation-setup echo faces-new-validator-method jpa-new-entity less pwd services-listaddon-build-and-install build ejb-setup faces-setup jpa-new-field ls rest-setup servlet-setupaddon-install cd exit grep jpa-setup mkdir rm touch2014/1/6 Lincoln Baxter, III <lincolnbaxter@gmail.com>
It all depends on which addons you install. If you install "core", you'll get our full addon suite. If you install "shell" you'll get just the shell as you desire, with no additional commands :)On Sun, Jan 5, 2014 at 9:07 AM, Antonio Goncalves <antonio.mailing@gmail.com> wrote:
To a certain extreme, I would not even expect to have Java commands (java-new-enum, java-new-class...) when I download Forge : this could also be an addon. This way, if I want to install Scala addons instead, I would just go forge -i addon-scala, and then scala-new-class ;o)2014/1/5 Antonio Goncalves <antonio.mailing@gmail.com>Hum.... but really, if JavaEE is an addon, why, when I launch Forge for the first time and hit TAB I have all the following commands :$ faces-setup | jpa-setup | bean-validation-setup | ejb-setup | jstl-setup | jax-ws-setup | jta-setup...These are Java EE commands.This is what I expect (first launch, hit TAB, no Java EE, then install JavaEE addon and here comes Java EE commands):[project] $ [hit TAB]alias addon-remove echo more unalias grep project-new services-listexport build exit pwd addon-build-and-install cd less touchaddon-install ls rm transaction-startaddon-new-command clear mkdir scaffold-generate man[project] $ addon-install --named javaee
[project] $ [hit TAB]alias addon-remove echo faces-setup jpa-setup more scaffold-setupunalias bean-validation-setup ejb-setup grep jstl-setup project-new services-listexport build exit jax-ws-setup jta-setup pwd servlet-setupaddon-build-and-install cd faces-new-converter jms-setup less rest-setup touchaddon-install cdi-setup faces-new-validator jpa-new-entity ls rm transaction-startaddon-new-command clear faces-new-validator-method jpa-new-field mkdir scaffold-generate manThe same thing could happen with a spring addon : you lauch Forge, no Spring nor Java EE commands, install the Spring addon, and bang, new Spring commands....What bothers me is that there is a distinction between jpa commands (jpa-new-entity, jpa-new-field...), setup commands (servlet-setup, jstl-setup..) and the rest of Java EE commands only once the addon is installed.Anotonio2014/1/4 George Gastaldi <ggastald@redhat.com>
Interesting and certainly doable. I remember discussing this separation in the early days, but we decided to keep it all the javaee addons in a single addon for simplicity.So as a user, I execute Forge, once in the shell I hit TAB and see cd, ls, touch, man... I install the jpa-addon, I hit TAB, I see these new commands, I install the jsf-addon, I hit TAB, and see these new commands....2014/1/4 Antonio Goncalves <antonio.mailing@gmail.com>But if I take your definition :> Scaffolding basically is code generation. Right now there is nothing interactive or re-consumable about it.
Then, generating entities from an already existing database, is scaffolding. So I expect a forge -i jpa-addon. Then I get a set of entities, and with Forge I can cd the entity and do a jpa-new-field. In this example I scaffold and then add something to a generated entity.What's important in your sentence is "Right now". What if one day we scaffold JSF pages and beans and we are able to cd a backing bean and do jsf-new-field... then, there is no difference between JPA and JSF.My point is that as a user, I don't understand why when I hit TAB, by default, I can see jpa commands, but not JSF or REST commands. I need to install addons for some, and it's already installed for others.Maybe Forge should just be an empty shell (cd, ls, touch, man...) with no extensions at all, and then I need to do a forge -i jpa-addon, forge -i jsf-addon, forge -i rest-addon to get extensions.... and if I'm lazy and just want to develop a Java EE app, I'll go forge -i javaee-addon.My 2 cents2014/1/4 Lincoln Baxter, III <lincolnbaxter@gmail.com>
Hey Antonio!Again, more excellent feedback! Thank you!First, I really don't see the difference between scaffolding and code generation (I've mention that before). So, for me, as a user, jpa-new-entity is a command that generates code, just like scaffold-generate. But if we clarify this, users might get use to it.Scaffolding basically is code generation. Right now there is nothing interactive or re-consumable about it.Regarding the fact that you weren't able to see anything about JSF. I believe this is likely due to this issue that we identified in Beta4 and have fixed and tested for .Final --> https://issues.jboss.org/browse/FORGE-1407For example. This is still a bit strange because unless you have multiple scaffolds installed, you don't see the choice of scaffold type, but when I run scaffold setup in the latest SNAPSHOT, I see:[jpa-demo]$ scaffold-
scaffold-generate scaffold-setup
[jpa-demo]$ scaffold-setup --facesVersion 2.
2.2 2.1 2.0
[jpa-demo]$ scaffold-setup --facesVersion 2.2Additionally, when I type `--provider` manually without using TAB completion, then TAB complete the value, I do see the provider option, so there may still be something wrong with the fix for FORGE-1407:[main]$ scaffold-setup --provider Faces~LincolnLincoln Baxter, IIIOn Sat, Jan 4, 2014 at 12:46 PM, Antonio Goncalves <antonio.mailing@gmail.com> wrote:
Scaffolding is really confusing. To scaffold my JSF pages I first need to install scaffolding :
forge -i scaffoldAnd then, once in Forge I do :scaffold-setupscaffold-generate --targets org.test.model.CustomerAnd it generates JSF pages. Nowhere I see any mention of JSF in the previous commands. These commands could have generated REST endpoint, EJBs, AngularJS....First, I really don't see the difference between scaffolding and code generation (I've mention that before). So, for me, as a user, jpa-new-entity is a command that generates code, just like scaffold-generate. But if we clarify this, users might get use to it.When I type forge -i scaffold, it installs plenty of stuff. Does this mean it installs all the available scaffolding addons (JSF, REST, AngularJS, Arquillian...) ? If not, I don't know what it installed. Why don't we have :
forge -i scaffold-jsf
forge -i scaffold-jpa
forge -i scaffold-rest
forge -i scaffold-soapor even better if we follow the new naming conventionforge -i jsf-scaffold
forge -i jpa-scaffoldforge -i rest-scaffoldforge -i soap-scaffoldAgain, when I type scaffold-generate I really don't know what will happen. Because scaffolding and generating are the same for me. So command scaffold-generate sounds like generate-generate or scaffold-scaffold. Why not having :jsf-scaffold --targets org.test.model.Customerjpa-scaffold --dbName myDB --jdbcDriver org.apache.derby.Clientrest-scaffold --targets org.test.model.Customersoap-scaffold --targets org.test.model.CustomerWhat do you think ?Antonio2014/1/4 George Gastaldi <ggastald@redhat.com>
The JSF scaffold was not installed with core in Beta4. We fixed that for 2.0.0.Final. Run forge -i scaffold to install it.Worth to mention that the available commands only generate the REST resource for the entities, the JSF scaffold does not consume them.I can't see any command for REST of JSF scaffolding, so I suppose both are addons. How do I install these addons ?2014/1/4 George Gastaldi <ggastald@redhat.com>
REST generation from JPA entities is already functional too.Use rest-setup and rest-endpoint-from-entityHum... I forgot, I also need REST scaffolding.... might be a bit tight in schedule....2014/1/3 George Gastaldi <ggastald@redhat.com>
Both issues are now fixed. JSF scaffolding is ready since Beta4.We could release Beta5 monday but as we said in the IRC, 2.0.0.Final is due in Jan 15th, so that's up to Lincoln.Best Regards,GeorgeHi JBoss Forge Team,I should have mentioned that before, but next Tuesday (at the Lille JUG in France) and Thursday (London, GlassFish User Group), I'll be giving a talk on JBoss Forge. It's the same one I gave at JavaOne (http://blog.arungupta.me/2013/12/come-and-play-with-javaee7-javaone-2013-session/) but with few extra features.I'm doing it with Forge 1.x.... but actually, the only missing bits to make it run with Forge 2.x are :* Bean Validation (https://issues.jboss.org/browse/FORGE-1393)* Java enums (https://issues.jboss.org/browse/FORGE-1400)* JSF scaffoldingSo I was just wondering if this would be available on Monday for a Beta5 so I could use itThank(just joking ;o)--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users
--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
http://ocpsoft.org
"Simpler is better."
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
Antonio Goncalves
Software architect and Java Champion
Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
_______________________________________________
forge-users mailing list
forge-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-users