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@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-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@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@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@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@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@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@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@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@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@gmail.com> escreveu:

Hum... 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,

George

Em 03/01/2014, ŕs 19:04, Antonio Goncalves <antonio.mailing@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 : 

* 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 | 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



--
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



--
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