[forge-users] Scaffolding in Forge 2.x (was Beta5 next Monday ?)

Antonio Goncalves antonio.mailing at gmail.com
Sun Jan 5 09:07:33 EST 2014


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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-users/attachments/20140105/ea528eb6/attachment-0001.html 


More information about the forge-users mailing list