Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Alessio Gambi
Sorry ... The phone tricked me, and I send a draft of the email :)


If we pass over my syntactical and grammatical errors I think you will 
understand the main message anyway.


Cheers

-- Alessio

On 7-ago-2013, at 08:35, Alessio Gambi  wrote:

>> I am not sure that there is enough of an audience for two books.
>> Perhaps you can cooperate with Igor to get your content into his book?
>> There would be a lot of marketing synergy there at least.
> Writing a book is a huge commitment and takes usually a lot of time; and if 
> we consider the fast pace at which T5 is evolving lately I do not think that 
> writing another one-man-book is the best strategy.
> 
> Why don't we -as a community- collaborate towards a Web magazine/journal or 
> any other form of periodic publication ?
> 
> Main reasons that I see in favor of this more flexible (agile if you like):
> 
> - papers are more focused and requires in general less effort than a book. 
> They have a fixed number of pages so authors are 'forced' to just say what it 
> is important... Extensive code and additional examples can be also published 
> somewhere else.
> 
> - articles are cheaper (free if the authors wish) to sell and easier to 
> distribute (google scholar like)
> 
> - several authors can contribute to a single article and several papers can 
> be merged into a more concrete/solid publications (book chapters). Making 
> collaboration a daily activity.
> 
> - committers and other members of the community can contribute also by 
> reviewing the various contributions. This will raise the quality of the 
> publications and will give credibility to them. 
> Remember that peer review is MUST be done in a voluntary fashion for many 
> reasons, 
> I

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Alessio Gambi
> I am not sure that there is enough of an audience for two books.
> Perhaps you can cooperate with Igor to get your content into his book?
> There would be a lot of marketing synergy there at least.
Writing a book is a huge commitment and takes usually a lot of time; and if we 
consider the fast pace at which T5 is evolving lately I do not think that 
writing another one-man-book is the best strategy.

Why don't we -as a community- collaborate towards a Web magazine/journal or any 
other form of periodic publication ?

Main reasons that I see in favor of this more flexible (agile if you like):

- papers are more focused and requires in general less effort than a book. They 
have a fixed number of pages so authors are 'forced' to just say what it is 
important... Extensive code and additional examples can be also published 
somewhere else.

- articles are cheaper (free if the authors wish) to sell and easier to 
distribute (google scholar like)

- several authors can contribute to a single article and several papers can be 
merged into a more concrete/solid publications (book chapters). Making 
collaboration a daily activity.

- committers and other members of the community can contribute also by 
reviewing the various contributions. This will raise the quality of the 
publications and will give credibility to them. 
Remember that peer review is MUST be done in a voluntary fashion for many 
reasons, 
I
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Lenny Primak
I was going to write a message, but most of what I wanted to say was already 
said.
I am not sure that there is enough of an audience for two books.
Perhaps you can cooperate with Igor to get your content into his book?
There would be a lot of marketing synergy there at least.

On Aug 5, 2013, at 4:13 PM, Thiago H de Paula Figueiredo wrote:

> Hi!
> 
> I've said a handful of times in this mailing list that I'd love to write a 
> book on Tapestry. With crowdsourcing sites like Kickstarter and Indiegogo, I 
> can check whether there's demand enough for the book before writing. In 
> addition, it seems I'll have the free time needed to start working seriously 
> on it. (By the way, if you need Tapestry consulting or development, e-mail 
> me!).
> 
> Igor already wrote a very nice book about Tapestry, more targeted at people 
> trying to learn the framework, so I won't replicate his effort. Instead, I'm 
> thinking at complementing it. I'm thinking of the following question that may 
> be asked by someone who finished Igor's book: now that I can write webapps in 
> Tapestry, what else could I learn to have a deep, even internal knowledge of 
> it, so I know what to look to implement more advanced, specific stuff that 
> uses the framework flexibility to suit my needs?
> 
> I've written a proposal of the table of contents at 
> http://www.arsmachina.com.br/masteringApacheTapestry.html. Feel free to 
> suggest anything about it.
> 
> Some notes:
> 
> * It may look wrong in the beggining, but the book starts with a deep look at 
> Tapestry-IoC. Everything else in the book will need T-IoC. And, if you really 
> want to dive deep into Tapestry-core, you'll need to know T-IoC very well.
> 
> * There will be lots of code examples. Ideally, one for anything which could 
> be better exemplified with code. They'll be freely downloadable, probably 
> with their sources in GitHub.
> 
> * I thought about a cookbook section, but I'm not sure what people would find 
> interesting.
> 
> * You may suggest by asking questions about Tapestry or how to implement 
> something with it, even if it sounds preposterous.
> 
> * At least for now, an A4-formatted (for better viewing of code examples), 
> DRM-free PDF file will be only option available.
> 
> * I haven't defined the price yet, but it'll be in the 20 to 30 dollars 
> range, probably in the middle.
> 
> * I'll just create the Indiegogo campaign if there's enough buzz in the 
> mailing list. Kickstarter isn't an option because, as you may already know, 
> I'm a Brazilian living in Brazil and Kickstarter only accepts campaigns from 
> USA citizens.
> 
> What do you guys think? All feedback is welcome. :)
> 
> Cheers!
> 
> -- 
> Thiago H. de Paula Figueiredo
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
> 


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: [OT] T5-IoC in Fantom

2013-08-06 Thread Howard Lewis Ship
No distributed configuration?


On Tue, Aug 6, 2013 at 5:04 PM, Howard Lewis Ship  wrote:

