You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by Thiago H de Paula Figueiredo <th...@arsmachina.com.br> on 2014/12/07 03:49:23 UTC

BeanModel and Commons package

Hi!

As I've mentioned some time ago, I realized the BeanModel classes from  
tapestry-core would an awesome, easy-to-use, fast Java property reflection  
library if it was a library of its own, specially POJO mapping and binding  
ones like JAXB or Jackson. That's what I did today. ;)

All this work was done on the 'beanmodel-split' branch. I invite everyone  
to take a look and all feedback, constructive or destructive, will be most  
welcome. If no one objects in the next couple of weeks, I'll merge it into  
the master branch.

I've created two new subprojects: BeanModel and Commons. Basically, the  
BeanModel subproject is the set of classes and interfaces needed to obtain  
BeanModel instances. The Commons one contains stuff needed by BeanModel,  
but made more sense in a JAR of its own then stuffed inside the BeanModel  
one. Now tapestry-ioc has a dependency on BeanModel, which has a  
dependency on Commons.

I did this refactoring taking extreme care on backward-compatibility and  
changing or moving as little code as possible. Indeed, around a handful  
files had actual code changes. Classes that  were moved from tapestry-core  
and tapestry-ioc to BeanModel or Commons are in the same package as  
before, so no code using the BeanModel classes will be broken by this  
change (assuming it has the BeanModel and Commons JARs in the classpath,  
of course). Git detects it as file renames. I did have to refactor a  
couple internal classes, specially InternalUtils, which had part of it  
broken off to Commons' InternalCommonsUtils. I've also created  
BeanModelSourceBuilder for making it easy to create BeanModelSource  
objects without Tapestry-IoC, even its JavaDoc saying T-IoC is the  
recommended approach. BeanModelSourceBuilderTest test it.

Cheers!

-- 
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: BeanModel and Commons package

Posted by Howard Lewis Ship <hl...@gmail.com>.
The test referenced classes that had moved, with a little juggling, I got
it all to work.

On Mon, Dec 29, 2014 at 6:03 AM, Lance Java <la...@googlemail.com>
wrote:

> Educated stab in the dark here but does ClasspathScannerImpl assume each
> package is contained within a single jar?
>
> I'm guessing Thiago's changes involved splitting a single package across 2
> (maybe 3) jars to maintain backwards compatibility.
> On 23 Dec 2014 23:00, "Howard Lewis Ship" <hl...@gmail.com> wrote:
>
> > I'm doing a build of latest, currently.  Seeing one oddity:
> >
> > ioc.specs.ClasspathScannerImplSpec > can locate classes inside a
> > subpackage, inside an extracted JAR file FAILED
> >     org.spockframework.runtime.ConditionNotSatisfiedError at
> > ClasspathScannerImplSpec.groovy:40
> >
> > 708 tests completed, 1 failed, 2 skipped
> > :tapestry-ioc:test FAILED
> >
> > Off to investigate.
> >
> > On Mon, Dec 22, 2014 at 5:12 AM, Jochen Kemnade <ke...@gmail.com>
> wrote:
> >
> > > I have to admit that I didn't have a chance to look into the changes
> you
> > > made yet, and probably, I won't get to doing that until 2015.
> > > But a new beta would be a good way to make more people (including me)
> > give
> > > them a try in the near future, so I'd say, just go ahead. :-)
> > >
> >
> >
> >
> > --
> > Howard M. Lewis Ship
> >
> > Creator of Apache Tapestry
> >
> > The source for Tapestry training, mentoring and support. Contact me to
> > learn how I can get you up and productive in Tapestry fast!
> >
> > (971) 678-5210
> > http://howardlewisship.com
> > @hlship
> >
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com
@hlship

Re: BeanModel and Commons package

Posted by Lance Java <la...@googlemail.com>.
Educated stab in the dark here but does ClasspathScannerImpl assume each
package is contained within a single jar?

I'm guessing Thiago's changes involved splitting a single package across 2
(maybe 3) jars to maintain backwards compatibility.
On 23 Dec 2014 23:00, "Howard Lewis Ship" <hl...@gmail.com> wrote:

> I'm doing a build of latest, currently.  Seeing one oddity:
>
> ioc.specs.ClasspathScannerImplSpec > can locate classes inside a
> subpackage, inside an extracted JAR file FAILED
>     org.spockframework.runtime.ConditionNotSatisfiedError at
> ClasspathScannerImplSpec.groovy:40
>
> 708 tests completed, 1 failed, 2 skipped
> :tapestry-ioc:test FAILED
>
> Off to investigate.
>
> On Mon, Dec 22, 2014 at 5:12 AM, Jochen Kemnade <ke...@gmail.com> wrote:
>
> > I have to admit that I didn't have a chance to look into the changes you
> > made yet, and probably, I won't get to doing that until 2015.
> > But a new beta would be a good way to make more people (including me)
> give
> > them a try in the near future, so I'd say, just go ahead. :-)
> >
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator of Apache Tapestry
>
> The source for Tapestry training, mentoring and support. Contact me to
> learn how I can get you up and productive in Tapestry fast!
>
> (971) 678-5210
> http://howardlewisship.com
> @hlship
>

