[forge-dev] Several architectural styles in Forge (was Wondering about coding convention)

Lincoln Baxter, III lincolnbaxter at gmail.com
Tue Oct 29 10:19:43 EDT 2013


Hey Antonio!

I'm definitely very interested in seeing more styles of programming
supported! I think this would be a great project. I am all for it.

The interesting part will be trying to determine appropriate patterns for
each style. REST APIs vary greatly, but if we can find some kind of best
practice, which based on your blog, it looks like you already have an idea
of, then I think that makes our job much simpler (and it is a complex job :)

So far, our command style is following this basic premise:

jpa-new-entity (instead of entity --named)
jpa-new-embedable
jpa-new-mapped-superclass --named Person
jpa-new-entity --named Vet --extends Person


{spec alias or acronym}-new-{something}
{spec alias or acronym}-{something}-from-{something else}

We have a dilemma with faces and CDI, though. Should we call them 'faces'
and 'rest' or "jsf" and "jaxrs", since we already have "jpa" "ejb" etc. I
think JAX-RS is the real issue, because most people know it as REST.

But back on topic, yes, I'm all for this!
~Lincoln

On Tue, Oct 29, 2013 at 9:49 AM, Antonio Goncalves <
antonio.mailing at gmail.com> wrote:

> Hi Vineet,
>
> I've published the blog : http://antoniogoncalves
> .org/2013/10/29/several-architectural-styles-with-java-ee-7/
>
> I've implemented the three different architectural styles and you can have
> a look at : https://github.com/agoncal/agoncal-sample-javaee
> /tree/master/03-TierArchitecture
>
> Unfortunately I still have an issue with the RESTendpoint doing a
> paginate (I've asked some help in the jersey mailing list, but still no
> news, you can have a look at :
> https://java.net/projects/jersey/lists/users/archive/2013-10/message/64
>
> If you look at the code for the three styles, there are not many changes.
> I would hope that Forge could help developers to generate different
> architectural styles. As I said, we could do something like this (depending
> on the future syntax : https://issues.jboss.org/browse/FORGE-944)
>
> * Horizontal :*
>
>    - jpa-scaffold-from-database
>    - jsf-scaffold-from-entity
>    - rest-scaffold-from-entity
>
>
> *EJB Centric :*
>
>    - jpa-scaffold-from-database
>    - ejb-scaffold-from-entity
>    - jsf-scaffold-from-ejb
>    - rest-scaffold-from-ejb
>
>
> *REST centric :*
>
>    - jpa-scaffold-from-database
>    - rest-scaffold-from-entity
>    - jsf-scaffold-from-rest
>
> If that interests you, I would be more than happy to contribute to
> something like that.
>
> Antonio
>
>
>
>
> 2013/10/21 Vineet Reynolds Pereira <vpereira at redhat.com>
>
>>
>>
>> ----- Original Message -----
>> > From: "Antonio Goncalves" <antonio.mailing at gmail.com>
>> > To: "forge-dev List" <forge-dev at lists.jboss.org>
>> > Sent: Monday, October 21, 2013 2:09:41 PM
>> > Subject: [forge-dev] Several architectural styles in Forge (was
>> Wondering about coding convention)
>> >
>> > 2013/10/21 Vineet Reynolds Pereira < vpereira at redhat.com >
>> >
>> >
>> >
>> >
>> >
>> > IMHO we should not be putting persistence concerns in either the JSF
>> beans or
>> > the REST resources.
>> > They should go into a service or a repository or whatever data access
>> pattern
>> > is suitable for the context.
>> > This is where we lack any standardization at the moment, and it would be
>> > better to not limit this exercise to improving the conventions alone,
>> but
>> > also the architecture.
>> >
>> >
>> > Vineet, this is the topic I'm writing about at the moment. To be
>> honest, I
>> > quite like to have persistent concerns in JSF beans and REST for certain
>> > projects... but not all, and that's where I thing Forge should give some
>> > choices. What I'm writing is about having 3 different architectural
>> styles
>> > that could be resume like this (using CLI) :
>> >
>> > Current (generates JSF/REST from entities) :
>> > jsf-scaffold-from-entity
>> > rest-scaffold-from-entity
>> >
>> > EJB Centric (add a service layer to deal with persistence) :
>> > ejb-scaffold-from-entity
>> > jsf-scaffold-from-ejb
>> > rest-scaffold-from-ejb
>> >
>> > REST centric (the JSF backing beans use the REST endpoint, using JAX-RS
>> 2.0
>> > Client API) :
>> > rest-scaffold-from-entity
>> > jsf-scaffold-from-rest
>> >
>>
>> Very interesting. I was about to suggest linking any work in this space
>> with FORGE-944.
>> Overall, I get the impression that we should structure commands based on
>> developer workflows given common architectural styles.
>>
>> I'll await your post.
>>
>> >
>> > I will let you know when the post is written, it will be clearer
>> >
>> > --
>> > Antonio Goncalves
>> > Software architect and Java Champion
>> >
>> > Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>> >
>> > _______________________________________________
>> > forge-dev mailing list
>> > forge-dev at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/forge-dev
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>
>
>
> --
> 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-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
>



-- 
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20131029/8550d621/attachment-0001.html 


More information about the forge-dev mailing list