> Well, I hope you had a chance to address some of the things that are not
> perfect in T5 IoC!
>
>
> On Tue, Aug 6, 2013 at 4:23 PM, Steve Eynon <
> steve.ey...@alienfactory.co.uk> wrote:
>
>> Hello,
>>
>> If imitation is the sincerest form of flattery then T5-IoC has been paid a
>> huge compliment...
>>
>> ...there's an IoC in the language Fantom that bears a striking resemblance
>> to T5-IoC!
>>
>> afIoc - http://repo.status302.com/doc/afIoc/#overview
>>
>> I've been an avid fan of Tapestry since v3, and with the advent of T5 I've
>> learnt to adore T5-IoC - the foundation of all my apps (both desktop and
>> web). So much so, as I'm now (slowly) moving away from Java, I couldn't
>> bear to leave it behind.
>>
>> As my new language of choice, Fantom http://fantom.org/ , didn't have an
>> IoC, I took it upon myself to implement one in the image of T5-IoC,
>> bringing with it all the goodness T5-IoC provides!
>>
>> I realise this post is slightly off topic, but I wanted to give
>> acknowledgement and thanks to all those inspiring T5-IoC developers, your
>> ideas are awesome! So, err, thanks!
>>
>> Um, I'll get my coat...
>>
>> Steve.
>>
>> Oh, for those who don't know Fantom, a reasonable quick overview is given
>> here:
>>
>> http://zeroturnaround.com/rebellabs/the-adventurous-developers-guide-to-jvm-languages-fantom/
>>
>
>
>
> --
> 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
>



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


Re: [OT] T5-IoC in Fantom

2013-08-06 Thread Howard Lewis Ship
Well, I hope you had a chance to address some of the things that are not
perfect in T5 IoC!


On Tue, Aug 6, 2013 at 4:23 PM, Steve Eynon
wrote:

> Hello,
>
> If imitation is the sincerest form of flattery then T5-IoC has been paid a
> huge compliment...
>
> ...there's an IoC in the language Fantom that bears a striking resemblance
> to T5-IoC!
>
> afIoc - http://repo.status302.com/doc/afIoc/#overview
>
> I've been an avid fan of Tapestry since v3, and with the advent of T5 I've
> learnt to adore T5-IoC - the foundation of all my apps (both desktop and
> web). So much so, as I'm now (slowly) moving away from Java, I couldn't
> bear to leave it behind.
>
> As my new language of choice, Fantom http://fantom.org/ , didn't have an
> IoC, I took it upon myself to implement one in the image of T5-IoC,
> bringing with it all the goodness T5-IoC provides!
>
> I realise this post is slightly off topic, but I wanted to give
> acknowledgement and thanks to all those inspiring T5-IoC developers, your
> ideas are awesome! So, err, thanks!
>
> Um, I'll get my coat...
>
> Steve.
>
> Oh, for those who don't know Fantom, a reasonable quick overview is given
> here:
>
> http://zeroturnaround.com/rebellabs/the-adventurous-developers-guide-to-jvm-languages-fantom/
>



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


[OT] T5-IoC in Fantom

2013-08-06 Thread Steve Eynon
Hello,

If imitation is the sincerest form of flattery then T5-IoC has been paid a
huge compliment...

...there's an IoC in the language Fantom that bears a striking resemblance
to T5-IoC!

afIoc - http://repo.status302.com/doc/afIoc/#overview

I've been an avid fan of Tapestry since v3, and with the advent of T5 I've
learnt to adore T5-IoC - the foundation of all my apps (both desktop and
web). So much so, as I'm now (slowly) moving away from Java, I couldn't
bear to leave it behind.

As my new language of choice, Fantom http://fantom.org/ , didn't have an
IoC, I took it upon myself to implement one in the image of T5-IoC,
bringing with it all the goodness T5-IoC provides!

I realise this post is slightly off topic, but I wanted to give
acknowledgement and thanks to all those inspiring T5-IoC developers, your
ideas are awesome! So, err, thanks!

Um, I'll get my coat...

Steve.

Oh, for those who don't know Fantom, a reasonable quick overview is given
here:
http://zeroturnaround.com/rebellabs/the-adventurous-developers-guide-to-jvm-languages-fantom/


Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Norman Franke
On Aug 6, 2013, at 7:22 AM, Thiago H de Paula Figueiredo  
wrote:

>> Some topics I'd be interested in:
>> - Application security, authentication and authorization- best practices
>> with several popular frameworks
> 
> Several popular frameworks? Which ones?
> 
> Doesn't this fall a little over the focus of the book, which is Tapestry 
> itself? The book can talk about setting up Apache Shiro via 
> tapestry-security, for example, but then talking about Shiro specifically 
> looks like lack of coesion (in the OOP sense) to me. Of course, security is 
> very important.

I think the fact that Tapestry doesn't offer a security framework out of the 
box is sort of silly in this day and age. I've never worked on a web site that 
didn't need authentication and authorization support. So I definitely think you 
should talk about it at least enough to implement a non-trivial application 
with custom login pages and database-driven users/roles. Going with whatever 
library is considered "best practice" should be enough, e.g. tapestry-security. 
Maybe best practice has yet to be written.

Solutions like tapestry-security cache page requires roles and changes don't 
take effect until you restart. Shiro caches roles between sessions, too, which 
leads to all sorts of problems if you change them. Basically, it still doesn't 
"just work" and a working, flexible solution needs to be there to use Tapestry 
for anything non-trivial.

One thing that always messes me up, and for which I've still never found a 
solution, is to have a login page loaded with HTTPS, form submission via HTTPS 
and then switch back to normal HTTP for performance. It just won't work due to 
the secure cookies. This is but one challenge to writing a full-featured 
application. 

Other topic ideas and elaborations on your ideas:

1. A decent example to do Grid Data Sources. I've written my own class, 
SQLQueryGridDataSource to make up for the inflexibility of Tapestry's built-in 
classes. You are welcome to my class, if desired. I'm sure just about everyone 
has written their own to be more flexible than HibernateGridDataSource.

2. AJAX: the biggest issue I've faced is wanting to put forms inside of a popup 
dialog, e.g. Modalbox. I'd love to see a well-written example that just works, 
including form validation (client and server). I've hacked up something that 
works for me, but it's not a component because the JavaScript needs to know too 
much about the page. I'm sure it's possible, I just haven't explored it enough. 
Another one is how to use something like Modalbox to do a confirm delete dialog 
on a button or link.

3. As many examples of customizing built-in Tapestry behavior as possible would 
be great. For example, I wrote a validator contribution that looks in 
.properties files so you can add validators to BeanEditorForms easily. That 
sort of stuff is nice to see how it should be done well, for example, I never 
could figure out how to allow for .properties inheritance (e.g. component, 
page, application-level.) 

4. You have symbols listed. A nice description of some of the more useful ones 
would be great. 

5. Load balancing and Tapestry under Tomcat and whatever other containers are 
popular. Included should be techniques to minimize session state while keeping 
excellent performance.

6. Publish and Subscribe, maybe via cometd. Integrating Apache CXF, too (as 
client and server.)

7. Elegant ways to extend Grids to support multiple HTML rows per data row. A 
more clever way to set default sorting. An example where you store sort order 
as preferences (e.g. in a database). 

8. Provide a library that implements a lot of the more commonly needed stuff, 
like #1, #2, a click once, ajax spinner, JodaTime support, etc.

9. Widget integration best practices (AJAX and non-AJAX.) Probably sticking to 
jQuery, since that seems to be the way of the future.

Anyway, I'd be interested in such a book. If you want to do Kickstarter, maybe 
Howard can "sponsor" it? 

Norman Franke
Answering Service for Directors, Inc.
www.myasd.com



Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Thiago H de Paula Figueiredo
On Tue, 06 Aug 2013 16:50:53 -0300, Matheus Eduardo Machado Moreira  
 wrote:



   It would be good to have a nice book about Tapestry-IOC. And your
explanations about the container could use a lot of Tapestry (web
framework) code. This could be a good strategy to a deep understanding
about IOC and Core at the same time.


Agreed.


   "Integration" is a subject in my mind too. It would be good to have
several examples that map to integrations that Spring provides
out-of-the-box. This part of the book could refer to existing Tapestry
plugins and analyse them or you could show how to write (or how to start
writing) integrations and services that provide similar features provided
by Spring.


This is all implemented basically by providing some beans/services and, in  
some cases, implementing AOP (decoration, advice) on them, so the  
Tapestry-IoC outline I provided already covers that, even if not  
explicitly.



   One framework that came to my mind, that is awsome and have a nice
Spring integration, is Apache Camel.


I think this is out of the focus of the book. I don't plan to include  
chapters or sections that demand knowing stuff which isn't Tapestry or  
Tapestry-IoC.


--
Thiago H. de Paula Figueiredo

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Matheus Eduardo Machado Moreira
   It would be good to have a nice book about Tapestry-IOC. And your
explanations about the container could use a lot of Tapestry (web
framework) code. This could be a good strategy to a deep understanding
about IOC and Core at the same time.

   "Integration" is a subject in my mind too. It would be good to have
several examples that map to integrations that Spring provides
out-of-the-box. This part of the book could refer to existing Tapestry
plugins and analyse them or you could show how to write (or how to start
writing) integrations and services that provide similar features provided
by Spring.

   One framework that came to my mind, that is awsome and have a nice
Spring integration, is Apache Camel.

   Atenciosamente,

Matheus Eduardo Machado Moreira
matheus@gmail.com


2013/8/6 Onno Scheffers 

> >
> >
> >  Some topics I'd be interested in:
> >> - Application security, authentication and authorization- best practices
> >> with several popular frameworks
> >>
> >
> > Several popular frameworks? Which ones?
> >
>
> I'd say the most popular ones are Shiro and Spring Security. So far I have
> only rolled my own based on the blog article by Howard a while ago.
> I see questions about authentication/authorization in Tapestry popup quite
> a bit so it deserves some attention, since pretty much any application
> requires it and it would really help if some popular solutions are
> explained in one place.
>
>
>
> > This is already covered in Igor's book, so I'm not sure my one really
> > needs to talk about it too. Anyway, using Spring beans in Tapestry-IoC is
> > easy.
> >
>
> To me it makes sense to at least show an example in a book because it is
> such a popular choice and so many people are familiar with it. I must admit
> I haven't read all of Igor's book yet. Sadly most of the projects that pay
> the bills for me do not include any Tapestry, so that book keeps getting
> pushed to the bottom of the stack, even though I really like what I have
> read so far.
>
>
> regards,
>
> Onno
>


Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Onno Scheffers
>
>
>  Some topics I'd be interested in:
>> - Application security, authentication and authorization- best practices
>> with several popular frameworks
>>
>
> Several popular frameworks? Which ones?
>

I'd say the most popular ones are Shiro and Spring Security. So far I have
only rolled my own based on the blog article by Howard a while ago.
I see questions about authentication/authorization in Tapestry popup quite
a bit so it deserves some attention, since pretty much any application
requires it and it would really help if some popular solutions are
explained in one place.



> This is already covered in Igor's book, so I'm not sure my one really
> needs to talk about it too. Anyway, using Spring beans in Tapestry-IoC is
> easy.
>