Re: BeanModel and Commons package

Posted by Howard Lewis Ship <hl...@gmail.com>.
I'm doing a build of latest, currently.  Seeing one oddity:

ioc.specs.ClasspathScannerImplSpec > can locate classes inside a
subpackage, inside an extracted JAR file FAILED
    org.spockframework.runtime.ConditionNotSatisfiedError at
ClasspathScannerImplSpec.groovy:40

708 tests completed, 1 failed, 2 skipped
:tapestry-ioc:test FAILED

Off to investigate.

On Mon, Dec 22, 2014 at 5:12 AM, Jochen Kemnade <ke...@gmail.com> wrote:

> I have to admit that I didn't have a chance to look into the changes you
> made yet, and probably, I won't get to doing that until 2015.
> But a new beta would be a good way to make more people (including me) give
> them a try in the near future, so I'd say, just go ahead. :-)
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com
@hlship

Re: BeanModel and Commons package

Posted by Jochen Kemnade <ke...@gmail.com>.
I have to admit that I didn't have a chance to look into the changes you
made yet, and probably, I won't get to doing that until 2015.
But a new beta would be a good way to make more people (including me) give
them a try in the near future, so I'd say, just go ahead. :-)

Re: BeanModel and Commons package

Posted by Thiago H de Paula Figueiredo <th...@arsmachina.com.br>.
On Sun, 07 Dec 2014 00:49:23 -0200, Thiago H de Paula Figueiredo  
<th...@arsmachina.com.br> wrote:

> All this work was done on the 'beanmodel-split' branch. I invite  
> everyone to take a look and all feedback, constructive or destructive,  
> will be most welcome. If no one objects in the next couple of weeks,  
> I'll merge it into the master branch.

A couple weeks later, nobody objected, so I merged the beanmodel-split  
branch into master, committed and pushed.

What about a new beta so we can test it before the final 5.4 release?

-- 
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: BeanModel and Commons package

Posted by Howard Lewis Ship <hl...@gmail.com>.
interesting. I think if we had access to Gradle and Git longer in the past,
we would have seen Tapestry as more small libraries in the first place.
Certainly that's the approach I've been taking in my Clojure efforts.

On Saturday, December 6, 2014, Thiago H de Paula Figueiredo <
thiago@arsmachina.com.br> wrote:

> Hi!
>
> As I've mentioned some time ago, I realized the BeanModel classes from
> tapestry-core would an awesome, easy-to-use, fast Java property reflection
> library if it was a library of its own, specially POJO mapping and binding
> ones like JAXB or Jackson. That's what I did today. ;)
>
> All this work was done on the 'beanmodel-split' branch. I invite everyone
> to take a look and all feedback, constructive or destructive, will be most
> welcome. If no one objects in the next couple of weeks, I'll merge it into
> the master branch.
>
> I've created two new subprojects: BeanModel and Commons. Basically, the
> BeanModel subproject is the set of classes and interfaces needed to obtain
> BeanModel instances. The Commons one contains stuff needed by BeanModel,
> but made more sense in a JAR of its own then stuffed inside the BeanModel
> one. Now tapestry-ioc has a dependency on BeanModel, which has a dependency
> on Commons.
>
> I did this refactoring taking extreme care on backward-compatibility and
> changing or moving as little code as possible. Indeed, around a handful
> files had actual code changes. Classes that  were moved from tapestry-core
> and tapestry-ioc to BeanModel or Commons are in the same package as before,
> so no code using the BeanModel classes will be broken by this change
> (assuming it has the BeanModel and Commons JARs in the classpath, of
> course). Git detects it as file renames. I did have to refactor a couple
> internal classes, specially InternalUtils, which had part of it broken off
> to Commons' InternalCommonsUtils. I've also created BeanModelSourceBuilder
> for making it easy to create BeanModelSource objects without Tapestry-IoC,
> even its JavaDoc saying T-IoC is the recommended approach.
> BeanModelSourceBuilderTest test it.
>
> Cheers!
>
> --
> Thiago H. de Paula Figueiredo
> Tapestry, Java and Hibernate consultant and developer
> http://machina.com.br
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>

-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com
@hlship