[forge-users] Scaffolding in Forge 2.x (was Beta5 next Monday ?)
Lincoln Baxter, III
lincolnbaxter at gmail.com
Mon Jan 6 14:50:51 EST 2014
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 at 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]$ TAB
> alias export clear exit
> less mkdir pwd services-list
> transaction-start
> unalias cd echo grep
> ls more rm touch
> man
>
>
> $ forge -i core
>
> [Forge]$ TAB
> alias 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-setup
> export bean-validation-setup echo
> faces-new-validator-method jpa-new-entity less
> pwd touch
> addon-build-and-install build ejb-setup
> faces-setup jpa-new-field ls
> rest-setup transaction-start
> addon-install cd exit
> grep jpa-setup mkdir
> rm man
>
>
> $ forge -i scaffold
>
> [Forge]$ TAB
> alias 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
> man
> export bean-validation-setup echo
> faces-new-validator-method jpa-new-entity less
> pwd services-list
> addon-build-and-install build ejb-setup
> faces-setup jpa-new-field ls
> rest-setup servlet-setup
> addon-install cd exit
> grep jpa-setup mkdir
> rm touch
>
>
>
>
>
> 2014/1/6 Lincoln Baxter, III <lincolnbaxter at 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 at 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 at 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-list
>>>> export build exit
>>>> pwd addon-build-and-install cd
>>>> less touch
>>>> addon-install ls rm
>>>> transaction-start
>>>> addon-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-setup
>>>> unalias bean-validation-setup ejb-setup
>>>> grep jstl-setup
>>>> project-new services-list
>>>> export build exit
>>>> jax-ws-setup jta-setup pwd
>>>> servlet-setup
>>>> addon-build-and-install cd
>>>> faces-new-converter jms-setup less
>>>> rest-setup touch
>>>> addon-install cdi-setup
>>>> faces-new-validator jpa-new-entity ls
>>>> rm transaction-start
>>>> addon-new-command clear
>>>> faces-new-validator-method jpa-new-field mkdir
>>>> scaffold-generate man
>>>>
>>>>
>>>> The 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.
>>>>
>>>> Anotonio
>>>>
>>>>
>>>> 2014/1/4 George Gastaldi <ggastald at 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.
>>>>>
>>>>>
>>>>> Em 04/01/2014, às 18:47, Antonio Goncalves <antonio.mailing at gmail.com>
>>>>> escreveu:
>>>>>
>>>>> 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 at 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 cents
>>>>>>
>>>>>> 2014/1/4 Lincoln Baxter, III <lincolnbaxter at 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-1407
>>>>>>>
>>>>>>> For 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.2
>>>>>>>
>>>>>>>
>>>>>>> Additionally, 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
>>>>>>>
>>>>>>>
>>>>>>> ~Lincoln
>>>>>>>
>>>>>>>
>>>>>>> On Sat, Jan 4, 2014 at 12:46 PM, Antonio Goncalves <
>>>>>>> antonio.mailing at gmail.com> wrote:
>>>>>>>
>>>>>>>> Scaffolding is really confusing. To scaffold my JSF pages I first
>>>>>>>> need to install scaffolding :
>>>>>>>>
>>>>>>>> forge -i scaffold
>>>>>>>>
>>>>>>>> And then, once in Forge I do :
>>>>>>>>
>>>>>>>> scaffold-setup
>>>>>>>> scaffold-generate --targets org.test.model.Customer
>>>>>>>>
>>>>>>>> And 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-soap
>>>>>>>>
>>>>>>>> or even better if we follow the new naming convention
>>>>>>>>
>>>>>>>> forge -i jsf-scaffold
>>>>>>>> forge -i jpa-scaffold
>>>>>>>> forge -i rest-scaffold
>>>>>>>> forge -i soap-scaffold
>>>>>>>>
>>>>>>>> Again, 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.Customer
>>>>>>>> jpa-scaffold --dbName myDB --jdbcDriver org.apache.derby.Client
>>>>>>>> rest-scaffold --targets org.test.model.Customer
>>>>>>>> soap-scaffold --targets org.test.model.Customer
>>>>>>>>
>>>>>>>> What do you think ?
>>>>>>>> Antonio
>>>>>>>>
>>>>>>>>
>>>>>>>> 2014/1/4 George Gastaldi <ggastald at 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.
>>>>>>>>>
>>>>>>>>> Em 04/01/2014, às 13:53, Antonio Goncalves <
>>>>>>>>> antonio.mailing at gmail.com> escreveu:
>>>>>>>>>
>>>>>>>>> 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 at redhat.com>
>>>>>>>>>
>>>>>>>>>> REST generation from JPA entities is already functional too.
>>>>>>>>>> Use rest-setup and rest-endpoint-from-entity
>>>>>>>>>>
>>>>>>>>>> Em 04/01/2014, às 11:52, Antonio Goncalves <
>>>>>>>>>> antonio.mailing at gmail.com> escreveu:
>>>>>>>>>>
>>>>>>>>>> Hum... I forgot, I also need REST scaffolding.... might be a bit
>>>>>>>>>> tight in schedule....
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2014/1/3 George Gastaldi <ggastald at 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,
>>>>>>>>>>>
>>>>>>>>>>> George
>>>>>>>>>>>
>>>>>>>>>>> Em 03/01/2014, às 19:04, Antonio Goncalves <
>>>>>>>>>>> antonio.mailing at gmail.com> escreveu:
>>>>>>>>>>>
>>>>>>>>>>> Hi 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 scaffolding
>>>>>>>>>>>
>>>>>>>>>>> So I was just wondering if this would be available on Monday for
>>>>>>>>>>> a Beta5 so I could use it
>>>>>>>>>>>
>>>>>>>>>>> Thank
>>>>>>>>>>>
>>>>>>>>>>> (just joking ;o)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Antonio Goncalves
>>>>>>>>>>> Software architect and Java Champion
>>>>>>>>>>>
>>>>>>>>>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>>>>>>>>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>>>>>>>>>> | Devoxx France <http://www.devoxx.fr/>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> forge-users mailing list
>>>>>>>>>>> forge-users at lists.jboss.org
>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> forge-users mailing list
>>>>>>>>>>> forge-users at lists.jboss.org
>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Antonio Goncalves
>>>>>>>>>> Software architect and Java Champion
>>>>>>>>>>
>>>>>>>>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>>>>>>>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>>>>>>>>> | Devoxx France <http://www.devoxx.fr/>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> forge-users mailing list
>>>>>>>>>> forge-users at lists.jboss.org
>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> forge-users mailing list
>>>>>>>>>> forge-users at lists.jboss.org
>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Antonio Goncalves
>>>>>>>>> Software architect and Java Champion
>>>>>>>>>
>>>>>>>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>>>>>>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>>>>>>>> | Devoxx France <http://www.devoxx.fr/>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> forge-users mailing list
>>>>>>>>> forge-users at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> forge-users mailing list
>>>>>>>>> forge-users at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Antonio Goncalves
>>>>>>>> Software architect and Java Champion
>>>>>>>>
>>>>>>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>>>>>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>>>>>>> | Devoxx France <http://www.devoxx.fr/>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> forge-users mailing list
>>>>>>>> forge-users at 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 at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Antonio Goncalves
>>>>>> Software architect and Java Champion
>>>>>>
>>>>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>>>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>>>>> | Devoxx France <http://www.devoxx.fr/>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Antonio Goncalves
>>>>> Software architect and Java Champion
>>>>>
>>>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>>>> | Devoxx France <http://www.devoxx.fr/>
>>>>>
>>>>> _______________________________________________
>>>>> forge-users mailing list
>>>>> forge-users at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> forge-users mailing list
>>>>> forge-users at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Antonio Goncalves
>>>> Software architect and Java Champion
>>>>
>>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>>> | Devoxx France <http://www.devoxx.fr/>
>>>>
>>>
>>>
>>>
>>> --
>>> Antonio Goncalves
>>> Software architect and Java Champion
>>>
>>> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
>>> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
>>> | Devoxx France <http://www.devoxx.fr/>
>>>
>>> _______________________________________________
>>> forge-users mailing list
>>> forge-users at 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 at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-users
>>
>
>
>
> --
> Antonio Goncalves
> Software architect and Java Champion
>
> Web site <http://www.antoniogoncalves.org/> | Twitter<http://twitter.com/agoncal>
> | LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org/>
> | Devoxx France <http://www.devoxx.fr/>
>
> _______________________________________________
> forge-users mailing list
> forge-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-users
>
--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-users/attachments/20140106/9b0d2708/attachment-0001.html
More information about the forge-users
mailing list