To me it makes sense to at least show an example in a book because it is
such a popular choice and so many people are familiar with it. I must admit
I haven't read all of Igor's book yet. Sadly most of the projects that pay
the bills for me do not include any Tapestry, so that book keeps getting
pushed to the bottom of the stack, even though I really like what I have
read so far.


regards,

Onno


Re: Securing page with Tapestry

2013-08-06 Thread Lenny Primak
Wy don't you use the wonderful tynamo tapestry-security library. 
It works great out of the box and easy to integrate. 

On Aug 6, 2013, at 3:10 AM, "Will N."  wrote:

> Hi,
> I am trying secure some pages of my application as shown in this tutorial. 
> http://tapestryjava.blogspot.co.uk/search/label/security
> But I am having following error message when I start the application.
> Since the RequiresLoginFilte class implements the ComponentRequestFilter 
> interface, I am confused about the coertion error!
> 
> 
> [ERROR] ioc.Registry Error invoking service contribution method 
> com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration):
>  Could not find a coercion from type 
> com.example.pms.services.RequiresLoginFilter to type 
> org.apache.tapestry5.services.ComponentRequestFilter.
> [ERROR] ioc.Registry Operations trace:
> [ERROR] ioc.Registry [ 1] Realizing service ComponentRequestHandler
> [ERROR] ioc.Registry [ 2] Instantiating service ComponentRequestHandler 
> implementation via 
> org.apache.tapestry5.services.TapestryModule.buildComponentRequestHandler(List,
>  ComponentRequestHandlerTerminator, Logger) (at TapestryModule.java:2690)
> [ERROR] ioc.Registry [ 3] Creating plan to invoke public 
> org.apache.tapestry5.services.ComponentRequestHandler 
> org.apache.tapestry5.services.TapestryModule.buildComponentRequestHandler(java.util.List,org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator,org.slf4j.Logger)
> [ERROR] ioc.Registry [ 4] Determining injection value for parameter #1 
> (java.util.List)
> [ERROR] ioc.Registry [ 5] Collecting ordered configuration for service 
> ComponentRequestHandler
> [ERROR] ioc.Registry [ 6] Invoking 
> com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration)
>  (at PmsModule.java:146)
> [ERROR] TapestryModule.ComponentRequestHandler Construction of service 
> ComponentRequestHandler failed: Error invoking service contribution method 
> com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration):
>  Could not find a coercion from type 
> com.example.pms.services.RequiresLoginFilter to type 
> org.apache.tapestry5.services.ComponentRequestFilter.
> org.apache.tapestry5.ioc.internal.OperationException: Error invoking service 
> contribution method 
> com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration):
>  Could not find a coercion from type 
> com.example.pms.services.RequiresLoginFilter to type 
> org.apache.tapestry5.services.ComponentRequestFilter.
>at 
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
>at 
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
>at 
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
>at 
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
>at 
> org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:629)
>at 
> org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:483)
>at 
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)...
> 
> 
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
> 

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Securing page with Tapestry

2013-08-06 Thread Taha Hafeez Siddiqi
Are you defining your own ComponentRequestFilter interface? As you have 
included the code for that I am assuming you have.

You have to implement Tapestry's ComponentRequestFilter, not your own as you 
can't contribute to the RequestHandler any other implementation.

regards
Taha

On 06-Aug-2013, at 5:53 PM, Will N.  wrote:

> Am 06.08.2013 14:13, schrieb Thiago H de Paula Figueiredo:
>> I'm sorry, I should have asked for your ComponentRequestFilter 
>> implementation source too. ;)
>> 
>> On Tue, 06 Aug 2013 08:31:15 -0300, Will N.  wrote:
>> 
>>> Am 06.08.2013 13:25, schrieb Thiago H de Paula Figueiredo:
 On Tue, 06 Aug 2013 05:10:37 -0300, Will N.  wrote:
 
> Hi,
 
 Hi!
 
> I am trying secure some pages of my application as shown in this 
> tutorial. http://tapestryjava.blogspot.co.uk/search/label/security
> But I am having following error message when I start the application.
> Since the RequiresLoginFilte class implements the ComponentRequestFilter 
> interface, I am confused about the coertion error!
 
 The error is weird. Could you post your 
 PmsModule.contributeComponentRequestHandler() method
