Using some Stripes classes in my own framework

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Using some Stripes classes in my own framework

Grzegorz Krugły
I love Stripes Framework and have used it heavily, but my needs are a
bit bigger than the framework itself provides. I thought of extending
Stripes, but what I'm trying to accomplish, doesn't turn out to be
simple when based on vanilla Stripes. So, I've decided to give it a try
and create my own framework.

Please, do not comment about the hundredth JavaEE web framework. I know
it's hell and I know about NIH syndrome, but I'll create it anyway,
because I have ideas that no framework I've tried implements and that
are not easily integrated on top of existing framework. It's probably
going to be just for my internal use, I'm considering open sourcing it
or selling it.

I'd love to reuse some of Stripes' code (about 5 or 10 classes, I guess)
and therefore I'd like to know what is your take on licensing. Is it OK
if I just leave the classes, along with all licence and author
information in the comments, untouched? What if I need to modify the
code? Do I give my changes back, what if they're not beneficial to
Stripes? Do I HAVE TO open source whole my framework (I'm thinking of
doing it, but not yet sure)? Can I sell it? Can I move classes to
another package? What credit will be considered enough when I distribute
my framework and what credit would users of my framework give to Stripes?

I've never done that and don't want to go wrong or insult anyone in any
way :-) I don't feel like reinventing the wheel though and am not sure I
understand Apache 2 license enough to answer my questions myself...

------------------------------------------------------------------------------
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users
Reply | Threaded
Open this post in threaded view
|

Re: Using some Stripes classes in my own framework

Ben Gunter

Before you get started on your framework, you might want to have a look at Loom. It is a Stripes fork.

-Ben

On Fri, Sep 21, 2012 at 2:04 PM, gshegosh <[hidden email]> wrote:
I love Stripes Framework and have used it heavily, but my needs are a
bit bigger than the framework itself provides. I thought of extending
Stripes, but what I'm trying to accomplish, doesn't turn out to be
simple when based on vanilla Stripes. So, I've decided to give it a try
and create my own framework.

Please, do not comment about the hundredth JavaEE web framework. I know
it's hell and I know about NIH syndrome, but I'll create it anyway,
because I have ideas that no framework I've tried implements and that
are not easily integrated on top of existing framework. It's probably
going to be just for my internal use, I'm considering open sourcing it
or selling it.

I'd love to reuse some of Stripes' code (about 5 or 10 classes, I guess)
and therefore I'd like to know what is your take on licensing. Is it OK
if I just leave the classes, along with all licence and author
information in the comments, untouched? What if I need to modify the
code? Do I give my changes back, what if they're not beneficial to
Stripes? Do I HAVE TO open source whole my framework (I'm thinking of
doing it, but not yet sure)? Can I sell it? Can I move classes to
another package? What credit will be considered enough when I distribute
my framework and what credit would users of my framework give to Stripes?

I've never done that and don't want to go wrong or insult anyone in any
way :-) I don't feel like reinventing the wheel though and am not sure I
understand Apache 2 license enough to answer my questions myself...

------------------------------------------------------------------------------
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users


------------------------------------------------------------------------------
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users
Reply | Threaded
Open this post in threaded view
|

Re: Using some Stripes classes in my own framework

VANKEISBELCK Remi
Interesting... 

What kind of stuff are you trying to achieve ?
I mean, what is your requirement that no other fwk supports ? 

I'm asking 'cause I've actually been maintaining my own Stripes-based full stack with its own design principles (facet-driven) called "Woko" :

We're using it extensively in many apps we do. Maybe there are similarities with what you think about ?

Cheers

Remi


2012/9/21 Ben Gunter <[hidden email]>

Before you get started on your framework, you might want to have a look at Loom. It is a Stripes fork.

-Ben


On Fri, Sep 21, 2012 at 2:04 PM, gshegosh <[hidden email]> wrote:
I love Stripes Framework and have used it heavily, but my needs are a
bit bigger than the framework itself provides. I thought of extending
Stripes, but what I'm trying to accomplish, doesn't turn out to be
simple when based on vanilla Stripes. So, I've decided to give it a try
and create my own framework.

