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

Antonio Goncalves antonio.mailing at gmail.com
Mon Jan 6 13:01:35 EST 2014


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


More information about the forge-users mailing list