Re: [Informal poll] Version number for Jakarta EE-supporting Tapestry version

2024-08-09 Thread David Taylor

Hello All,

We had the same idea about adding a classifier or altering the maven 
coordinates. What we found is that adding "-jakarata" to the artifact 
names worked extremely well and required very minimal changes to the 
Tapestry 5 gradle build. One benefit of this approach is that we were 
able to use the same version number for both javax and jakarta artifacts 
since they effectively have separate namespaces.


We also investigated the classifiers approach, but abandoned that idea 
quickly since it required much more extensive project changes. We also 
ran into major problems with IntelliJ's handling of source and javadoc 
archives with another library that went down that path (Apache Shiro 
IIRC). In that case, they used a transform to generate the jakarta 
artifacts from the javax artifacts. The net effect was that the IDE was 
confused by the classifiers and selected the wrong sources and javadoc 
archives.


FYI - On a related note, we have been tracking changes to the master 
branch for our jakarata build, and encountered a runtime breakage in 
some of the recent changes (~ 3 weeks ago). The errors we encountered 
were of the of form "Exception assembling embedded component...". We 
were very pressed for time when this happened, and have not had time to 
track down the root cause. I read somewhere that this was a known issue 
to be fixed in 5.8.7.


Regards,
David

On 8/7/2024 2:40 PM, Dmitry Gusev wrote:

Hi Thiago,

Just a thought, but did you consider to have a `jakarta` word somewhere in
the artifact coordinates?

Either in the artifact names or as a classifier in the versions. This way
we could still have release numbers continue naturally and let the users
pick the flavor. We can eventually stop producing non-jakarta flavors when
time comes, if ever, or do javax/jakarta-only fixes if necessary skipping
the flavors where it would make sense.

Having holes (regardless how big or small they are) in version numbers will
break semver and tooling that rely on its conventions potentially.


Regards,
Dmitry


On Wednesday, July 31, 2024, Thiago H. de Paula Figueiredo <
thiag...@gmail.com> wrote:


Hello, Tapestry community!

As already discussed, the Jakarta EE an javax.servlet versions of the
Servlet API have some differences that go beyond the package rename, but,
at the same time, the Tapestry team won't leave the javax.servlet users
behind. We'll have 2 different branches, master on Jakarta EE) and javax,
and we'll keep them in feature parity as much as possible (of course,
Jakarta EE is the living API, while javax.servlet is dead, so any future
Tapestry feature that depends on something Jakarta EE has but javax.servlet
doesn't won't be backported to the javax branch).

With the approach decided, we arrive at a problem similar to what same say
is the most difficult one in software development: naming things. Current
Tapestry is at version 5.8.6. What should be the version number for the
upcoming Jakarta EE-supporting version? I'd like to remind everyone that
the project itself is Tapestry 5, given it's a complete rewrite that shares
no code with Tapestry 4 and other previous versions, so, for example,
version 5.8.6 should actually be considered version 8.6 of Tapestry 5.

  The Tapestry team has come up with some suggestions:

* 5.50: Pros: 50 is a round number, half of 100, a lot larger than 8, so we
have a lot of room for new Tapestry major releases of the javax branch to
be 5.9.x, 5.10.x, etc. Con: no easy association between javax and Jakarta
version.

* 5.19: Pros: 9 is the Jakarta EE version containing the Servlet API
version with the jakarta.servlet package used by Tapestry in the branch
that supports it. While it doesn't leave as much room for new major
releases of the javax branch, it does leave a good number. Con: no easy
association between javax and Jakarta version.

