[jira] Created: (TAP5-1044) When using a doctype, elements are rendered with default attribute values

2010-03-04 Thread Paul Field (JIRA)
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

2009-12-14 Thread Paul Field (JIRA)

[ 
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

2009-11-09 Thread Paul Field (JIRA)

[ 
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

2009-08-07 Thread Paul Field (JIRA)
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

2009-08-05 Thread Paul Field (JIRA)
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

2009-06-25 Thread Paul Field (JIRA)
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

2009-05-27 Thread Paul Field (JIRA)
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

2009-04-14 Thread Paul Field (JIRA)

[ 
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

2009-04-09 Thread Paul Field (JIRA)

[ 
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

2009-04-08 Thread Paul Field (JIRA)
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

2009-04-07 Thread Paul Field (JIRA)

[ 
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

2009-04-07 Thread Paul Field (JIRA)
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)

2009-03-20 Thread Paul Field (JIRA)
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.