>>> /**
>>>  * This module is automatically included as part of the Tapestry IoC 
>>> Registry,
>>>  * it's a good place to configure and extend Tapestry, or to place your own
>>>  * service definitions. spring
>>>  */
>>> public class PmsModule {
>>> //public static void bind(ServiceBinder binder) {
>>> //// binder.bind(MyServiceInterface.class, MyServiceImpl.class);
>>> //
>>> //// Make bind() calls on the binder object to define most IoC 
>>> services.
>>> //// Use service builder methods (example below) when the 
>>> implementation
>>> //// is provided inline, or requires more initialization than simply
>>> //// invoking the constructor.
>>> //binder.bind(ArbeitspaketDao.class, ArbeitspaketDaoImpl.class);
>>> //binder.bind(AufgabeDao.class, AufgabeDaoImpl.class);
>>> //binder.bind(BasicDao.class, BasicDaoImpl.class);
>>> //binder.bind(FunktionDao.class, FunktionDaoImpl.class);
>>> binder.bind(GrantedAuthorityBeanDao.class,
>>> GrantedAuthorityBeanDaoImpl.class);
>>> //binder.bind(MitarbeiterDao.class, MitarbeiterDaoImpl.class);
>>> //binder.bind(MitarbeiterProjektDao.class,
>>> //MitarbeiterProjektDaoImpl.class);
>>> //binder.bind(ModulDao.class, ModulDaoImpl.class);
>>> //binder.bind(PersonMonatDao.class, PersonMonatDaoImpl.class);
>>> //binder.bind(UserDataDao.class, UserDataDaoImpl.class);
>>> //binder.bind(ProjektDao.class, ProjektDaoImpl.class);
>>> //binder.bind(UnteraufgabeDao.class, UnteraufgabeDaoImpl.class);
>>> //binder.bind(UnterunteraufgabeDao.class, 
>>> UnterunteraufgabeDaoImpl.class);
>>> //
>>> //}
>>> 
>>> public static void contributeFactoryDefaults(
>>> MappedConfiguration configuration) {
>>> // The application version number is incorprated into URLs for some
>>> // assets. Web browsers will cache assets because of the far future
>>> // expires
>>> // header. If existing assets are changed, the version number should
>>> // also
>>> // change, to force the browser to download new versions. This 
>>> overrides
>>> // Tapesty's default
>>> // (a random hexadecimal number), but may be further overriden by
>>> // DevelopmentModule or
>>> // QaModule.
>>> configuration.override(SymbolConstants.APPLICATION_VERSION,
>>> "1.0-SNAPSHOT");
>>> }
>>> 
>>> public static void contributeApplicationDefaults(
>>> MappedConfiguration configuration) {
>>> // Contributions to ApplicationDefaults will override any 
>>> contributions
>>> // to
>>> // FactoryDefaults (with the same key). Here we're restricting the
>>> // supported
>>> // locales to just "en" (English). As you add localised message 
>>> catalogs
>>> // and other assets,
>>> // you can extend this list of locales (it's a comma separated 
>>> series of
>>> // locale names;
>>> // the first locale name is the default when there's no reasonable
>>> // match).
>>> // configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
>>> configuration.add(SymbolConstants.SUPPORTED_LOCALES, "de");
>>> configuration.add(SymbolConstants.COMPRESS_WHITESPACE, "true");
>>> 
>>> }
>>> 
>>> /**
>>>  * This is a service definition, the service will be named 
>>> "TimingFilter".
>>>  * The interface, RequestFilter, is used within the RequestHandler 
>>> service
>>>  * pipeline, which is built from the RequestHandler service 
>>> configuration.
>>>  * Tapestry IoC is responsible for passing in an appropriate Logger
>>>  * instance. Requests for static resources

Re: Securing page with Tapestry

2013-08-06 Thread Will N.

Am 06.08.2013 14:13, schrieb Thiago H de Paula Figueiredo:
I'm sorry, I should have asked for your ComponentRequestFilter 
implementation source too. ;)


On Tue, 06 Aug 2013 08:31:15 -0300, Will N.  
wrote:



Am 06.08.2013 13:25, schrieb Thiago H de Paula Figueiredo:
On Tue, 06 Aug 2013 05:10:37 -0300, Will N.  
wrote:



Hi,


Hi!

I am trying secure some pages of my application as shown in this 
tutorial. http://tapestryjava.blogspot.co.uk/search/label/security

But I am having following error message when I start the application.
Since the RequiresLoginFilte class implements the 
ComponentRequestFilter interface, I am confused about the coertion 
error!


The error is weird. Could you post your 
PmsModule.contributeComponentRequestHandler() method

/**
  * This module is automatically included as part of the Tapestry IoC 
Registry,
  * it's a good place to configure and extend Tapestry, or to place 
your own

  * service definitions. spring
  */
public class PmsModule {
//public static void bind(ServiceBinder binder) {
//// binder.bind(MyServiceInterface.class, MyServiceImpl.class);
//
//// Make bind() calls on the binder object to define most 
IoC services.
//// Use service builder methods (example below) when the 
implementation
//// is provided inline, or requires more initialization than 
simply

//// invoking the constructor.
//binder.bind(ArbeitspaketDao.class, ArbeitspaketDaoImpl.class);
//binder.bind(AufgabeDao.class, AufgabeDaoImpl.class);
//binder.bind(BasicDao.class, BasicDaoImpl.class);
//binder.bind(FunktionDao.class, FunktionDaoImpl.class);
binder.bind(GrantedAuthorityBeanDao.class,
GrantedAuthorityBeanDaoImpl.class);
//binder.bind(MitarbeiterDao.class, MitarbeiterDaoImpl.class);
//binder.bind(MitarbeiterProjektDao.class,
//MitarbeiterProjektDaoImpl.class);
//binder.bind(ModulDao.class, ModulDaoImpl.class);
//binder.bind(PersonMonatDao.class, PersonMonatDaoImpl.class);
//binder.bind(UserDataDao.class, UserDataDaoImpl.class);
//binder.bind(ProjektDao.class, ProjektDaoImpl.class);
//binder.bind(UnteraufgabeDao.class, UnteraufgabeDaoImpl.class);
//binder.bind(UnterunteraufgabeDao.class, 
UnterunteraufgabeDaoImpl.class);

