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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)gmail.com> escreveu:
>>>>>>>>>>
>>>>>>>>>> Hum... I forgot, I also need REST scaffolding....
might be a bit
>>>>>>>>>> tight in schedule....
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2014/1/3 George Gastaldi
<ggastald(a)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(a)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-...)
>>>>>>>>>>> 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(a)lists.jboss.org
>>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>> forge-users mailing list
>>>>>>>>>>> forge-users(a)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(a)lists.jboss.org
>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> forge-users mailing list
>>>>>>>>>> forge-users(a)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(a)lists.jboss.org
>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> forge-users mailing list
>>>>>>>>> forge-users(a)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(a)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(a)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(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/forge-users
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> forge-users mailing list
>>>>> forge-users(a)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(a)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(a)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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-users
>
--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."