Please, do not comment about the hundredth JavaEE web framework. I know
it's hell and I know about NIH syndrome, but I'll create it anyway,
because I have ideas that no framework I've tried implements and that
are not easily integrated on top of existing framework. It's probably
going to be just for my internal use, I'm considering open sourcing it
or selling it.

I'd love to reuse some of Stripes' code (about 5 or 10 classes, I guess)
and therefore I'd like to know what is your take on licensing. Is it OK
if I just leave the classes, along with all licence and author
information in the comments, untouched? What if I need to modify the
code? Do I give my changes back, what if they're not beneficial to
Stripes? Do I HAVE TO open source whole my framework (I'm thinking of
doing it, but not yet sure)? Can I sell it? Can I move classes to
another package? What credit will be considered enough when I distribute
my framework and what credit would users of my framework give to Stripes?

I've never done that and don't want to go wrong or insult anyone in any
way :-) I don't feel like reinventing the wheel though and am not sure I
understand Apache 2 license enough to answer my questions myself...

------------------------------------------------------------------------------
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users


------------------------------------------------------------------------------
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users



------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users
Reply | Threaded
Open this post in threaded view
|

Re: Using some Stripes classes in my own framework

Grzegorz Krugły
Well, main points would be:
  1. Tight integration with Web Content Management - so the same tools are used for simple static HTML page editing AND for "built in" pages with forms, grids, etc. So users can for instance easily add a picture and a message to log in form.
  2. A don't-repeat-yourself mechanism to quickly build forms from JPA entities and their relations. I don't want a scaffolding code generator, I want a mechanism that takes POJOs with maybe some annotations on fields and generates a form and two way form<-->POJO mapping with defaults sane enough for 95% of usual cases.
  3. Built in support for CSS extensions such as SASS and combining, minimizing and versioning static files.

I don't know how many of you do PHP work and know SilverStripe CMS, but I like their approach a lot. Of course PHP is hell and SilverStripe is far from perfect, but the speed with which I can build complex websites with custom forms that nicely integrate in the management panel is impressive and I would love to marry their form and grid concepts with Stripes approach.