* 5.18: Pro: easy association between versions of javax and Jakarta
branches, which would be kept in a constant version difference. We could
even have the first Jakarta release to be 5.18.7 while the javax release
would be 5.8.7 (we're planning to release it in the upcoming weeks). Con:
less room for major releases.

* 5.28: Mostly same as above, but with larger room for major releases.

* 5.9: Pro: matches the Jakarta EE version. Cons: no room for major
releases at all. (Me, Thiago, really dislike this idea, but another
committer suggested it and really loves it, so here it is, hehehe).

* Something else you suggest (with rationale, please).

There's no perfect solution. All of them come with a bit of confusion. I
personally would go with either 5.18 or 5.28 and have the first release
being 5.18.7 or 5.28.7 to align with the upcoming 5.8.7 release.

I'm looking forward to your feedback.

Cheers!

--
Thiago H. de Paula Figueiredo







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

Re: [ANNOUNCEMENT] Tapestry 5.8.4 release

2024-02-13 Thread David Taylor
First, thanks for the 5.8.4 release! The timing was perfect since 
underscore.js was one of the items flagged in a recent vulnerability scan.


I am also very interested in the Jakarata EE migration. We are currently 
in the process of upgrading to Spring Boot 3.2 since support for 2.7 
ended in November 2023.


Given there is no schedule for official Tapestry Jakarta EE support, we 
decided to create and host an internal build of Tapestry. I applied the 
changes provided by Christian Köberl in pull request TAP5-2741 to the 
5.8.4 sources and everything is looking good so far. Thank you so much 
for providing the pull request!


We initially considered publishing the Tapestry jars with a classifier 
of "jakarta" similar to other projects, but that required substantial 
changes to the build. Instead, we made a few small changes to the build 
to publish the Tapestry artifacts with a Maven group Id of 
*org.apache.tapestry-jakarta*. That approach was much simpler and avoids 
the collision with the non-jakarta artifacts.


I would be very interested in everyone's thoughts on how the official 
Jakarta EE support should work. Perhaps it would be feasible to create 
an automated patch and build process that can be maintained in parallel 
to the official Tapestry build? While it may not be as elegant as a 
fully integrated approach, I believe it would address the immediate need 
for Jakarta EE artifacts without significantly increasing the 
maintenance costs. Thoughts?


Best Regards,
David  Taylor


On 2/13/2024 8:00 AM, Thiago H. de Paula Figueiredo wrote:

On Tue, Feb 13, 2024 at 8:20 AM Carlos Montero Canabal
  wrote:


Good job Tapestry Team, congratulations!

Thanks!


I have a question. This release supports Java 21 but checking Tomcat
versions (https://tomcat.apache.org/whichversion.html), If I want to use
Java 21 I have to use Tomcat 11.0.X and this version requires servlet spec
6.1. From the 6.0 version, servlet is provided by jakarta and all package
names switch from javax.servlet to jakarta.servlet.
Any updates about migrating tapestry code from javax to jakarta?

We won't provide any schedule, but indeed our main priority now is to
provide a Tapestry version using the jakarta.* packages and Servlet
API 6.

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



Re: Tapestry and Typescript

2021-09-12 Thread David Taylor

Hi Ben,

Have you considered using Graal Javascript in place of Rhino? It 
implements the latest ECMAScript spec and also runs nicely on a plain 
Java 8 VM with minimal dependencies. We have been using Graal for 
advanced scripting features in our product and are very happy with the 
fit and finish. The only thing custom we had to develop was an in-memory 
filesystem implementation to avoid storing files on disk.


Regards,
David

emailsig On 9/2/2021 4:42 AM, Ben Weidig wrote:

Hi Jonathan,

just FYI, I've created an issue for updating Rhino and adding a possibility
to configure it.

https://issues.apache.org/jira/browse/TAP5-2691

Cheers,
Ben

On Thu, Sep 2, 2021 at 10:26 AM Jonathan Luke Shearman
 wrote:


Hi Ben,

Thanks for your reply and ideas!
I did try updating Rhino to the latest version - but it didn't fix the
issue
directly, I think to take advantage of the newer features an ES6 version
flag has to be set, and I haven't had time to try and override that in the
tapestry implementation yet.
I'll try out the ResourceTransformer option, maybe that will be easier to
maintain.

Cheers,
Jonathan

-Original Message-
From: Ben Weidig 
Sent: Wednesday, 1 September 2021 10:52 AM
To: Tapestry users 
Subject: Re: Tapestry and Typescript

Hi Jonathan,

I haven't worked with TS in 5.7.2 so far, but I tried to look into it.

The two issues on Rhino's Github are not very helpful...

https://github.com/mozilla/rhino/issues/658 (solved itself somehow)
https://github.com/mozilla/rhino/issues/430 (solved with newer Rhino
version)

Tapestry uses an older Rhino version, have you tried to using the latest
one?
Not sure if it's compatible though without changes in Tapestry itself,
though.

Another option would be writing your own ResourceTransformer to compile
Typescript yourself using a local TSC instead of typescript.js with Rhino.

Maybe someone else has an idea how to integrate Webpack, our JS-setup is
rather simple.

Cheers,
Ben


On Wed, Sep 1, 2021 at 9:01 AM Jonathan Luke Shearman
 wrote:


Hello,



First post here and I have a feeling it may not be Tapestry related
but wanted to reach out here just in case!



I recently joined a project that has been maintained for a few years
and is currently using Tapestry 5.7.2

Tasked with upgrading some frontend components, I wanted to use
typescript and got it running using the setup in tapestry-webresources
using the Rhino library.

This worked great on my machine and on the web server, but in the last
week some colleagues needed to work on the same code and discovered
that typescript wasn’t getting transpiled on their local setup.



Rhino complains about a “missing name after the . operator” but
references the typescript.js file at line 1467 (exception at the end
of this message) – ie the file used to transpile the other .ts files
as far as I’ve understood.
( Please correct me if I’m mistaken)

I’ve tested this on 8 different colleague machines with only a 50%
success rate unfortunately. We are all running what should be
identical setups, so it’s quite confusing why some don’t work.

It doesn’t seem to depend on node or tsc command line tools, and



Looking into it, I’m thinking it’s some sort of file reading issue –
there are similar issues on Rhino’s github but unresolved there too.

A suggested fix was to change every someObject.delete to
someObject[‘delete’] but I don’t think editing typescript.js is the
right solution here.

The error comes from ‘delete’ being a reserved word in javascript, and
so this is most probably an issue with Rhino’s javascript parser.

I wondered if anyone has ever come across this issue before or might
have some better ideas on what else to check?



And just as more general question – can anyone recommend a better
setup for handling typescript in Tapestry? My next goal is to bring in
npm packages and potentially work on replacing requireJS with
something like webpack, but I’ve seen on previous threads here that
there’s been limited success?

I’ve been considering running npm scripts at Tapestry build time to
‘pre-compile’ all the frontend code in a separate directory and then
hand it back to requireJS by dumping the javascript files into
/modules.. but that feels like overkill.



I’d appreciate any ideas people might have, happy to test anything out
at this point.

Cheers,

Jonathan





Original Exception:

Exception: org.apache.tapestry5.ioc.internal.OperationException

Message: missing name after . operator
(classpath:org/apache/tapestry5/webresources/internal/typescript.js#14
67)

  trace: Streaming compressed module custom-file

 Streaming
classpath:META-INF/modules/custom-file.ts
(compressed)

 Compiling
classpath:META-INF/modules/custom-file.ts
from
TS to JavaScript

 Creating Rhino executor for source(s)
classpath:org/apache/tapestry5/webresources/internal/typescript.js,


classpath:org/apache/tapestry5/webresources/internal/invoke-ty

Re: Tapestry Jumpstart site is down

2020-04-14 Thread David Taylor

Thanks Geoff. I hope you are doing well. Some crazy times.

David

On 4/15/2020 12:04 AM, JumpStart wrote:

Very good question. I’ll see if I can get it up again shortly.

Geoff


On 15 Apr 2020, at 12:02 pm, David Taylor  wrote:

Hi!


Search Results


   Web results

I noticed Geoff's Tapestry Jumpstart site has been down for the last few days. 
DNS is still resolving, but the server responds with a connection timeout. Does 
anyone know what happened to the site?

Thanks,
David


-
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





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



Tapestry Jumpstart site is down

2020-04-14 Thread David Taylor

Hi!


 Search Results


   Web results

I noticed Geoff's Tapestry Jumpstart site has been down for the last few 
days. DNS is still resolving, but the server responds with a connection 
timeout. Does anyone know what happened to the site?


Thanks,
David


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



Re: Tapestry 5.5 progress

2020-01-06 Thread David Taylor

Hello everyone and Happy New Year!

Just following up to see where we are at with testing of 5.5-beta-3.  We 
are testing using a private build from master to pickup the recent 
changes and have not run into any compatibility issues so far.  I am 
curious whether anyone has run into any show stoppers?


Assuming there are no blocking issues, what is the next step forward 
with 5.5?


Regards,
David

On 6/18/2019 8:46 AM, Thiago H. de Paula Figueiredo wrote:

On Thu, Jun 13, 2019 at 5:04 PM David Taylor 
wrote:


Hello,


Hi!



Does anyone know where we stand on the Tapestry 5.5 release?


We should get a release in the upcoming months.



Are there
specific blocking issues that need to be addressed? I recall seeing one
related to Java 11 and ASM, but it is not clear if that is being worked
on at the moment.


It was worked and it's already working, except for one specific case I'm
planning to fix this weekend (overriding of interface default methods).



We are working on upgrading our applications to Java 11 and may be able
to help with troubleshooting of open issues.


Awesome! Please post any issues you find with Tapestry both here and in
Jira so we can properly track and fix them.



Regards,
David


-
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



Tapestry 5.5 progress

2019-06-13 Thread David Taylor

Hello,

Does anyone know where we stand on the Tapestry 5.5 release? Are there 
specific blocking issues that need to be addressed? I recall seeing one 
related to Java 11 and ASM, but it is not clear if that is being worked 
on at the moment.


We are working on upgrading our applications to Java 11 and may be able 
to help with troubleshooting of open issues.


Regards,
David


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



Re: Open Discussion: remove Bootstrap from T5 core

2019-02-20 Thread David Taylor
Anyone have experience working with the @extend directive in CSS 
preprocessors?


I came across a post that advocates decoupling HTML markup from 
bootstrap classes by using @extend. I don't particularly agree with many 
of the points the author makes, but the technique is intriguing and 
might be something that can applied to Tapestry since we support Less. 
Here is the link to the article.


https://hackernoon.com/the-backendification-of-frontend-development-62f218a773d4

The interesting bit is titled "Dealing with CSS Frameworks" and contains 
the following example:


%our-warning-button {
   @extend .btn;
   @extend .btn-warning;
}
.empty-shopping-cart-button {
  @extend %our-warning-button;
}

Searching the web a bit I came across another article that gets into 
this in more detail. The article's title is a bit misleading since it 
actually advocates the @extend technique and offer somes advice on best 
practices.


https://webinista.com/updates/dont-use-extend-sass/

David

emailsig On 2/19/2019 6:03 AM, Chris Poulsen wrote:

Hi

I think working on making the framework "core" more css agnostic seems like
a good direction, allowing things to move forward without having to try and
pick (and maintain) the correct bootstrap version (or other css framework
version/flavor). There is a pretty good chance that whatever is selected,
will not fit the requirements of everybody anyway.

It is a while back, but was the tapestry bootstrap integration not
initially handled "externally" by a markup renderer filter (I guess it
removed the tapestry default styling and added the bootstrap equivalent).
Maybe something similar could be used to apply styling (Tapestry-BS3,
Tapestry- BS4 or whatever) to the tapestry components, without having to
dream up new stuff. (Provided that the processing does not become a
significant performance bottle-neck).





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



Re: Open Discussion: remove Bootstrap from T5 core

2019-02-14 Thread David Taylor
I completely agree. We would like to move to bootstrap 4 and improve our 
integration with Kendo UI in the process.


We also need to upgrade bootstrap 3 to the latest version since there 
have been issues that cause it to show up as a XSS risk on application 
vulnerability scans. Just yesterday bootstrap 3.4.1 was released to 
address CVE-2019-8331.


We would be happy to participate in the development and testing of this 
feature. We are actively developing hybrid applications on Tapestry and 
would be able to test and provide feedback.


On 2/14/2019 6:20 PM, JumpStart wrote:

I think it’s a fabulous idea. Two thumbs up.


On 14 Feb 2019, at 9:07 pm, Bob Harner  wrote:

I agree that Tapestry shouldn't be so tightly coupled to a specific CSS
framework.

For context and some alternative ideas, see this prior discussion of the
same topic:

https://tapestry.markmail.org/search/?q=What+happens+when+Boootstrap+4+is+released%3F

On Thu, Feb 14, 2019, 4:52 AM Ben Weidig 
Hi Jens,

I like the idea of decoupling the core and Bootstrap to make it easier to
use other versions.

Maybe the components should be updated to BS4 for T5.5, with a legacy
fallback or a component swap (can't remember the service doing it, we have
our own implementation, it's doing an advice on
ComponentClassResolver#resolveComponentTypeToClassName or
ComponentInstantiatorSource#getInstantiator).

For 5.4 we've developed an internal solution for using different BS
versions, here are some specifics.

We have multi-tenant-apps with different BS versions (so far up to 3), so
we needed a flexible solution that supports the internal BS and other
versions dynamically.

To make it even more flexible we've added SASS-support and compile
Bootstrap from the source files, with the possibility to add files
beforehand to the compilation step with custom variables etc.

The layout component has an annotation that triggers
a ComponentClassTransformWorker2 attaching a JavaScriptStack containing the
BS version decided by a contributable strategy pipeline.

JavaScript modules were the biggest problems, we started with replacing the
internal modules, but ended up adding additional modules instead. This
worked fine after getting all the dependencies right, but every BS version
might break it again, so we're now using the bundled version of BS JS.

We think this could all be cleaned up nicely if the internal BS wouldn't be
as integrated as it is right now.

Eventually we will release it as open-source, but having an integration
into Tapestry (as a new tapestry-*) would be even nicer :-)

Best regards
Ben


On Thu, Feb 14, 2019 at 10:14 AM Jens Breitenstein 
wrote:


Hi Tapestry guys!

I want to hear/read your opinion about getting rid of the Bootstrap
Library from T5 core.
I would like to move all BS related code (css/js) to a seperate module
like "tapestry-bootstrap3" and decouple the hardcoded BS from T5.
Furthermore I would like to see a second module "tapestry-bootstrap4"
which uses BS4.

 From the sources I see direct dependencies are less than expected. Some
tml's use it (I just ignore the internal T5 pages for now):

 AjaxFormLoop.tml
 class="btn btn-default btn-sm"
 

 BeanEditForm.tml
 class="btn-toolbar"
 class="btn-group"
 class="btn btn-primary"

 DevTool.tml
 
 class="dropdown-menu"
 class="dropdown-header"

 ExceptionDisplay.tml
 class="well"
 class="pull-right"
 class="checkbox"// ?

 Palette.tml
 class="btn-group-vertical"

and some JAVA references like:

 JavaScriptModule.java
 configuration.add("bootstrap/ ...")

 bundledModules=...


Do you think it's worths looking into it, digging deeper?
Any pitfalls I should consider?
Anyone interested to discuss it?


Jens





-
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





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



Re: [ANNOUNCEMENT] Tapestry 5.4.4

2018-12-19 Thread David Taylor
It would be great to see a fresh vision and roadmap for Tapestry going 
forward. Tapestry has many strengths, but has a relatively steep 
learning curve and does not do enough to help new developers get off the 
ground. We have been using Tapestry for a very long time and still find 
it challenging at times, especially when integrating Tapestry with newer 
client-side technologies.


I saw your mention of bootique-tapestry and am curious how that is 
working out? We briefly looked at bootique-tapestry, but decided to 
create a module to integrate with Spring Boot instead. Spring Boot won 
out mostly because of the breadth of what it has to offer and the large 
user community.


There are still a few rough spots in our Spring Boot integration, but 
the effort was very worthwhile. The combination of Gradle + Spring Boot 
+ Tapestry is very powerful and greatly reduces the amount of 
boilerplate needed to create a production ready application. The 
integration with Spring Boot is surprisingly thin and the integration is 
nearly seamless.


Anyone have a sense as to whether the community is interested in 
pursuing a first-class Spring Boot integration?  I would be happy to 
share what we have done if there is real interest in making it a proper 
Tapestry feature. I don't think it would be a huge effort if some of the 
core Tapestry developers were engaged in the process. Having a supported 
integration with Spring Boot might bring much deserved attention and new 
users to Tapestry.


Regards,
David


Congratulations! Thanks to the core team for your continuous work and the 
effort you put into maintaining Tapestry.

I think the whole industry goes the way of trying to simplify things (just take a look 
at the most recent programming languages & frameworks). If we’re talking about 
modernizing and competing with other frameworks, I would like to see Tapestry reducing 
the complexity that is currently required to grasp the framework and its various 
concepts (which are technically great, but sometimes hard to understand if you just 
start working with Tapestry). I think this will only work by providing old & new 
APIs at the same time and by making the upgrade path and improvements very clear in the 
documentation.

Personally I’m also getting into the vibe of smaller services that communicate 
with each other, instead of this one monolithic giant that tries to be 
everything, but is nothing in the end. We use bootique-tapestry (and also other 
Bootique-compatible integrations). I would like to see Tapestry to also go in 
this direction and improve integration on similar deployment environments.

On the other side, I’m currently pretty happy with the state of Tapestry and 
with the framework keeping up with modern Java versions.

Best,
Rafael



On 2018-19-12, at 11:02 AM, Christopher Dodunski 
 wrote:

Good team effort!  It's encouraging to see Tapestry progressing in step
with associated technologies: Java 12 is due out in March, and Hibernate
currently at version 5.3.3.

Tapestry 5 was a leap forward from 4.  Where does the community see
Tapestry 6 at on the Java web landscape?  A free and frank conversation -
Tapestry's strengths and weaknesses, what attracts others to JSF, Wicket
and other competing frameworks, where web frameworks are generally headed,
etcetera - ought to help ensure that Tapestry remains relevant beyond
2020.

Regards,

Chris.


-
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





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



Re: Tapestry 5.3.7 with Tanuki service wrapper

2016-03-30 Thread David Taylor
We use JSW (last non-GPL version) + Jetty 9.3/Tomcat 8 + Tapestry 5.4 in 
production on various flavors of Windows without issue. The only unusual 
thing I have seen is a problem with HikariCP having problems locating 
the jTDS driver at system startup. Very weird since the problem does not 
occur if the server is manually restarted. The fix was to tell HikariCP 
the fully qualified class name of the driver.


David

emailsig On 3/29/2016 3:42 AM, Qbyte Consulting wrote:

Hi,

Has anyone had success running ioc via the Tanuki Service Wrapper product?

I'm having problems with Tapestry instantiating a DAO service that is
injected with EntityManager references.

Suspect a class loader problem, I'm getting inconsistent results. All works
fine from the command line launch?

Probably means this isn't a Tapestry issue, but just interested to know
anyone who's had a good result with Tanuki starting Tapestry?

John





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



Re: Tapestry is a sinking Ship

2016-02-12 Thread David Taylor

If Tapestry is so terrible, why waste all the energy? Just to be obnoxious?

We would abandon Tapestry tomorrow if it weren't so bloody fast and easy 
to extend.



emailsig On 2/12/2016 3:53 PM, Thiago H de Paula Figueiredo wrote:
On Fri, 12 Feb 2016 17:19:28 -0200, Emmanuel Sowah  
wrote:



Hi Tapestry sect,



The state of Tapestry now is very bad, as Howard and all the other 
commiters have abandoned it.


This is not true. Just check Jira and the Git logs.


Even Thiago has secretly abandoned Tapestry.


I have not, and you're telling a lie.

I'm just answering this troll because of the lies he keeps on 
spreading, which are bordering on defamation.






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



Re: Attribute namespace prefix usage

2015-11-23 Thread David Taylor

Hi Cezary,

Thanks for the clarification. I was aware of the problem with id and 
name values related to loops and forms, but did not have a detailed 
picture as to how Tapestry uses "id" and "t:id" in that scenario. The 
same applies to the "name" attribute handling, but we have not yet had a 
need to open that can of worms.


As an aside, the context of my question is related to work we are doing 
to create a hybrid Tapestry / SPA architecture. Getting the two 
paradigms to integrate seamlessly has been an interesting and 
challenging adventure. Hopefully, Tapestry will be moving more that 
direction in the future since client-side technologies are evolving 
rapidly and here to stay.


Thanks,
David


emailsig On 11/23/2015 3:00 PM, Cezary Biernacki wrote:

Hi David,

Regarding your point 1). "t:id" is quite different than "id". "t:id" is
used to map component definitions in templates to component injections in
Java classes. "id" (without namespace) is HTML "id" attribute, and while
often Tapestry generates "id" that is equal to "t:id", it is not always
true (IIRC, e.g. when component is used multiple times on the page, or when
response is generated for Ajax request). Another difference is that "t:id"
must be also constant, while "id" can be dynamically generated.

