Re: About T5 integration modules
Hi, For the one who are interested in, I have written a first article on how we have secured Tapestry Pages in wooki with Spring Security : http://spreadthesource.com/2010/01/securing-tapestry-5-pages-with-spring-security-2-x-part-i/ Best Regards, Christophe Cordenier. Developper of Wooki @wookicentral.com 2009/12/30 Newham, Cameron > > Interesting. > > I'd hardly call myself even an advanced-intermediate Tapestry user (some > of the stuff you guys talk about is way over my head!) but really, is it > that difficult to create a Dispatcher and custom page annotations?! > > I included simple security with roles very early on in my webapp by > going the page annotation route because it was a) understandable and b) > simple to implement by following the examples I'd seen. I had even less > of an understanding of Tapestry than I do now. > > I found it very easy to understand and code, and it works so well. I > shudder to think how long it would have taken ploughing through > documents on security solutions, like Spring Security, when all I wanted > was half a dozen roles and some way to mark my pages as general viewing > or requiring login under a certain role. > > As I've said all along, I think the only thing lacking big time for > Tapestry is clear, easy to understand documentation with good simple > examples of each feature. That said - I had no troubles with the above > security stuff (and I didn't even have to look at Tapestry source code > ;-) > > Rather than providing large cumbersome bolt-ons for features that may > not even solve all problems, I'd rather see well-defined methods and > example solutions for particular problems which allows scope for people > to customise if they so wish. Isn't that an example of "convention over > configuration"? ;-) It would also be far quicker than developing modules > that try to be all things to all people - and perhaps lessen the > perceived gap between tech. like Wicket and Tapestry in a much shorter > time period. > > > -Original Message- > From: p...@sartini-its.com [mailto:p...@sartini-its.com] On Behalf Of Piero > Sartini > Sent: 24 December 2009 20:34 > To: Tapestry users > Subject: Re: About T5 integration modules > > ... > > Howard, I think people are looking for these kind of integrations > because there is no tapestry module allowing them to secure there > pages. Of course you may argument that it is easy to build a > Dispatcher and define some custom annotations. That's true if you > managed to understand how these things work. But if you've just > started with tapestry, in my experience this is not that easy. Then > you remember about Spring Security or any other solution you are used > to and try to make use of it in your new tapestry-world. > > ... > >Piero > > - > 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: About T5 integration modules
Interesting. I'd hardly call myself even an advanced-intermediate Tapestry user (some of the stuff you guys talk about is way over my head!) but really, is it that difficult to create a Dispatcher and custom page annotations?! I included simple security with roles very early on in my webapp by going the page annotation route because it was a) understandable and b) simple to implement by following the examples I'd seen. I had even less of an understanding of Tapestry than I do now. I found it very easy to understand and code, and it works so well. I shudder to think how long it would have taken ploughing through documents on security solutions, like Spring Security, when all I wanted was half a dozen roles and some way to mark my pages as general viewing or requiring login under a certain role. As I've said all along, I think the only thing lacking big time for Tapestry is clear, easy to understand documentation with good simple examples of each feature. That said - I had no troubles with the above security stuff (and I didn't even have to look at Tapestry source code ;-) Rather than providing large cumbersome bolt-ons for features that may not even solve all problems, I'd rather see well-defined methods and example solutions for particular problems which allows scope for people to customise if they so wish. Isn't that an example of "convention over configuration"? ;-) It would also be far quicker than developing modules that try to be all things to all people - and perhaps lessen the perceived gap between tech. like Wicket and Tapestry in a much shorter time period. -Original Message- From: p...@sartini-its.com [mailto:p...@sartini-its.com] On Behalf Of Piero Sartini Sent: 24 December 2009 20:34 To: Tapestry users Subject: Re: About T5 integration modules ... Howard, I think people are looking for these kind of integrations because there is no tapestry module allowing them to secure there pages. Of course you may argument that it is easy to build a Dispatcher and define some custom annotations. That's true if you managed to understand how these things work. But if you've just started with tapestry, in my experience this is not that easy. Then you remember about Spring Security or any other solution you are used to and try to make use of it in your new tapestry-world. ... Piero - 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: About T5 integration modules
It has been much talk about Tapestry lacking an annotation-based security framework. Don't you guys know about tapestry-security, which is a Tapestry module that uses Spring Security (formerly Acegi) under the covers? Olle Hallin Senior Java Developer and Architect olle.hal...@crisp.se www.crisp.se http://www.linkedin.com/in/ollehallin 2009/12/28 Alessandro Bottoni > Il 28/12/2009 09:46, Massimo Lusetti ha scritto: > > Comparing Drupal to Tapestry is somehow comparing apples with an > apple-pie > > That's true but... > > I tried not to mention Wicket/Brix and Wicket/Hippo (for not starting a > flame). Both of these frameworks can be used as more pertaining examples > of what Tapestry/Tynamo should became in the near future. > > The point is simple: Tapestry alone is not enough to win this battle. It > desperetely needs something like Tynamo (or AppFuse), both for > educational/demonstrative purposes and as a starting point for real > world projects. And, more in detail, the way Tynamo (or AppFuse) will be > developed in the near future can make a huge difference for Tapestry. > > To be able to compete with Wicket/Brix, for example, Tapestry/Tynamo > still have to supply something like Swarm or Wasp (the two security > frameworks supplied by Wicket) and many other tools. These > "implementation details" can be crucial for all of the T5 ecosystem. > > Please note that defending Tapestry is futile. Nobody here is accusing > it of anything. I'm just saying that the evolution path of Tapestry and > Tynamo must take into account what people is actually looking for (and > what people can actually find elsewhere right now). > > CU > -- > > Alessandro Bottoni > Website: http://www.alessandrobottoni.it/ > > Philosophy is a game with objectives and no rules. > Mathematics is a game with rules and no objectives. >-- Unknown > > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org >
Re: About T5 integration modules
Il 28/12/2009 09:46, Massimo Lusetti ha scritto: > Comparing Drupal to Tapestry is somehow comparing apples with an apple-pie That's true but... I tried not to mention Wicket/Brix and Wicket/Hippo (for not starting a flame). Both of these frameworks can be used as more pertaining examples of what Tapestry/Tynamo should became in the near future. The point is simple: Tapestry alone is not enough to win this battle. It desperetely needs something like Tynamo (or AppFuse), both for educational/demonstrative purposes and as a starting point for real world projects. And, more in detail, the way Tynamo (or AppFuse) will be developed in the near future can make a huge difference for Tapestry. To be able to compete with Wicket/Brix, for example, Tapestry/Tynamo still have to supply something like Swarm or Wasp (the two security frameworks supplied by Wicket) and many other tools. These "implementation details" can be crucial for all of the T5 ecosystem. Please note that defending Tapestry is futile. Nobody here is accusing it of anything. I'm just saying that the evolution path of Tapestry and Tynamo must take into account what people is actually looking for (and what people can actually find elsewhere right now). CU -- Alessandro Bottoni Website: http://www.alessandrobottoni.it/ Philosophy is a game with objectives and no rules. Mathematics is a game with rules and no objectives. -- Unknown - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
Il 28/12/2009 06:53, Kalle Korhonen ha scritto: > Hey Alessandro, I have to say I agree with pretty much everything > you've said. I notice the tone from the committers is a bit "fatherly" > - i.e. "just learn the framework and do it yourself, it's easy". Don't > worry about it, sometimes it's just difficult to see it from newbies' > perspective for those who are experienced with a particular > technology. Do not worry about this topic, Kalle. I understand very well their position. If I had a good knowledge of Java and Tapestry, I would just do what they suggest. I see that it is the "right way". I'm just trying to let them (and you) know how an absolute beginner feels when it meet Java and Tapestry for the first time. I see it is hard to explain my position, even using examples (Drupal) and metaphores. Nevertheless, I do think the Java/Tapestry community have to face a few of the challenges I'm describing here. See below for the reasons. > I think your comparison to Drupal is spot on. Sure it's > uglier to customize Drupal if it doesn't have a module available for > it but it does heck of a lot of things out of the box, much more than > Tapestry or any little add-on module to it at the moment. Tapestry > architecture is great for delivering drop-in add-on modules, but what > you see is just the state of things as they are right now. Tapestry5 > is still a new web framework and there are relatively few people using > it. Yes, you are right. Tapestry and Tynamo are still new and we have to give them the time to grow up. I do hope to can be of some help in the future. As you said, Tapestry is very good at delivering a reliable drop-in module technolgy and this feature could/should be used to develop an even more developer-friendly tool, like Tynamo. Arguably, this is the right way to evolve it and I see you are already doing so. > I fully agree that security is critical - sure it's easy to > protect your pages "the right way" with a few annotations, but real > world projects need integration to existing authentication sources, > smart remember me -implementations, url protection, adaptive > permissions etc. You have got the point. Actually, I would be happy to implement a annotation-based security system if I just know how to do it (BTW: any docu around?). Unfortunately, this security system will also have to be compatible with a few other tools (in our case, at least with a legacy OpenLDAP-based directory). Maybe I'm wrong but I still have the feeling that using a widely diffused tool, like ACEGI, could be a simpler and better way to get this job done. > Regarding Tynamo, in time we'll offer proper Apache > Shiro integration (currently there are a few good "starter" Shiro > integration libraries available) with most of these features but we > are not there yet. But in any case, being an Apache Shiro committer > myself I should be in a pretty good position to deliver it. Good news to hear! :-) > One of the main issue with Java web frameworks has always been that > while people generally acknowledge the advantages of Java, starting > costs are so much higher than hacking up something with a few lines of > PHP and its existing frameworks already deployed by ISPs that Java is > often considered only later when (and if ever!) complexity, > scalability and maintainability become more of a concern. That is exactly what happend to us. We decided to pass to Java (and to a few Java-based technologies) only when Python, PHP and other tools begun to show their limits. It was much more a matter of scalability/manageability than a matter of language expressiveness. You can do with Python, Ruby or PHP everything that Java (or even Groovy and Scala) can do /but/ you cannot have anything like the smooth development process allowed by a few "modules" of Java (Hibernate, ACEGI, etc) and by its process management tools (Maven, Hudson, etc.). We knew (and still feel on our skin) that the Java world is a complex one. You have to study and dominate the basic language (that is the easy part of the job, coming for Python), a few programming paradigms like IoC and AOP, a few tools (Maven, etc), and finally a few frameworks (Tapestry, the ubiquitous Spring and Hibernate, etc.). It is a lot of stuff and a lot of work. This was the reason why we looked for a good framework to be used as a starting point. Of course, the framework has to supply us with a good set of tools and has to act as a set of reliable guidelines, as well. > However, > Java-based frameworks and tools have made steady progress in recent > years and lowered the starting costs to reduce the gap. Tapestry can > be and has been the forerunner in Java Web frameworks, now we just > need to show the world all that is possible - and especially *how* to > do it. That is exactly the way things are! Java do supply the developer with an impressive set of impressive tools but the entry ticket is still very high (not only for web developers, unfortunately. Just
Re: About T5 integration modules
Hi All, I have been using Tapestry for the last 4-5 years, it is our companies framework of choice and I personally want only whats best for the framework and community, I want to see it grow and thrive since we are heavily invested in it, and I also enjoy developing with it. A few years back Tapestry lost a lot of ground to Wicket and other frameworks because of backward compatibility issues, when the controversial rewrite (Tapestry 5) was announced... people and companies who had invested in Tapestry 4 felt hard done by. Tapestry 5 is perhaps one of the most progressive web frameworks around, but it seems Howard you only listen to your community once the rubicon has already been crossed. I had hoped that we all learned from that experience and that Tapestry will grow this time around, increasing the community should be the top priority, as there is strength in numbers, so if this means writing a few 'easy' integration modules and improving the docs, then whats the big deal... new users will appreciate it. > I'm also a bit surprised at how eager people are to make use of > cumbersome solutions like Spring Security to accomplish simple tasks > such as protecting pages. I wrote my security solution from scratch using Tapestry RequestFilters, but even so I am surprised that you are surprised... Web frameworks should provide some documented security features / at least guidelines, people will obviously turn to Spring because there is already an integration module for Tapestry and they may not want to, or simply can't afford the time to do everything from scratch, built-in framework features are at least well tested as well, so if they do the job then people will feel comfortable to use them... time to market is very important in my book too, thats why people use web frameworks in the first place (i.e.: to leverage existing resources), surely you all know that? > Ideally there would be a single solution for this, > but I've found that page security is just not a one-size-fits-all > solution. Perhaps there is some truth there, but thats no reason to ignore the problem entirely, there is also plenty of commonality. > but I'd rather talk > about how easy it is to create your own custom extensions that work > precisely as you need. Okay I am sold, so lets have a place for the community to dump extensions / components and people can simply pick and customize whatever they need, and lets document it properly... but my major point is that Tapestry needs to grow and not stagnate, so getting the community more involved is the key. Merry Christmas to all! Peter - Original Message - From: "Howard Lewis Ship" To: "Tapestry users" Sent: Thursday, 24 December, 2009 20:50:35 GMT +02:00 Athens, Beirut, Bucharest, Istanbul Subject: Re: About T5 integration modules On Thu, Dec 24, 2009 at 2:09 AM, cordenier christophe wrote: > Hello, > > And what about integration of Tapestry in other framework ? > > From my experience view, integrating technologies in Tapestry is fun and > fast, and the one provided by Tapestry are really good and enough to do what > a Web Application should do. !but when i want to do the inverse i am facing > a problem with Tapestry public API. Getting the Tapestry registry is simple > but calling services from the outside is not as easy. > > For exemple, currently i am trying to secure my application by using > spring-security to centralize security concerns, and then create a RoleVoter > to secure also Tapestry URLs. To achieve this, Spring allows me to access to > the servlet context and then to Tapestry Registry, now we can imagine that > analyzing the URL will be as easy as using the ComponentEventLinkEncoder > service, but in real i had to create an instance of RequestImpl, retrieve > others services, set the request into the RequestGlobals... service just to > analyze the URL ! I can see where your frustration might come from in this respect. At many times during the development of Tapestry, we've had to make a choice: easy and automatic for the typical user, or easily extensible for the power-developer. That's a no-brainer: easy and automatic for the typical user is the way to go. In this particular case, it was all about making things work correctly from inside Tapestry; the idea that you would be "analyzing" a Tapestry URL when not in the middle of processing a Tapestry request (and therefore, deep into the pipeline that automatically sets up the RequestGlobals values) is just foreign to Tapestry. That is, to make that rare use-case easier for you, would complicate the code for most other users, making it that much harder to extend and override Tapestry for more typical use cases. In fact, where other people might write servlets, I would tend to contribute a new Dispatcher to the MasterDispatcher s
Re: About T5 integration modules
On Mon, Dec 28, 2009 at 6:53 AM, Kalle Korhonen wrote: > technology. I think your comparison to Drupal is spot on. Sure it's Comparing Tapestry to Drupal is somehow comparing apples with an apple-pie. Cheers -- Massimo http://meridio.blogspot.com - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
On Mon, Dec 28, 2009 at 6:53 AM, Kalle Korhonen wrote: > technology. I think your comparison to Drupal is spot on. Sure it's Comparing Drupal to Tapestry is somehow comparing apples with an apple-pie Cheers -- Massimo http://meridio.blogspot.com - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
On Sat, Dec 26, 2009 at 1:52 AM, Alessandro Bottoni wrote: > If Tapestry does not offer anything for my Authentication/Authorization > needs, I will just look somewhere else, for example at Spring's site > (ACEGI/Spring security). I will not reinvent the n-th wheel by myself. > If Tapestry wants to be a "package of ready-to-use solutions" for the > typical webapp developer, the solutions it provides have to be > advertised, documented, demonstrated and made readibly usable by the new > users, in particular the ones who have little or any experience with Java. Hey Alessandro, I have to say I agree with pretty much everything you've said. I notice the tone from the committers is a bit "fatherly" - i.e. "just learn the framework and do it yourself, it's easy". Don't worry about it, sometimes it's just difficult to see it from newbies' perspective for those who are experienced with a particular technology. I think your comparison to Drupal is spot on. Sure it's uglier to customize Drupal if it doesn't have a module available for it but it does heck of a lot of things out of the box, much more than Tapestry or any little add-on module to it at the moment. Tapestry architecture is great for delivering drop-in add-on modules, but what you see is just the state of things as they are right now. Tapestry5 is still a new web framework and there are relatively few people using it. I fully agree that security is critical - sure it's easy to protect your pages "the right way" with a few annotations, but real world projects need integration to existing authentication sources, smart remember me -implementations, url protection, adaptive permissions etc. Regarding Tynamo, in time we'll offer proper Apache Shiro integration (currently there are a few good "starter" Shiro integration libraries available) with most of these features but we are not there yet. But in any case, being an Apache Shiro committer myself I should be in a pretty good position to deliver it. One of the main issue with Java web frameworks has always been that while people generally acknowledge the advantages of Java, starting costs are so much higher than hacking up something with a few lines of PHP and its existing frameworks already deployed by ISPs that Java is often considered only later when (and if ever!) complexity, scalability and maintainability become more of a concern. However, Java-based frameworks and tools have made steady progress in recent years and lowered the starting costs to reduce the gap. Tapestry can be and has been the forerunner in Java Web frameworks, now we just need to show the world all that is possible - and especially *how* to do it. Kalle - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
On Sat, Dec 26, 2009 at 10:52 AM, Alessandro Bottoni wrote: > This is a very good example of what is probably missing in Tapestry, at > least from the point of view of a new user. > > Is this technique documented somewhere? > Is this demonstrated by some existing archetype or demo app? > Is this part of any Maven archetype or of any "canonical" way of > developing applications with Tapestry. > Is this approach "advertised" somewhere on the Tapestry web site? [..] > Maybe a Tapestry 5 component/module would be a good general-purpose > solution for this Authentication/Authorization common need. Maybe even a > HowTo or a demo would be enough. At least, they could be a solution for > 80% of the applications (the ones that uses the approach proposed by > ACEGI/Spring Security, BTW). > > Maybe Tapestry does not need the dozens of components that are available > for other frameworks, like Wicket, but it surely need some ready-to-use, > standard solutions for a few very diffused, very standard needs like > authentication and access control. Did you have a look at the ChenilleKit project? >> In other words, jumping over backwards for integrations with >> technologies is often not the best approach. Yes, it would be nice to >> have a checkbox "compatible with Spring Security" but I'd rather talk >> about how easy it is to create your own custom extensions that work >> precisely as you need. [..] > Even better, it would be fantastic to have a Maven archetype switch to > enable the access control subsystem generation. Even better again, this > could/should be supplied by derived works, like Tynamo (and it will, as > long as I know). This would keep T5 as simple as possible while still > supplying the user with a rich feature set. > > Tynamo and AppFuse are extremely important for Tapestry for many reasons > and one of those reasons is "standardization". As a new user, I expect > to find a canonical way to develop Tapestry/Tynamo applications and a > canonical set of tools. This because I do not want, and cannot, spend a > few weeks trying to discover the right tools and the right design > patterns to be used for the task at hand by myself. As a quite typical > new user, I need /guidance/ as well, not just a toolbox. I think you're completely missing the point. Cheers -- Massimo http://meridio.blogspot.com - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
Em Thu, 24 Dec 2009 09:17:14 -0200, Ivano Luberti escreveu: Ciao, Ivano! :) Thiago, every time I see your solutions and the easyness with which you find them I wonder how you have learned to use Tapestry. Do you are involved in design and development of Tapestry core ? Are you a committer that hase learned by using it? Knowing that could really show the way to others , wouldn't it ? I hope this message inspire some people. :) I love software development, Java, Tapestry-IoC, Tapestry and Hibernate (but not only them). I'm very curious guy too. I learned a little bit of Tapestry 4 and was one of the first to use Tapestry 5, so I'm using T5 for almost all of its lifetime. I have a very good memory of what I've seen before, being it from the sources (first or third part) or the mailing lists. I learn a lot from what other people post in the ML. Sometimes I even try to answer something I don't know so I can learn how to do that. :) I've read the whole Tapestry and Tapestry-IoC documentation at least once. Sometimes, I implement something just as a proof-of-concept to myself, so I can learn it and use it when some appropriate scenario arises. I also play with parameters and configuration just to see what happens. :) Having sources available for reading (viva open source!), every time I wanted to do something that wasn't documented or already done in the mailing lists or other projects, I dived in the Tapestry sources. Very often I've found what I wanted quickly. *The first place to look is TapestryModule.* It's where almost everything in Tapestry is configured. Searching for words related to what you want in TapestryModule often lead to quick answers. From there, I figure out what service does what I need and then I use Eclipse's search for usages (to learn where it's used) and hierarchy (to learn how it's implemented). Tapestry is implemented in an homogenous way, so I can figure out quickly how something is implemented by recalling how some other thing is implemented. Gotta love design patterns, conventions and standards. :) Learning Tapestry-IoC more deeply as an user also helps a lot to understand Tapestry-the-web-framework. Distributed configuration is a very often feature used by T5. It's almost the reason Tapestry-IoC was created at first. When you learn it, I'm sure you're going to use it a lot. The documentation needs to be improved, no doubt about it. But take a little time to read the sources. They're very well written, most of it isn't hard to understand and you can learn a lot. ;) Remember your starting point is TapestryModule. ;) I'm a committer since February. Unfortunately, my only contribution until now was the initial URL rewriting code that was later improved by Robert. I would love to contribute more, but, as an independent developer, I'm having very small free time. :( Otherwise, I would contribute much more, I swear. ;) -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, software architect and developer, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
Hello Howard, Actually, security was only an exemple. And because, i am pretty new to spring-security and to be honest, not really convinced at the moment, i will not try to defend it. But my question was : What about the Integration of Tapestry in other Framework ? Because many people talked about integration technologies into Tapestry which is IMHO pretty cool, for server side technology and even client side. I was thinking of this question maybe because of some frustration, i admit :) but i think that opening API to other technologies contributes to make a framework popular as much as the inverse. However, let's continue with security exemple. Let's imagine that tomorrow, we expose some of our features with a technology like DWR, or some REST API or anything that goes though HTTP : Will i have to : 1. Re-implement security into those technologies 2. Create some extension to my existing spring-security 3. Implement DWR or REST API into Tapestry, implement a new Dispatcher, an then extend my own security implementation to handle security for this new type of Request - The first solution is the worst i should do :) - The second sounds reasonable to me from an architecture point of view, i keep security layer independant from underlying technologies and in front of all my services - The third make me consider Tapestry as an application container, and not only a Web Framework. To be honest, the third is maybe the more interesting from my developer point of view, because like many, i like to do it myself. But i have learned with my professional experience that re-invent the wheel is rarely the best approach. This is the reason why i am investigating into other technologies to achieve my goals. I don't think this is so bad... even for simple things like securing access to pages. Also, i don't think that analyzing Tapestry URLs from the outside is so rare, it is actually used deep into the pipeline (Dispatcher) but does not require so many parameters : is see request path and request locale... My objective is not to criticize because i am convinced 100% by Tapestry, but simply to open the discussion instead of focusing on existing contribution in Tapestry. Which, i repeat is not so complicated once you get familiar with Tapestry Architecture. Best Regards, Christophe. 2009/12/24 Howard Lewis Ship > On Thu, Dec 24, 2009 at 2:09 AM, cordenier christophe > wrote: > > Hello, > > > > And what about integration of Tapestry in other framework ? > > > > From my experience view, integrating technologies in Tapestry is fun and > > fast, and the one provided by Tapestry are really good and enough to do > what > > a Web Application should do. !but when i want to do the inverse i am > facing > > a problem with Tapestry public API. Getting the Tapestry registry is > simple > > but calling services from the outside is not as easy. > > > > For exemple, currently i am trying to secure my application by using > > spring-security to centralize security concerns, and then create a > RoleVoter > > to secure also Tapestry URLs. To achieve this, Spring allows me to access > to > > the servlet context and then to Tapestry Registry, now we can imagine > that > > analyzing the URL will be as easy as using the ComponentEventLinkEncoder > > service, but in real i had to create an instance of RequestImpl, retrieve > > others services, set the request into the RequestGlobals... service just > to > > analyze the URL ! > > I can see where your frustration might come from in this respect. At > many times during the > development of Tapestry, we've had to make a choice: easy and > automatic for the typical user, > or easily extensible for the power-developer. That's a no-brainer: > easy and automatic for the typical user is the way to go. > > In this particular case, it was all about making things work correctly > from inside Tapestry; the idea > that you would be "analyzing" a Tapestry URL when not in the middle of > processing a Tapestry request (and therefore, deep > into the pipeline that automatically sets up the RequestGlobals > values) is just foreign to Tapestry. That is, to make > that rare use-case easier for you, would complicate the code for most > other users, making it that much harder to extend and > override Tapestry for more typical use cases. > > In fact, where other people might write servlets, I would tend to > contribute a new Dispatcher to the MasterDispatcher > service to accomplish the same goal (in the rare case that existing > Dispatchers and other Tapestry mechanisms could not > fulfill the required role). > > I'm also a bit surprised at how eager people are to make use of > cumbersome solutions like Spring Security to accomplish simple tasks > such > as protecting pages. The Spring Security logic is path-based, > requiring an awkward mapping from paths to Tapestry pages. When I > need to implement that > kind of security, I define annotations that I can place on pages and > provide a filter that che
Re: About T5 integration modules
Il 24/12/2009 19:50, Howard Lewis Ship ha scritto: > I'm also a bit surprised at how eager people are to make use of > cumbersome solutions like Spring Security to accomplish simple tasks > such > as protecting pages. The Spring Security logic is path-based, > requiring an awkward mapping from paths to Tapestry pages. When I > need to implement that > kind of security, I define annotations that I can place on pages and > provide a filter that checks for the annotation on the page ... and > I've seen multiple clients > do the same thing. This is a very good example of what is probably missing in Tapestry, at least from the point of view of a new user. Is this technique documented somewhere? Is this demonstrated by some existing archetype or demo app? Is this part of any Maven archetype or of any "canonical" way of developing applications with Tapestry. Is this approach "advertised" somewhere on the Tapestry web site? As a newbie, to discover/design this approach by myself I first have to study (Java and) Tapestry quite in deep and to understand it quite well. As a programmer, it is my usual job to study and understand new technologies and new tools but... as a "smart" programmer I also decided to use a framework like Tapestry just to save some time and some effort... There is a evident contradiction... :-) If Tapestry does not offer anything for my Authentication/Authorization needs, I will just look somewhere else, for example at Spring's site (ACEGI/Spring security). I will not reinvent the n-th wheel by myself. If Tapestry wants to be a "package of ready-to-use solutions" for the typical webapp developer, the solutions it provides have to be advertised, documented, demonstrated and made readibly usable by the new users, in particular the ones who have little or any experience with Java. BEWARE: I'm not saying YOU did not enough or that you did the wrong thing with Tapestry. I'm just telling you what is missing in T5 from my POV. Tapestry IS a wonderful piece of code and I do like it a lot. > Ideally there would be a single solution for this, > but I've found that page security is just not a one-size-fits-all > solution. Maybe a Tapestry 5 component/module would be a good general-purpose solution for this Authentication/Authorization common need. Maybe even a HowTo or a demo would be enough. At least, they could be a solution for 80% of the applications (the ones that uses the approach proposed by ACEGI/Spring Security, BTW). Maybe Tapestry does not need the dozens of components that are available for other frameworks, like Wicket, but it surely need some ready-to-use, standard solutions for a few very diffused, very standard needs like authentication and access control. > In other words, jumping over backwards for integrations with > technologies is often not the best approach. Yes, it would be nice to > have a checkbox "compatible with Spring Security" but I'd rather talk > about how easy it is to create your own custom extensions that work > precisely as you need. Even better, it would be fantastic to have a Maven archetype switch to enable the access control subsystem generation. Even better again, this could/should be supplied by derived works, like Tynamo (and it will, as long as I know). This would keep T5 as simple as possible while still supplying the user with a rich feature set. Tynamo and AppFuse are extremely important for Tapestry for many reasons and one of those reasons is "standardization". As a new user, I expect to find a canonical way to develop Tapestry/Tynamo applications and a canonical set of tools. This because I do not want, and cannot, spend a few weeks trying to discover the right tools and the right design patterns to be used for the task at hand by myself. As a quite typical new user, I need /guidance/ as well, not just a toolbox. > We've had this discussion at Formos; it was often easier to create a > totally custom solution in Tapestry than it was to take an > off-the-shelf solution that did 80% of what was needed and customize > it the last 20% of the way. That is surely true but the people who can understand and use this "from-scratch" approach maybe is not the kind of people who would use Tapestry. As a Python programmer, I can usually avoid to use code written by others and I can develop everything from scratch. This often keeps me away from Django or Pylons, even if they do supply most of required tools for the task at hand (together with a long list of ties...). If I had this same dominance of the Java technology, maybe I would write everything from scratch and I would not use Tapestry at all. I'm not saying that I want to use Tapestry to cope with my ignorance of Java, of course, but I do think I have the right to not be a Java ninja just to use a framework. ;-) I'm not saying that Tapestry is hard to understand and use, either. I'm just saying that many of its gems are still hidden in a jungle of code and documentation and needs to be unveiled.
Re: About T5 integration modules
Hi, About pages protected access, I think that the tapestry5-portlet module will provide (through portal platform) implementations of much of the common functionality that any web-based application would require: role-based security (including authentication and authorization), user registration and administration, self resetting of user passwords. In the mean time, I'm using Chenillekit Access module. Best Regards, Marcus
Re: About T5 integration modules
> I'm also a bit surprised at how eager people are to make use of > cumbersome solutions like Spring Security to accomplish simple tasks > such > as protecting pages. The Spring Security logic is path-based, > requiring an awkward mapping from paths to Tapestry pages. When I > need to implement that > kind of security, I define annotations that I can place on pages and > provide a filter that checks for the annotation on the page ... and > I've seen multiple clients > do the same thing. Ideally there would be a single solution for this, > but I've found that page security is just not a one-size-fits-all > solution. Howard, I think people are looking for these kind of integrations because there is no tapestry module allowing them to secure there pages. Of course you may argument that it is easy to build a Dispatcher and define some custom annotations. That's true if you managed to understand how these things work. But if you've just started with tapestry, in my experience this is not that easy. Then you remember about Spring Security or any other solution you are used to and try to make use of it in your new tapestry-world. In my oppinion, providing a standard way which fits for most users would help a lot. Given that there is chenillekit and tynamo-security, maybe its even enough to promote them in prominent place on the homepage. Something like a page with common problems and their solution... But its important to tell the users that its OK to use third-party modules that are not part of the project. But some companies do not allow non-apache modules at all (or the process of getting admission is time consuming..). But my feeling is tapestry is not used in these places anyway, so it may not be an argument. Piero - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
On Thu, Dec 24, 2009 at 2:09 AM, cordenier christophe wrote: > Hello, > > And what about integration of Tapestry in other framework ? > > From my experience view, integrating technologies in Tapestry is fun and > fast, and the one provided by Tapestry are really good and enough to do what > a Web Application should do. !but when i want to do the inverse i am facing > a problem with Tapestry public API. Getting the Tapestry registry is simple > but calling services from the outside is not as easy. > > For exemple, currently i am trying to secure my application by using > spring-security to centralize security concerns, and then create a RoleVoter > to secure also Tapestry URLs. To achieve this, Spring allows me to access to > the servlet context and then to Tapestry Registry, now we can imagine that > analyzing the URL will be as easy as using the ComponentEventLinkEncoder > service, but in real i had to create an instance of RequestImpl, retrieve > others services, set the request into the RequestGlobals... service just to > analyze the URL ! I can see where your frustration might come from in this respect. At many times during the development of Tapestry, we've had to make a choice: easy and automatic for the typical user, or easily extensible for the power-developer. That's a no-brainer: easy and automatic for the typical user is the way to go. In this particular case, it was all about making things work correctly from inside Tapestry; the idea that you would be "analyzing" a Tapestry URL when not in the middle of processing a Tapestry request (and therefore, deep into the pipeline that automatically sets up the RequestGlobals values) is just foreign to Tapestry. That is, to make that rare use-case easier for you, would complicate the code for most other users, making it that much harder to extend and override Tapestry for more typical use cases. In fact, where other people might write servlets, I would tend to contribute a new Dispatcher to the MasterDispatcher service to accomplish the same goal (in the rare case that existing Dispatchers and other Tapestry mechanisms could not fulfill the required role). I'm also a bit surprised at how eager people are to make use of cumbersome solutions like Spring Security to accomplish simple tasks such as protecting pages. The Spring Security logic is path-based, requiring an awkward mapping from paths to Tapestry pages. When I need to implement that kind of security, I define annotations that I can place on pages and provide a filter that checks for the annotation on the page ... and I've seen multiple clients do the same thing. Ideally there would be a single solution for this, but I've found that page security is just not a one-size-fits-all solution. In other words, jumping over backwards for integrations with technologies is often not the best approach. Yes, it would be nice to have a checkbox "compatible with Spring Security" but I'd rather talk about how easy it is to create your own custom extensions that work precisely as you need. We've had this discussion at Formos; it was often easier to create a totally custom solution in Tapestry than it was to take an off-the-shelf solution that did 80% of what was needed and customize it the last 20% of the way. > > Tapestry is so powerful and has everything to work standalone (see wrappers > around servlet API, or PageTester, ...), but sometimes it's hard to exploit > this great feature ... > > Best Regards, > Christophe > > > > 2009/12/23 Howard Lewis Ship > >> While it's true that other frameworks (Grails, Wicket, Rails) have >> large numbers of integrations, if you talk to real developers you find >> out that the majority of those integrations are not actually usable >> for production work. All too often, they are orphaned, unsupported, >> incomplete, naive or coded against an earlier version of the core >> framework ... or some combination of all of those. >> >> I do a lot of training and consulting on Tapestry with a lot of groups >> and what I find is that one size does not fit all, even for simple >> things like user authentication/login. I'm quite happy to have a >> limited number of basic integrations that are documented, supported >> and tested. Would I like every application to just be a matter of >> mixing pre-built modules together? Yes. Do I think it is realistic, >> for ANY framework? No. >> >> On Wed, Dec 23, 2009 at 7:48 AM, Howard Lewis Ship >> wrote: >> > Noe, I've been down this path before, regrettably. The ONLY thing to >> > do it to ignore the trolls. >> > >> > On Tue, Dec 22, 2009 at 11:29 PM, Newham, Cameron >> wrote: >> >> I don't agree with the OP that the ServerSide discussion shows Tapestry >> "has lost the battle" - two posters state they don't want to see Tapestry >> mentioned. That's all there is. >> >> >> >> However, I can't agree with you Thiago. The old saying is "if you say it >> enough times then people will believe it is true". >> >> >> >> If you are just goi
Re: About T5 integration modules
Thiago, every time I see your solutions and the easyness with which you find them I wonder how you have learned to use Tapestry. Do you are involved in design and development of Tapestry core ? Are you a committer that hase learned by using it? Knowing that could really show the way to others , wouldn't it ? Thiago H. de Paula Figueiredo ha scritto: > Em Thu, 24 Dec 2009 07:40:09 -0200, Gerald Bauer > escreveu: > >> I agree with you but I don't think that is the issue here. The >> question was how come with Frameworks such as Wicket there is an >> explosion of integrationmodules written and well documented whereas >> in Tapestry there is only a >> handful. Is this because Tapestry is too complex for achieving such >> goals? > > No. Some years ago, when Tapestry was still in its 5.0.5 version > (pre-pre-pre-alpha), I wrote a very simple Hibernate integration > package in Tapestry-IoC, including automatic transaction management. I > was a complete T-IoC newbie then. I wrote it in 8 hours, most of them > dealing with the transaction management itself, not with T-IoC. > > Summary of the reasons Tapestry and Tapestry-IoC don't have the same > number of integrations as Wicket, as discussed recently in > http://old.nabble.com/Discussion-to26889452s302.html: > > 1) Someone has to write them. Time is needed for this. > > 2) Wicket is way older (4.5 years vs 1.5 years), so the Wicket people > had 3x more time to write them than the Tapestry people. > > 3) More people use Wicket than Tapestry (I don't have any figures), so > the total amount of time for writing integrations is larger. > > Sometimes, technology-related issues have non-technology causes. And > sometimes the best option is not the mostly used. Example: Struts > until some time ago, JSF now. > -- == dott. Ivano Mario Luberti Archimede Informatica societa' cooperativa a r. l. Sede Operativa Via Gereschi 36 - 56126- Pisa tel.: +39-050- 580959 tel/fax: +39-050-9711344 web: www.archicoop.it == - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
Em Thu, 24 Dec 2009 07:40:09 -0200, Gerald Bauer escreveu: I agree with you but I don't think that is the issue here. The question was how come with Frameworks such as Wicket there is an explosion of integrationmodules written and well documented whereas in Tapestry there is only a handful. Is this because Tapestry is too complex for achieving such goals? No. Some years ago, when Tapestry was still in its 5.0.5 version (pre-pre-pre-alpha), I wrote a very simple Hibernate integration package in Tapestry-IoC, including automatic transaction management. I was a complete T-IoC newbie then. I wrote it in 8 hours, most of them dealing with the transaction management itself, not with T-IoC. Summary of the reasons Tapestry and Tapestry-IoC don't have the same number of integrations as Wicket, as discussed recently in http://old.nabble.com/Discussion-to26889452s302.html: 1) Someone has to write them. Time is needed for this. 2) Wicket is way older (4.5 years vs 1.5 years), so the Wicket people had 3x more time to write them than the Tapestry people. 3) More people use Wicket than Tapestry (I don't have any figures), so the total amount of time for writing integrations is larger. Sometimes, technology-related issues have non-technology causes. And sometimes the best option is not the mostly used. Example: Struts until some time ago, JSF now. -- Thiago H. de Paula Figueiredo Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor Owner, software architect and developer, Ars Machina Tecnologia da Informação Ltda. http://www.arsmachina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: About T5 integration modules
Hello, And what about integration of Tapestry in other framework ? >From my experience view, integrating technologies in Tapestry is fun and fast, and the one provided by Tapestry are really good and enough to do what a Web Application should do. !but when i want to do the inverse i am facing a problem with Tapestry public API. Getting the Tapestry registry is simple but calling services from the outside is not as easy. For exemple, currently i am trying to secure my application by using spring-security to centralize security concerns, and then create a RoleVoter to secure also Tapestry URLs. To achieve this, Spring allows me to access to the servlet context and then to Tapestry Registry, now we can imagine that analyzing the URL will be as easy as using the ComponentEventLinkEncoder service, but in real i had to create an instance of RequestImpl, retrieve others services, set the request into the RequestGlobals... service just to analyze the URL ! Tapestry is so powerful and has everything to work standalone (see wrappers around servlet API, or PageTester, ...), but sometimes it's hard to exploit this great feature ... Best Regards, Christophe 2009/12/23 Howard Lewis Ship > While it's true that other frameworks (Grails, Wicket, Rails) have > large numbers of integrations, if you talk to real developers you find > out that the majority of those integrations are not actually usable > for production work. All too often, they are orphaned, unsupported, > incomplete, naive or coded against an earlier version of the core > framework ... or some combination of all of those. > > I do a lot of training and consulting on Tapestry with a lot of groups > and what I find is that one size does not fit all, even for simple > things like user authentication/login. I'm quite happy to have a > limited number of basic integrations that are documented, supported > and tested. Would I like every application to just be a matter of > mixing pre-built modules together? Yes. Do I think it is realistic, > for ANY framework? No. > > On Wed, Dec 23, 2009 at 7:48 AM, Howard Lewis Ship > wrote: > > Noe, I've been down this path before, regrettably. The ONLY thing to > > do it to ignore the trolls. > > > > On Tue, Dec 22, 2009 at 11:29 PM, Newham, Cameron > wrote: > >> I don't agree with the OP that the ServerSide discussion shows Tapestry > "has lost the battle" - two posters state they don't want to see Tapestry > mentioned. That's all there is. > >> > >> However, I can't agree with you Thiago. The old saying is "if you say it > enough times then people will believe it is true". > >> > >> If you are just going to stand by and let "trolls" post bad things about > Tapestry unchallenged then they have won the argument - regardless of how > bad their argument may be and how incorrect their views may be. > >> > >> After all, someone pitching up and wanting a framework will read what > they've written and believe it. Who is to say these anti-Tapestry people are > wrong? Not you - because you won't counter their arguments! :-) > >> > >> Sure - don't feed the trolls. But all that is necessary is to say > something positive; not engage them in an argument. > >> > >> Merry Xmas everyone. > >> > >> > >> -Original Message- > >> From: Thiago H. de Paula Figueiredo [mailto:thiag...@gmail.com] > >> Sent: 22 December 2009 15:26 > >> To: Tapestry users > >> Subject: Re: Discussion > >> > >> Em Tue, 22 Dec 2009 12:45:20 -0200, Banchi Liko > >> escreveu: > >> > >>> Hi guys, > >> > >> Hi! > >> > >>> There is a discussion going on here > >>> http://www.theserverside.com/news/thread.tss?thread_id=58858 and seems > >>> like Tapestry ihas already been ruled out as a viable and serious web > >>> framework. > >> > >> TheServerSide comments has too many trolls to have a good, reasonable > >> discussion there. > >> > >>> Wicket seems to be the favorite. > >> > >> Some people who bother to post there like Wicket. Most people who like > >> Tapestry, maybe all of them, don't bother to post there. > >> > >>> I'm sad Tapestry has lost the battle and afraid it might die soon. > >> > >> Please source or explain your statements or you'll be treated like a > troll > >> here. > >> > >>> Please go and contribute and let your voice be > >>> heard before Tapestry dies a horrible death. > >> > >> No, thank you. Posting there will not change Tapestry's fate. Using it, > >> exchanging ideas in the mailing lists and contributing code will (and > >> already is). > >> > >> -- > >> Thiago H. de Paula Figueiredo > >> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, > >> and instructor > >> Owner, software architect and developer, Ars Machina Tecnologia da > >> Informação Ltda. > >> http://www.arsmachina.com.br > >> > >> - > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >> For additional commands, e-mail: users-h...@tapestry.apache.org > >> > >>
Re: About T5 integration modules
Howard, I agree with you but I don't think that is the issue here. The question was how come with Frameworks such as Wicket there is an explosion of integration modules written and well documented whereas in Tapestry there is only a handful. Is this because Tapestry is too complex for achieving such goals? On Wed, Dec 23, 2009 at 5:21 PM, Howard Lewis Ship wrote: > While it's true that other frameworks (Grails, Wicket, Rails) have > large numbers of integrations, if you talk to real developers you find > out that the majority of those integrations are not actually usable > for production work. All too often, they are orphaned, unsupported, > incomplete, naive or coded against an earlier version of the core > framework ... or some combination of all of those. > > I do a lot of training and consulting on Tapestry with a lot of groups > and what I find is that one size does not fit all, even for simple > things like user authentication/login. I'm quite happy to have a > limited number of basic integrations that are documented, supported > and tested. Would I like every application to just be a matter of > mixing pre-built modules together? Yes. Do I think it is realistic, > for ANY framework? No. > > On Wed, Dec 23, 2009 at 7:48 AM, Howard Lewis Ship > wrote: > > Noe, I've been down this path before, regrettably. The ONLY thing to > > do it to ignore the trolls. > > > > On Tue, Dec 22, 2009 at 11:29 PM, Newham, Cameron > wrote: > >> I don't agree with the OP that the ServerSide discussion shows Tapestry > "has lost the battle" - two posters state they don't want to see Tapestry > mentioned. That's all there is. > >> > >> However, I can't agree with you Thiago. The old saying is "if you say it > enough times then people will believe it is true". > >> > >> If you are just going to stand by and let "trolls" post bad things about > Tapestry unchallenged then they have won the argument - regardless of how > bad their argument may be and how incorrect their views may be. > >> > >> After all, someone pitching up and wanting a framework will read what > they've written and believe it. Who is to say these anti-Tapestry people are > wrong? Not you - because you won't counter their arguments! :-) > >> > >> Sure - don't feed the trolls. But all that is necessary is to say > something positive; not engage them in an argument. > >> > >> Merry Xmas everyone. > >> > >> > >> -Original Message- > >> From: Thiago H. de Paula Figueiredo [mailto:thiag...@gmail.com] > >> Sent: 22 December 2009 15:26 > >> To: Tapestry users > >> Subject: Re: Discussion > >> > >> Em Tue, 22 Dec 2009 12:45:20 -0200, Banchi Liko > >> escreveu: > >> > >>> Hi guys, > >> > >> Hi! > >> > >>> There is a discussion going on here > >>> http://www.theserverside.com/news/thread.tss?thread_id=58858 and seems > >>> like Tapestry ihas already been ruled out as a viable and serious web > >>> framework. > >> > >> TheServerSide comments has too many trolls to have a good, reasonable > >> discussion there. > >> > >>> Wicket seems to be the favorite. > >> > >> Some people who bother to post there like Wicket. Most people who like > >> Tapestry, maybe all of them, don't bother to post there. > >> > >>> I'm sad Tapestry has lost the battle and afraid it might die soon. > >> > >> Please source or explain your statements or you'll be treated like a > troll > >> here. > >> > >>> Please go and contribute and let your voice be > >>> heard before Tapestry dies a horrible death. > >> > >> No, thank you. Posting there will not change Tapestry's fate. Using it, > >> exchanging ideas in the mailing lists and contributing code will (and > >> already is). > >> > >> -- > >> Thiago H. de Paula Figueiredo > >> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, > >> and instructor > >> Owner, software architect and developer, Ars Machina Tecnologia da > >> Informação Ltda. > >> http://www.arsmachina.com.br > >> > >> - > >> 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 > >> > >> > > > > > > > > -- > > 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 > > - > To