//
//}

 public static void contributeFactoryDefaults(
 MappedConfiguration configuration) {
 // The application version number is incorprated into URLs 
for some
 // assets. Web browsers will cache assets because of the far 
future

 // expires
 // header. If existing assets are changed, the version 
number should

 // also
 // change, to force the browser to download new versions. 
This overrides

 // Tapesty's default
 // (a random hexadecimal number), but may be further 
overriden by

 // DevelopmentModule or
 // QaModule.
configuration.override(SymbolConstants.APPLICATION_VERSION,
 "1.0-SNAPSHOT");
 }

 public static void contributeApplicationDefaults(
 MappedConfiguration configuration) {
 // Contributions to ApplicationDefaults will override any 
contributions

 // to
 // FactoryDefaults (with the same key). Here we're 
restricting the

 // supported
 // locales to just "en" (English). As you add localised 
message catalogs

 // and other assets,
 // you can extend this list of locales (it's a comma 
separated series of

 // locale names;
 // the first locale name is the default when there's no 
reasonable

 // match).
 // configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
 configuration.add(SymbolConstants.SUPPORTED_LOCALES, "de");
 configuration.add(SymbolConstants.COMPRESS_WHITESPACE, "true");

 }

 /**
  * This is a service definition, the service will be named 
"TimingFilter".
  * The interface, RequestFilter, is used within the 
RequestHandler service
  * pipeline, which is built from the RequestHandler service 
configuration.

  * Tapestry IoC is responsible for passing in an appropriate Logger
  * instance. Requests for static resources are handled at a 
higher level, so

  * this filter will only be invoked for Tapestry related requests.
  * 
  * 
  * Service builder methods are useful when the implementation is 
inline as

  * an inner class (as here) or require some other kind of special
  * initialization. In most cases, use the static bind() method 
instead.

  * 
  * 
  * If this method was named "build", then the service id would 
be taken from
  * the service interface and would be "RequestFilter". Since 
Tapestry
  * already defines a service named "RequestFilter" we use an 
explicit

  * service id that we can reference inside the contribution m

Re: Securing page with Tapestry

2013-08-06 Thread Thiago H de Paula Figueiredo
I'm sorry, I should have asked for your ComponentRequestFilter  
implementation source too. ;)


On Tue, 06 Aug 2013 08:31:15 -0300, Will N.  wrote:


Am 06.08.2013 13:25, schrieb Thiago H de Paula Figueiredo:
On Tue, 06 Aug 2013 05:10:37 -0300, Will N.   
wrote:



Hi,


Hi!

I am trying secure some pages of my application as shown in this  
tutorial. http://tapestryjava.blogspot.co.uk/search/label/security

But I am having following error message when I start the application.
Since the RequiresLoginFilte class implements the  
ComponentRequestFilter interface, I am confused about the coertion  
error!


The error is weird. Could you post your  
PmsModule.contributeComponentRequestHandler() method

/**
  * This module is automatically included as part of the Tapestry IoC  
Registry,
  * it's a good place to configure and extend Tapestry, or to place your  
own

  * service definitions. spring
  */
public class PmsModule {
//public static void bind(ServiceBinder binder) {
//// binder.bind(MyServiceInterface.class, MyServiceImpl.class);
//
//// Make bind() calls on the binder object to define most IoC  
services.
//// Use service builder methods (example below) when the  
implementation
//// is provided inline, or requires more initialization than  
simply

//// invoking the constructor.
//binder.bind(ArbeitspaketDao.class, ArbeitspaketDaoImpl.class);
//binder.bind(AufgabeDao.class, AufgabeDaoImpl.class);
//binder.bind(BasicDao.class, BasicDaoImpl.class);
//binder.bind(FunktionDao.class, FunktionDaoImpl.class);
binder.bind(GrantedAuthorityBeanDao.class,
GrantedAuthorityBeanDaoImpl.class);
//binder.bind(MitarbeiterDao.class, MitarbeiterDaoImpl.class);
//binder.bind(MitarbeiterProjektDao.class,
//MitarbeiterProjektDaoImpl.class);
//binder.bind(ModulDao.class, ModulDaoImpl.class);
//binder.bind(PersonMonatDao.class, PersonMonatDaoImpl.class);
//binder.bind(UserDataDao.class, UserDataDaoImpl.class);
//binder.bind(ProjektDao.class, ProjektDaoImpl.class);
//binder.bind(UnteraufgabeDao.class, UnteraufgabeDaoImpl.class);
//binder.bind(UnterunteraufgabeDao.class,  
UnterunteraufgabeDaoImpl.class);

//
//}

 public static void contributeFactoryDefaults(
 MappedConfiguration configuration) {
 // The application version number is incorprated into URLs for  
some
 // assets. Web browsers will cache assets because of the far  
future

 // expires
 // header. If existing assets are changed, the version number  
should

 // also
 // change, to force the browser to download new versions. This  
overrides

 // Tapesty's default
 // (a random hexadecimal number), but may be further overriden  
by

 // DevelopmentModule or
 // QaModule.
 configuration.override(SymbolConstants.APPLICATION_VERSION,
 "1.0-SNAPSHOT");
 }

 public static void contributeApplicationDefaults(
 MappedConfiguration configuration) {
 // Contributions to ApplicationDefaults will override any  
contributions

 // to
 // FactoryDefaults (with the same key). Here we're restricting  
the

 // supported
 // locales to just "en" (English). As you add localised message  
catalogs

 // and other assets,
 // you can extend this list of locales (it's a comma separated  
series of

 // locale names;
 // the first locale name is the default when there's no  
reasonable

 // match).
 // configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
 configuration.add(SymbolConstants.SUPPORTED_LOCALES, "de");
 configuration.add(SymbolConstants.COMPRESS_WHITESPACE, "true");

 }

 /**
  * This is a service definition, the service will be named  
"TimingFilter".
  * The interface, RequestFilter, is used within the RequestHandler  
service
  * pipeline, which is built from the RequestHandler service  
configuration.

  * Tapestry IoC is responsible for passing in an appropriate Logger
  * instance. Requests for static resources are handled at a higher  
level, so

  * this filter will only be invoked for Tapestry related requests.
  * 
  * 
  * Service builder methods are useful when the implementation is  
inline as

  * an inner class (as here) or require some other kind of special
  * initialization. In most cases, use the static bind() method  
instead.

  * 
  * 
  * If this method was named "build", then the service id would be  
taken from
  * the service interface and would be "RequestFilter". Since  
Tapestry
  * already defines a service named "RequestFilter" we use an  
explicit

  * service id that we can reference inside the contribution method.
  */
 p