Fulfilling first two points using existing framework makes model and code too complex in my opinion (I HAVE a private framework fulfilling point 1 based on Stripes, use it since 2008 and it's grown very complex over the years) -- such a tight integration requires work at lower abstraction level than frameworks expose.

More of my wishes, which are nicely done by Stripes (except maybe special JSP tags for form fields, but not sure if it's possible to get rid of them at all) and I'd love to "steal" them:
  1. No command line tools - I prefer coding in Java using IDE, not some scripts using bash.
  2. No code generation - it looks good while doing Hello World tutorials but when the project is 2 years old and changes are neccessary, it usually gets in the way.
  3. No fancy JVM languages -- it's hard enough to find good Java developers, so I'm not going to look for Groovy, Scala or JRuby ones.
  4. Simplicity, no magic or bending standard JavaEE rules - I need ability to debug, understand what's going on inside the framework and get meaningful stacktraces.
  5. Focused scope, small size - I don't want the framework to do my dishes and contain code for that strange task I'm never gonna need to implement. I want it to do one thing and do it well.
  6. No special templating engines - JSP is enough and if used wisely without inserting Java code, but just EL and JSTL, it is elegant enough.
  7. No XML and no more than 1 simple config file. Also, no annotation craze -- most common case should require next to none metadata.
  8. No convention over configuration at all cost. I want the framework to have sane defaults, but I don't want someone's convention shoved down my throat.
  9. No javascript and CSS componentization, and if they're gonna force me to use a javascript library, I can only accept jQuery ;-)



W dniu 22.09.2012 10:00, VANKEISBELCK Remi pisze:
Interesting... 

What kind of stuff are you trying to achieve ?
I mean, what is your requirement that no other fwk supports ? 



------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users
Reply | Threaded
Open this post in threaded view
|

Re: Using some Stripes classes in my own framework

VANKEISBELCK Remi
Comments inlined...

Le 22 sept. 2012 à 11:15, Grzegorz Krugły a écrit :

Well, main points would be:
  1. Tight integration with Web Content Management - so the same tools are used for simple static HTML page editing AND for "built in" pages with forms, grids, etc. So users can for instance easily add a picture and a message to log in form.
By "users" you mean users of the app, or some kind of "developer" or "content manager" role ?
  1. A don't-repeat-yourself mechanism to quickly build forms from JPA entities and their relations. I don't want a scaffolding code generator, I want a mechanism that takes POJOs with maybe some annotations on fields and generates a form and two way form<-->POJO mapping with defaults sane enough for 95% of usual cases.

Well you should definitely have a look at Woko ! It actually does exactly that. We call it "ObjectRenderer" : feed it with any Object and it uses reflection (and facets) in order to render it with FORM elements (text fields, checkboxes, selects etc.). And it's fully configurable on a Class / user role basis.

  1. Built in support for CSS extensions such as SASS and combining, minimizing and versioning static files.

Kindof rail's "assets" ? Excellent, I'm thinking of something similar for Woko.
  1. No command line tools - I prefer coding in Java using IDE, not some scripts using bash.

We have command-line tooling, but it's more a didactical thing : you can do everything inside your IDE.  

  1. No code generation - it looks good while doing Hello World tutorials but when the project is 2 years old and changes are neccessary, it usually gets in the way.

Woko doesn't generate anything. It's fully dynamic.

  1. No fancy JVM languages -- it's hard enough to find good Java developers, so I'm not going to look for Groovy, Scala or JRuby ones.
Woko is written in pure Java. You can use Java or anything in order to write facets, and all your code.

  1. Simplicity, no magic or bending standard JavaEE rules - I need ability to debug, understand what's going on inside the framework and get meaningful stacktraces.

Same again. Pure Java, a very lightweight codebase...

  1. Focused scope, small size - I don't want the framework to do my dishes and contain code for that strange task I'm never gonna need to implement. I want it to do one thing and do it well.

Well, this is a bit subjective : what do you want it to do ? But I think I get the idea... 

  1. No special templating engines - JSP is enough and if used wisely without inserting Java code, but just EL and JSTL, it is elegant enough.

In my arms :)

  1. No XML and no more than 1 simple config file. Also, no annotation craze -- most common case should require next to none metadata.

Woko is convention-over config, uses classpath scanning etc. it doesn't require anything to startup excepted a small Java class that "boots up" everything.
It does use annotations though : it has 1 annotation that you use on the components you write, and Stripes' and JPA (if you use Annotation Mapping) and Bean Validation (if you use annotation mapping again). 

Of course, it's far from stuff like WebBeans etc. : Woko doesn't require you to write annotations, just use some. 

  1. No convention over configuration at all cost. I want the framework to have sane defaults, but I don't want someone's convention shoved down my throat.

Yep. 

  1. No javascript and CSS componentization, and if they're gonna force me to use a javascript library, I can only accept jQuery ;-)

Woko's default pages don't need JS. The "work flow" is fully "good old page reload" by default. You can change this of course, but there ain't nothing fancy by default. Oh, yeah, we have a "bootstrap" skin that uses twitter bootstrap... and JQuery.
Woko's RPC JavaScript API works with JQuery or Dojo...

I definitely think you should have a look at Woko. It actually does almost everything you need, and maybe more... 
And I'd be definitely interested by your feedback : you raise very good points IMHO !!

The docs are sparse and probably outdated some times, but the framework ain't : we actively use it to ship various apps. 
So just drop us an email there if you have any question :

It'd be my pleasure to answer you !

 Cheers

Remi 


------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users

signature.asc (506 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using some Stripes classes in my own framework

Grzegorz Krugły
W dniu 22.09.2012 13:27, Remi VANKEISBELCK pisze:
> Comments inlined...

Doing the same...


>>  1. Tight integration with Web Content Management - so the same tools
>>     are used for simple static HTML page editing AND for "built in"
>>     pages with forms, grids, etc. So users can for instance easily add
>>     a picture and a message to log in form.
> By "users" you mean users of the app, or some kind of "developer" or
> "content manager" role ?

I mean users of the app. What I like about SilverStripe is that you
install it and you instantly have user and content management. You can
then create a new Page type that has custom fields, with custom GUI and
that gets placed in the CMS tree and renders using standard mechanisms.
I try to mimic this.

> Well you should definitely have a look at Woko ! It actually does
> exactly that. We call it "ObjectRenderer" : feed it with any Object and
> it uses reflection (and facets) in order to render it with FORM elements
> (text fields, checkboxes, selects etc.). And it's fully configurable on
> a Class / user role basis.

Sounds interesting, will take a look.

>>  3. Built in support for CSS extensions such as SASS and combining,
>>     minimizing and versioning static files.
>
> Kindof rail's "assets" ? Excellent, I'm thinking of something similar
> for Woko.

I don't really know rails. But probably yes ;-)

> Woko doesn't generate anything. It's fully dynamic.

What do you mean by that? I was rather thinking of one-time
initialization on deployment, but yes - automatic, based on existing
code and annotations.


> Woko is written in pure Java. You can use Java or anything in order to
> write facets, and all your code.

Cool.

>>  5. Focused scope, small size - I don't want the framework to do my
>>     dishes and contain code for that strange task I'm never gonna need
>>     to implement. I want it to do one thing and do it well.
>
> Well, this is a bit subjective : what do you want it to do ? But I think
> I get the idea...

More or less what SilverStripe does but better executed and NOT in PHP ;-)

> Woko is convention-over config, uses classpath scanning etc. it doesn't
> require anything to startup excepted a small Java class that "boots up"
> everything.
> It does use annotations though : it has 1 annotation that you use on the
> components you write, and Stripes' and JPA (if you use Annotation
> Mapping) and Bean Validation (if you use annotation mapping again).