Use "t:id" when you want to refer to your components in Java code (plus
from some other components, e.g. in Label's "for" attribute). Use "id" when
you want to force some particular "id" value in the generated HTML, but
watch for cases when it is component that might be included multiple times
on a page, in loops or in AJAX responses.

Best regards,
Cezary



On Mon, Nov 23, 2015 at 7:51 PM, David Taylor 
wrote:
Hello,

I am working on a custom component library and have observed some
unexpected behavior regarding attribute namespace prefix usage. Can someone
please clarify the official Tapestry rules regarding the usage of component
attribute namespace prefixes? Here are two scenarios that I believe get to
the crux of the question:

1) Component id attributes (t:id="..." v.s. id="...")

I have been happily using t:id="" in my templates, but found that
Tapestry will not accept values that are not valid Java identifiers. This
is very inconvenient since we are creating a wrapper for an ajax widget set
that uses hyphenated names. What I have found is that using the "id"
attribute without a prefix works:

This fails since "my-button" is not a valid Java identifier:


This succeeds (without the "t:" prefix) and works as expected.


For reference, our custom components implement the ClientElement interface
and use the JavaScriptSupport. allocateClientId(...) method to get the
client element Id from the template.

I have not yet traced into the Tapestry code, but it also appears that
"id" attribute values (without the t: prefix) are being mapped to
equivalent camel-case Java-compatible identifiers. This behavior makes
sense since the HTML 5 DOM reportedly uses a similar attribute mapping
scheme:

http://stackoverflow.com/questions/20985204/does-jquery-internaly-converts-html5-data-attribute-keys-to-lowercase


2) Omitting the t: attribute prefix seems to work except for t:mixins=". .
."

I have found through empirical evidence that I can omit the "t:" attribute
prefix when configuring custom components in templates. The one exception
seems to be t:mixins=". . .", which appears to be ignored if the prefix is
omitted:

This succeeds and applies the mixin to the component:


This is accepted, but does not apply the mixin to the component:


Is the ability to omit the namespace prefix an intentional feature, or a
side effect of the way templates are being parsed?

I am unclear on the expected Tapestry behavior. My original understanding
was that attributes matching declared component properties would behave the
way the mixins attribute is working. Being able to omit the prefix is nice,
but I don't want to depend on a feature that is not officially supported.

Thanks,
David


-
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



Attribute namespace prefix usage

2015-11-23 Thread David Taylor

Hello,

I am working on a custom component library and have observed some 
unexpected behavior regarding attribute namespace prefix usage. Can 
someone please clarify the official Tapestry rules regarding the usage 
of component attribute namespace prefixes? Here are two scenarios that I 
believe get to the crux of the question:


1) Component id attributes (t:id="..." v.s. id="...")

I have been happily using t:id="" in my templates, but found that 
Tapestry will not accept values that are not valid Java identifiers. 
This is very inconvenient since we are creating a wrapper for an ajax 
widget set that uses hyphenated names. What I have found is that using 
the "id" attribute without a prefix works:


This fails since "my-button" is not a valid Java identifier:
   

This succeeds (without the "t:" prefix) and works as expected.
   

For reference, our custom components implement the ClientElement 
interface and use the JavaScriptSupport. allocateClientId(...) method to 
get the client element Id from the template.


I have not yet traced into the Tapestry code, but it also appears that 
"id" attribute values (without the t: prefix) are being mapped to 
equivalent camel-case Java-compatible identifiers. This behavior makes 
sense since the HTML 5 DOM reportedly uses a similar attribute mapping 
scheme:

http://stackoverflow.com/questions/20985204/does-jquery-internaly-converts-html5-data-attribute-keys-to-lowercase


2) Omitting the t: attribute prefix seems to work except for t:mixins=". 
. ."


I have found through empirical evidence that I can omit the "t:" 
attribute prefix when configuring custom components in templates. The 
one exception seems to be t:mixins=". . .", which appears to be ignored 
if the prefix is omitted:


This succeeds and applies the mixin to the component:
   

This is accepted, but does not apply the mixin to the component:
   

Is the ability to omit the namespace prefix an intentional feature, or a 
side effect of the way templates are being parsed?


I am unclear on the expected Tapestry behavior. My original 
understanding was that attributes matching declared component properties 
would behave the way the mixins attribute is working. Being able to omit 
the prefix is nice, but I don't want to depend on a feature that is not 
officially supported.


Thanks,
David


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