Re: Securing page with Tapestry

2013-08-06 Thread Will N.

Am 06.08.2013 13:25, schrieb Thiago H de Paula Figueiredo:
On Tue, 06 Aug 2013 05:10:37 -0300, Will N.  
wrote:



Hi,


Hi!

I am trying secure some pages of my application as shown in this 
tutorial. http://tapestryjava.blogspot.co.uk/search/label/security

But I am having following error message when I start the application.
Since the RequiresLoginFilte class implements the 
ComponentRequestFilter interface, I am confused about the coertion 
error!


The error is weird. Could you post your 
PmsModule.contributeComponentRequestHandler() method

/**
 * This module is automatically included as part of the Tapestry IoC 
Registry,

 * it's a good place to configure and extend Tapestry, or to place your own
 * service definitions. spring
 */
public class PmsModule {
//public static void bind(ServiceBinder binder) {
//// binder.bind(MyServiceInterface.class, MyServiceImpl.class);
//
//// Make bind() calls on the binder object to define most IoC 
services.
//// Use service builder methods (example below) when the 
implementation

//// is provided inline, or requires more initialization than simply
//// invoking the constructor.
//binder.bind(ArbeitspaketDao.class, ArbeitspaketDaoImpl.class);
//binder.bind(AufgabeDao.class, AufgabeDaoImpl.class);
//binder.bind(BasicDao.class, BasicDaoImpl.class);
//binder.bind(FunktionDao.class, FunktionDaoImpl.class);
binder.bind(GrantedAuthorityBeanDao.class,
GrantedAuthorityBeanDaoImpl.class);
//binder.bind(MitarbeiterDao.class, MitarbeiterDaoImpl.class);
//binder.bind(MitarbeiterProjektDao.class,
//MitarbeiterProjektDaoImpl.class);
//binder.bind(ModulDao.class, ModulDaoImpl.class);
//binder.bind(PersonMonatDao.class, PersonMonatDaoImpl.class);
//binder.bind(UserDataDao.class, UserDataDaoImpl.class);
//binder.bind(ProjektDao.class, ProjektDaoImpl.class);
//binder.bind(UnteraufgabeDao.class, UnteraufgabeDaoImpl.class);
//binder.bind(UnterunteraufgabeDao.class, 
UnterunteraufgabeDaoImpl.class);

//
//}

public static void contributeFactoryDefaults(
MappedConfiguration configuration) {
// The application version number is incorprated into URLs for some
// assets. Web browsers will cache assets because of the far future
// expires
// header. If existing assets are changed, the version number 
should

// also
// change, to force the browser to download new versions. This 
overrides

// Tapesty's default
// (a random hexadecimal number), but may be further overriden by
// DevelopmentModule or
// QaModule.
configuration.override(SymbolConstants.APPLICATION_VERSION,
"1.0-SNAPSHOT");
}

public static void contributeApplicationDefaults(
MappedConfiguration configuration) {
// Contributions to ApplicationDefaults will override any 
contributions

// to
// FactoryDefaults (with the same key). Here we're restricting the
// supported
// locales to just "en" (English). As you add localised message 
catalogs

// and other assets,
// you can extend this list of locales (it's a comma separated 
series of

// locale names;
// the first locale name is the default when there's no reasonable
// match).
// configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
configuration.add(SymbolConstants.SUPPORTED_LOCALES, "de");
configuration.add(SymbolConstants.COMPRESS_WHITESPACE, "true");

}

/**
 * This is a service definition, the service will be named 
"TimingFilter".
 * The interface, RequestFilter, is used within the RequestHandler 
service
 * pipeline, which is built from the RequestHandler service 
configuration.

 * Tapestry IoC is responsible for passing in an appropriate Logger
 * instance. Requests for static resources are handled at a higher 
level, so

 * this filter will only be invoked for Tapestry related requests.
 * 
 * 
 * Service builder methods are useful when the implementation is 
inline as

 * an inner class (as here) or require some other kind of special
 * initialization. In most cases, use the static bind() method instead.
 * 
 * 
 * If this method was named "build", then the service id would be 
taken from

 * the service interface and would be "RequestFilter". Since Tapestry
 * already defines a service named "RequestFilter" we use an explicit
 * service id that we can reference inside the contribution method.
 */
