[jira] Created: (TAP5-1044) When using a doctype, elements are rendered with default attribute values
When using a doctype, elements are rendered with default attribute values - Key: TAP5-1044 URL: https://issues.apache.org/jira/browse/TAP5-1044 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.5 Reporter: Paul Field It's easiest to see this with an example: !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd; html xmlns:t=http://tapestry.apache.org/schema/tapestry_5_1_0.xsd; body table tbody tr thx/th /tr /tbody /table /body /html Will render the table row as: trth rowspan=1 colspan=1x/th/tr Notice the rowspan and colspan attributes have appeared. If you remove the !DOCTYPE then the th renders without the rowspan/colspan. I believe these default values are coming from the DTD. It's not a problem for the functionality of the page, but it does add to the size of HTML generated (particularly as this affects table cells, of which there are often many in a page). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (TAP5-758) Move TapestryTestConstants from tapestry-test into tapestry-core, so that non-selenium test code does not need to use tapestry-test
[ https://issues.apache.org/jira/browse/TAP5-758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12790278#action_12790278 ] Paul Field commented on TAP5-758: - It's possible that you need several modules to manage the dependencies properly. For example: tapestry-test contains EasyMock/TestNG code and general test code such as TapestryTestConstants tapestry-selenium includes the selenium code (and depends on tapestry-test) If you want to be really serious about dependencies and what you force clients to include (which is more important in the OSGi world), you could break the modules down further: tapestry-test - generic test-related code for Tapestry tapestry-easymock - adds easymock specific extensions for working with Tapestry tapestry-testng - enhancements to TestNG to simplify testing Tapestry tapestry-selenium - enhancements to Selenium to simplify testing in Tapestry I'm not saying that module breakdown is correct, but I'm suggesting that having more modules at finer granularity is something to consider - remember some people prefer Mockito to EasyMock; some people prefer JUnit4 to TestNG; and finer-grain modules give more flexibility and choice. Move TapestryTestConstants from tapestry-test into tapestry-core, so that non-selenium test code does not need to use tapestry-test --- Key: TAP5-758 URL: https://issues.apache.org/jira/browse/TAP5-758 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-test Affects Versions: 5.1.0.5 Reporter: Paul Field The tapestry-test module is meant to be just a couple of base classes to make it easier to build integration test suites around Selenium.. However, org.apache.tapestry5.internal.test.PageTesterContext for tapestry-core uses TapestryTestConstants from tapestry-test. So it seems that anyone doing any kind of tests requires the tapestry-test module and so also imports all the selenium dependencies. That dependency problem could be resolved by moving TapestryTestConstants into tapestry-core. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (TAP5-633) Allow page classes to have a Page suffix that is not included in the URL
[ https://issues.apache.org/jira/browse/TAP5-633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12774946#action_12774946 ] Paul Field commented on TAP5-633: - Thanks for the URL rewriting idea - I've tried it out quickly but I wasn't keen that I still had to use the Page postfix in the .tml files (e.g. when creating a link to the page) - I think that would be confusing. I also had a quick go at advising ComponentClassResolver, but I realised that when Tapestry reports the list of known components (on startup and on exception pages) it would still list the paths including the Page postfix - which, again, I think would be confusing. Allow page classes to have a Page suffix that is not included in the URL -- Key: TAP5-633 URL: https://issues.apache.org/jira/browse/TAP5-633 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.1.0.2 Reporter: Paul Field Priority: Minor I have an application with a lot of read-only pages. For example, I have a page that shows a company and I would like a URI such as: /company/1234 However, if I name the page class Company then I get a naming clash with the domain object Company. What I would like to do is call the Tapestry 5 class CompanyPage - after all, that is what the class represents and it's certainly how the team refers to that thing internally and with our business (i.e. Have you seen the new company page?). So, please could the ComponentClassResolverImpl remove the suffix Page (if it exists) from the class name when it constructs the logical page name? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-808) Add references to tapestry-xpath and tapestry-testify to the documentation
Add references to tapestry-xpath and tapestry-testify to the documentation -- Key: TAP5-808 URL: https://issues.apache.org/jira/browse/TAP5-808 Project: Tapestry 5 Issue Type: Task Components: documentation Affects Versions: 5.1.0.5 Reporter: Paul Field Please can you add the tapestry-testify and tapestry-xpath projects to the related projects list: http://tapestry.formos.com/projects/tapestry-testify/ http://tapestry.formos.com/projects/tapestry-xpath/ Also if you think it is appropriate, could you reference both projects from the unit testing page: http://tapestry.apache.org/tapestry5.1/guide/unit-testing-pages.html - as testify is explicitly designed to help with unit testing and tapestry-xpath is very useful for writing assertions about rendered documents. Also if you think it is appropriate, could you reference tapestry-xpath from mixins page: http://tapestry.apache.org/tapestry5.1/guide/mixins.html - as XPath can be extremely useful for traversing the DOM in certain mixins. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-804) Element#addClassName can create an additional new 'class' attribute
Element#addClassName can create an additional new 'class' attribute --- Key: TAP5-804 URL: https://issues.apache.org/jira/browse/TAP5-804 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.0.18 Reporter: Paul Field When writing a mixin that uses Element#addClassName, I noticed that I was getting two 'class' attributes in my element - rather than the one I was expecting. I've narrowed the problem down to a problem with how namespaces are used in Element and the following test case shows the problem. The actual output is: e class=a b class=a xmlns=http://www.w3.org/1999/xhtml;/e -- package test.com.db.fusion.iface.web.tapestry5.mixins; import junit.framework.TestCase; import org.apache.tapestry5.dom.DefaultMarkupModel; import org.apache.tapestry5.dom.Document; import org.apache.tapestry5.dom.Element; public class AddClassNameTest extends TestCase { public void test() { Document document = new Document(new DefaultMarkupModel()); Element element = document.newRootElement(http://www.w3.org/1999/xhtml;, e); element.attribute(class, a); element.addClassName(b); assertEquals(e class=\a b\ xmlns=\http://www.w3.org/1999/xhtml\;/e, element.toString()); } } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-758) Move TapestryTestConstants from tapestry-test into tapestry-core, so that non-selenium test code does not need to use tapestry-test
Move TapestryTestConstants from tapestry-test into tapestry-core, so that non-selenium test code does not need to use tapestry-test --- Key: TAP5-758 URL: https://issues.apache.org/jira/browse/TAP5-758 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-test Affects Versions: 5.1.0.5 Reporter: Paul Field The tapestry-test module is meant to be just a couple of base classes to make it easier to build integration test suites around Selenium.. However, org.apache.tapestry5.internal.test.PageTesterContext for tapestry-core uses TapestryTestConstants from tapestry-test. So it seems that anyone doing any kind of tests requires the tapestry-test module and so also imports all the selenium dependencies. That dependency problem could be resolved by moving TapestryTestConstants into tapestry-core. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-723) Fix links to Autobuild JavaDoc on the Tapestry IOC Injection documentation page
Fix links to Autobuild JavaDoc on the Tapestry IOC Injection documentation page --- Key: TAP5-723 URL: https://issues.apache.org/jira/browse/TAP5-723 Project: Tapestry 5 Issue Type: Improvement Components: documentation Affects Versions: 5.1.0.5 Reporter: Paul Field Priority: Minor See http://tapestry.apache.org/tapestry5.1/tapestry-ioc/injection.html Under the MasterObjectProvider Lookup section, the link to the Autobuild annotation is broken. The link is http://tapestry.apache.org/tapestry5.1/apidocs/org/apache/tapestry5/ioc/annotation/Autobuild.html But should be: http://tapestry.apache.org/tapestry5.1/apidocs/org/apache/tapestry5/ioc/annotations/Autobuild.html (note the missing 's' on /annotation/) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (TAP5-633) Allow page classes to have a Page suffix that is not included in the URL
[ https://issues.apache.org/jira/browse/TAP5-633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12698820#action_12698820 ] Paul Field commented on TAP5-633: - The view package idea is interesting the naming is more appealing to me than the Index idea, but still doesn't seem ideal to me. Partly, it seems a bit weird having the verb first though; it seems that the usual convention in REST-type styles is to have it at the end of the path (for example see http://microformats.org/wiki/rest/urls ). I'm also not sure how it mixes in when you *do* have some entities with other operations. It would imply that there would be a view package, an edit package a create package and a delete package for example; which doesn't seem a natural categorisation to me. I suppose in that case it does make sense to have a (for example) user package containing EditUser, DeleteUser classes you would have nice REST-style URLs. Of course, because I seem to have a knack of being trouble, my system has command objects that have names like EditUser so those clash with the page names too and I would like to have EditUserPage :-) Perhaps, I need to rename to have EditUserCommand... Allow page classes to have a Page suffix that is not included in the URL -- Key: TAP5-633 URL: https://issues.apache.org/jira/browse/TAP5-633 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.1.0.2 Reporter: Paul Field Priority: Minor I have an application with a lot of read-only pages. For example, I have a page that shows a company and I would like a URI such as: /company/1234 However, if I name the page class Company then I get a naming clash with the domain object Company. What I would like to do is call the Tapestry 5 class CompanyPage - after all, that is what the class represents and it's certainly how the team refers to that thing internally and with our business (i.e. Have you seen the new company page?). So, please could the ComponentClassResolverImpl remove the suffix Page (if it exists) from the class name when it constructs the logical page name? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (TAP5-633) Allow page classes to have a Page suffix that is not included in the URL
[ https://issues.apache.org/jira/browse/TAP5-633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12697561#action_12697561 ] Paul Field commented on TAP5-633: - Nice idea but unfortunately, then I will have a lot of packages that contain just one class. The core part of our app is primarily a collection of read-only pages centred on the domain objects: Company, Analyst, Region, Sector, Statistics and so on. As I say, the business naturally refer to these as the Company Page and Analyst Page etc... From a Domain Driven Design point-of-view I like the idea that the Java classes are named after the business domain terms. Interestingly as we write financial applications Index has a very specific meaning so a Company Index means something to the business and IndexIndex would be really confusing :-) One of our other apps does have an Index Page (in the business sense). Allow page classes to have a Page suffix that is not included in the URL -- Key: TAP5-633 URL: https://issues.apache.org/jira/browse/TAP5-633 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.1.0.2 Reporter: Paul Field Priority: Minor I have an application with a lot of read-only pages. For example, I have a page that shows a company and I would like a URI such as: /company/1234 However, if I name the page class Company then I get a naming clash with the domain object Company. What I would like to do is call the Tapestry 5 class CompanyPage - after all, that is what the class represents and it's certainly how the team refers to that thing internally and with our business (i.e. Have you seen the new company page?). So, please could the ComponentClassResolverImpl remove the suffix Page (if it exists) from the class name when it constructs the logical page name? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-633) Allow page classes to have a Page suffix that is not included in the URL
Allow page classes to have a Page suffix that is not included in the URL -- Key: TAP5-633 URL: https://issues.apache.org/jira/browse/TAP5-633 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.1.0.2 Reporter: Paul Field Priority: Minor I have an application with a lot of read-only pages. For example, I have a page that shows a company and I would like a URI such as: /company/1234 However, if I name the page class Company then I get a naming clash with the domain object Company. What I would like to do is call the Tapestry 5 class CompanyPage - after all, that is what the class represents and it's certainly how the team refers to that thing internally and with our business (i.e. Have you seen the new company page?). So, please could the ComponentClassResolverImpl remove the suffix Page (if it exists) from the class name when it constructs the logical page name? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (TAP5-541) Regression: Parameter namespacePrefix was null
[ https://issues.apache.org/jira/browse/TAP5-541?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12696495#action_12696495 ] Paul Field commented on TAP5-541: - We had the same issue with the Parameter namespacePrefix was null error after upgrading to T5.1.0.2. It turned out that we had an old version of the woodstox library in the classpath. They appear to have changed the Maven group/artifact ids so Tapestry's dependency on a newer version didn't replace the older version. The *OLD* library has a group id of org.codehaus.woodstox and an artifact id of wstx-asl. If you find you have a library that pulls in this other library, you can exclude the dependency like this: dependency groupIdcom.db.eqr.rsm/groupId artifactIdrsm-client/artifactId version1.0/version exclusions exclusion groupIdorg.codehaus.woodstox/groupId artifactIdwstx-asl/artifactId /exclusion /exclusions /dependency Regression: Parameter namespacePrefix was null -- Key: TAP5-541 URL: https://issues.apache.org/jira/browse/TAP5-541 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1 Environment: Windows XP 5.1,x86, Java HotSpot(TM) Client VM 1.5.0_15-b04,Sun Microsystems Inc., JBoss 4.2.3 Reporter: Andrej Aschenbrenner Assignee: Howard M. Lewis Ship I get an exception after switching to the new Tapestry 5.1.0.0 Version. Relevant Template snippet: html xmlns=http://www.w3.org/1999/xhtml; xmlns:t=http://tapestry.apache.org/schema/tapestry_5_0_0.xsd; head meta http-equiv=Content-Type content=text/html; charset=UTF-8 / title${title}/title meta name=version content=${version} / link rel=stylesheet type=text/css href=${asset:context:css/global.css}/ link rel=stylesheet type=text/css title=Standard href=${asset:context:css/standard/style.css}/ /head ... Exception StackTrace snippet: 16:18:38,581 ERROR [Login] Render queue error in CompositeRenderCommand[Start[http://www.w3.org/1999/xhtml html], DefineNamespace[null http://www.w3.org/1999/xhtml], Text[ ], Start[http://www.w3.org/1999/xhtml head], Text[ ], Start[http://www.w3.org/1999/xhtml meta], AttributeNS[ http-equiv Content-Type], AttributeNS[ content text/html; charset=UTF-8], End, Text[ ], Start[http://www.w3.org/1999/xhtml title]]: Parameter namespacePrefix was null. java.lang.IllegalArgumentException: Parameter namespacePrefix was null. at org.apache.tapestry5.ioc.internal.util.Defense.notNull(Defense.java:37) at org.apache.tapestry5.dom.Element.defineNamespace(Element.java:519) at org.apache.tapestry5.internal.services.MarkupWriterImpl.defineNamespace(MarkupWriterImpl.java:221) at org.apache.tapestry5.internal.pageload.PageLoaderImpl$4.render(PageLoaderImpl.java:341) at org.apache.tapestry5.internal.pageload.CompositeRenderCommand.render(CompositeRenderCommand.java:68) at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74) at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121) at $PageRenderQueue_11fb85075e4.render($PageRenderQueue_11fb85075e4.java) at $PageRenderQueue_11fb85075db.render($PageRenderQueue_11fb85075db.java) at org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) ... For me it seems that Tapestry requires a namespace declaration on the title tag. But I have already the default namespace declaration on the html xmlns=http://www.w3.org/1999/xhtml; tag. P.S. with only html xmlns:t=http://tapestry.apache.org/schema/tapestry_5_0_0.xsd; it fails also. But it did work on Tapestry 5.0.18 Thanks, Andrej Aschenbrenner -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-627) Allow injection of named spring beans
Allow injection of named spring beans - Key: TAP5-627 URL: https://issues.apache.org/jira/browse/TAP5-627 Project: Tapestry 5 Issue Type: New Feature Components: tapestry-spring Affects Versions: 5.1.0.2 Reporter: Paul Field Since 5.1 now handles Spring beans through the master object provider, it is (I think) impossible to specify spring beans by name, which is a pain when you have multiple spring beans implementing the same interface. Could the Spring Object Provider take notice of an annotation that specifies the bean name, please? (e.g. @Service or @Id) It would be particularly nice if the same annotation specified the names of Tapestry IOC services *and* spring beans, so that if we decide to move services from Spring into Tapestry IOC we don't need to change any other code. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-589) Make Tapestry DOM Attribute publically available (to support Jaxen XPath extension)
Make Tapestry DOM Attribute publically available (to support Jaxen XPath extension) - Key: TAP5-589 URL: https://issues.apache.org/jira/browse/TAP5-589 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Reporter: Paul Field I've written a Jaxen (http://jaxen.codehaus.org/) extension so I can use XPath with the Tapestry DOM. All going well so far, except that I can't get sensible access to attributes because there is no way to iterate over all attributes in org.apache.tapestry5.dom.Element. Please add a CollectionAttribute getAttributes() method to Element and make the Attribute class public. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.