I don't mind using some annotations, Stripes is nice in this regards.
But when I look at some of Spring or Hibernate classes, there's more @
than normal lines of code -- I strongly dislike this, because it just
looks like they've moved XMLs to annotations without ever thinking about
improving it.

>>  9. No javascript and CSS componentization, and if they're gonna force
>>     me to use a javascript library, I can only accept jQuery ;-)
>
> Woko's default pages don't need JS. The "work flow" is fully "good old
> page reload" by default. You can change this of course, but there ain't
> nothing fancy by default. Oh, yeah, we have a "bootstrap" skin that uses
> twitter bootstrap... and JQuery.
> Woko's RPC JavaScript API works with JQuery or Dojo...

Nice. I also want to integrate Bootstrap. I think You have similar ideas
to me, I want my framework to still be based on "good old reload", but
also automate data moving from Entities to Forms to HTML and back.


> I definitely think you should have a look at Woko. It actually does
> almost everything you need, and maybe more...
> And I'd be definitely interested by your feedback : you raise very good
> points IMHO !!

I'll take a look at Woko. But...

> The docs are sparse and probably outdated some times, but the framework
> ain't : we actively use it to ship various apps.

...that's one main point, I forgot to write in my last e-mail. I am
committed to spending at least 30-40% of my time writing my framework on
writing documentation. I want to have nice javadocs (Stripes is
brilliant in this regard) and I want to have nice documentation along
with how-tos.

What's stopping me from finding my ideal framework is very probably lack
of documentation for most of them. It'll take less of my time and
resources to implement my own framework than it would to deeply test all
of existing ones. This sucks, but that's how the world works.

> So just drop us an email there if you have any question :
> [hidden email] <mailto:[hidden email]>

Thanks. I'll most likely go on with developing my own (I've already
designed most of it and started some proof of concept implementations),
but I'm open on cooperation and if I can take something good from Woko
or give something good back -- I'm all for it.



------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Stripes-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-users