public RequestFilter buildTimingFilter(final Logger log) {
return new RequestFilter() {
public boolean service(Request request, Response response,
RequestHandler handler) throws IOException {
lon

Re: Securing page with Tapestry

2013-08-06 Thread Thiago H de Paula Figueiredo

On Tue, 06 Aug 2013 05:10:37 -0300, Will N.  wrote:


Hi,


Hi!

I am trying secure some pages of my application as shown in this  
tutorial. http://tapestryjava.blogspot.co.uk/search/label/security

But I am having following error message when I start the application.
Since the RequiresLoginFilte class implements the ComponentRequestFilter  
interface, I am confused about the coertion error!


The error is weird. Could you post your  
PmsModule.contributeComponentRequestHandler() method please?


--
Thiago H. de Paula Figueiredo

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Thiago H de Paula Figueiredo

On Tue, 06 Aug 2013 07:52:50 -0300, Onno Scheffers  wrote:


Looking forward to this.
More books will be good for Tapestry, especially when they start covering
more advanced topics such as in-depth Tapestry IOC. I will buy a copy.


Nice! :)


Some topics I'd be interested in:
- Application security, authentication and authorization- best practices
with several popular frameworks


Several popular frameworks? Which ones?

Doesn't this fall a little over the focus of the book, which is Tapestry  
itself? The book can talk about setting up Apache Shiro via  
tapestry-security, for example, but then talking about Shiro specifically  
looks like lack of coesion (in the OOP sense) to me. Of course, security  
is very important.



- Spring integration


This is already covered in Igor's book, so I'm not sure my one really  
needs to talk about it too. Anyway, using Spring beans in Tapestry-IoC is  
easy.


Thanks for the suggestions!

--
Thiago H. de Paula Figueiredo

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Proposal for a new book: Mastering Apache Tapestry

2013-08-06 Thread Onno Scheffers
Looking forward to this.
More books will be good for Tapestry, especially when they start covering
more advanced topics such as in-depth Tapestry IOC. I will buy a copy.

Some topics I'd be interested in:
- Application security, authentication and authorization- best practices
with several popular frameworks
- Spring integration


- Onno




On Mon, Aug 5, 2013 at 10:13 PM, Thiago H de Paula Figueiredo <
thi...@arsmachina.com.br> wrote:

> Hi!
>
> I've said a handful of times in this mailing list that I'd love to write a
> book on Tapestry. With crowdsourcing sites like Kickstarter and Indiegogo,
> I can check whether there's demand enough for the book before writing. In
> addition, it seems I'll have the free time needed to start working
> seriously on it. (By the way, if you need Tapestry consulting or
> development, e-mail me!).
>
> Igor already wrote a very nice book about Tapestry, more targeted at
> people trying to learn the framework, so I won't replicate his effort.
> Instead, I'm thinking at complementing it. I'm thinking of the following
> question that may be asked by someone who finished Igor's book: now that I
> can write webapps in Tapestry, what else could I learn to have a deep, even
> internal knowledge of it, so I know what to look to implement more
> advanced, specific stuff that uses the framework flexibility to suit my
> needs?
>
> I've written a proposal of the table of contents at
> http://www.arsmachina.com.br/**masteringApacheTapestry.html.
> Feel free to suggest anything about it.
>
> Some notes:
>
> * It may look wrong in the beggining, but the book starts with a deep look
> at Tapestry-IoC. Everything else in the book will need T-IoC. And, if you
> really want to dive deep into Tapestry-core, you'll need to know T-IoC very
> well.
>
> * There will be lots of code examples. Ideally, one for anything which
> could be better exemplified with code. They'll be freely downloadable,
> probably with their sources in GitHub.
>
> * I thought about a cookbook section, but I'm not sure what people would
> find interesting.
>
> * You may suggest by asking questions about Tapestry or how to implement
> something with it, even if it sounds preposterous.
>
> * At least for now, an A4-formatted (for better viewing of code examples),
> DRM-free PDF file will be only option available.
>
> * I haven't defined the price yet, but it'll be in the 20 to 30 dollars
> range, probably in the middle.
>
> * I'll just create the Indiegogo campaign if there's enough buzz in the
> mailing list. Kickstarter isn't an option because, as you may already know,
> I'm a Brazilian living in Brazil and Kickstarter only accepts campaigns
> from USA citizens.
>
> What do you guys think? All feedback is welcome. :)
>
> Cheers!
>
> --
> Thiago H. de Paula Figueiredo
>
> --**--**-
> To unsubscribe, e-mail: 
> users-unsubscribe@tapestry.**apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Securing page with Tapestry

2013-08-06 Thread Will N.

Hi,
I am trying secure some pages of my application as shown in this 
tutorial. http://tapestryjava.blogspot.co.uk/search/label/security

But I am having following error message when I start the application.
Since the RequiresLoginFilte class implements the ComponentRequestFilter 
interface, I am confused about the coertion error!



[ERROR] ioc.Registry Error invoking service contribution method 
com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration): 
Could not find a coercion from type 
com.example.pms.services.RequiresLoginFilter to type 
org.apache.tapestry5.services.ComponentRequestFilter.

[ERROR] ioc.Registry Operations trace:
[ERROR] ioc.Registry [ 1] Realizing service ComponentRequestHandler
[ERROR] ioc.Registry [ 2] Instantiating service ComponentRequestHandler 
implementation via 
org.apache.tapestry5.services.TapestryModule.buildComponentRequestHandler(List, 
ComponentRequestHandlerTerminator, Logger) (at TapestryModule.java:2690)
[ERROR] ioc.Registry [ 3] Creating plan to invoke public 
org.apache.tapestry5.services.ComponentRequestHandler 
org.apache.tapestry5.services.TapestryModule.buildComponentRequestHandler(java.util.List,org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator,org.slf4j.Logger)
[ERROR] ioc.Registry [ 4] Determining injection value for parameter #1 
(java.util.List)
[ERROR] ioc.Registry [ 5] Collecting ordered configuration for service 
ComponentRequestHandler
[ERROR] ioc.Registry [ 6] Invoking 
com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration) 
(at PmsModule.java:146)
[ERROR] TapestryModule.ComponentRequestHandler Construction of service 
ComponentRequestHandler failed: Error invoking service contribution 
method 
com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration): 
Could not find a coercion from type 
com.example.pms.services.RequiresLoginFilter to type 
org.apache.tapestry5.services.ComponentRequestFilter.
org.apache.tapestry5.ioc.internal.OperationException: Error invoking 
service contribution method 
com.example.pms.services.PmsModule.contributeComponentRequestHandler(OrderedConfiguration): 
Could not find a coercion from type 
com.example.pms.services.RequiresLoginFilter to type 
org.apache.tapestry5.services.ComponentRequestFilter.
at 
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
at 
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
at 
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
at 
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
at 
org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:629)
at 
org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:483)
at 
org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)...




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org