You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by Howard Lewis Ship <hl...@gmail.com> on 2006/12/12 17:24:27 UTC

Module Naming / Re: svn commit: r486027 - in /tapestry/tapestry5/tapestry-Workbench: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/tapestry/ src/main/java/org/apache/tapestry/workbench/ src/mai

A nitpick: I prefer that module names by all lower case, i.e.,
"tapestry-workbench" not "tapestry-Workbench".  Something of a Maven
standard practice.

And I hope we come up with something more compelling as a demo than the
Workbench.

Finally, this needs to be moved to:

tapestry/tapestry5/tapestry-workbench/trunk

this is a very important Subversion practice.

On 12/11/06, freemant@apache.org <fr...@apache.org> wrote:
>
> Author: freemant
> Date: Mon Dec 11 21:05:43 2006
> New Revision: 486027
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=486027
> Log:
> Start porting the Workbench to T5.
>
> Added:
>     tapestry/tapestry5/tapestry-Workbench/.classpath
>     tapestry/tapestry5/tapestry-Workbench/.project
>     tapestry/tapestry5/tapestry-Workbench/pom.xml
>     tapestry/tapestry5/tapestry-Workbench/src/
>     tapestry/tapestry5/tapestry-Workbench/src/main/
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Any.java
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Border.java
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Img.java
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Fields.java
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Home.java
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/services/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/services/AppModule.java
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.html
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.properties
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Fields.html
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home.html
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home_de.html
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/WEB-INF/
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/WEB-INF/web.xml
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/exception.css
>
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/workbench.css
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-
> focus.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_de.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_fr.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_it.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_de.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_fr.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_it.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_de.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_fr.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_it.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Continue.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Update.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning-
> small.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/minus.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/nodeimage.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/plus.gif
> (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-left.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-mid.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-right.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-left.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-mid.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-right.gif   (with props)
>     tapestry/tapestry5/tapestry-Workbench/src/test/
>     tapestry/tapestry5/tapestry-Workbench/src/test/conf/
>     tapestry/tapestry5/tapestry-Workbench/src/test/conf/webdefault-
> nojsp.xml
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/
>
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/
>
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/
>
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/
>
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/SeleniumClientFactory.java
>
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/TabLinksTest.java
>
>     tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/WorkbenchLauncher.java
>     tapestry/tapestry5/tapestry-Workbench/testng.xml
>
> Added: tapestry/tapestry5/tapestry-Workbench/.classpath
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/.classpath?view=auto&rev=486027
>
> ==============================================================================
> --- tapestry/tapestry5/tapestry-Workbench/.classpath (added)
> +++ tapestry/tapestry5/tapestry-Workbench/.classpath Mon Dec 11 21:05:43
> 2006
> @@ -0,0 +1,9 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<classpath>
> +       <classpathentry kind="src" path="src/main/java"/>
> +       <classpathentry kind="src" path="src/test/java"/>
> +       <classpathentry kind="src" path="src/main/resources"/>
> +       <classpathentry kind="con" path="
> org.eclipse.jdt.launching.JRE_CONTAINER"/>
> +       <classpathentry kind="con" path="
> org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
> +       <classpathentry kind="output" path="target/classes"/>
> +</classpath>
>
> Added: tapestry/tapestry5/tapestry-Workbench/.project
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/.project?view=auto&rev=486027
>
> ==============================================================================
> --- tapestry/tapestry5/tapestry-Workbench/.project (added)
> +++ tapestry/tapestry5/tapestry-Workbench/.project Mon Dec 11 21:05:43
> 2006
> @@ -0,0 +1,19 @@
> +<projectDescription>
> +  <name>tapestry-Workbench</name>
> +  <comment/>
> +  <projects/>
> +  <buildSpec>
> +    <buildCommand>
> +      <name>org.eclipse.jdt.core.javabuilder</name>
> +    </buildCommand>
> +               <buildCommand>
> +                       <name>org.maven.ide.eclipse.maven2Builder</name>
> +                       <arguments>
> +                       </arguments>
> +               </buildCommand>
> +  </buildSpec>
> +  <natures>
> +    <nature>org.eclipse.jdt.core.javanature</nature>
> +               <nature>org.maven.ide.eclipse.maven2Nature</nature>
> +  </natures>
> +</projectDescription>
>
> Added: tapestry/tapestry5/tapestry-Workbench/pom.xml
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/pom.xml?view=auto&rev=486027
>
> ==============================================================================
> --- tapestry/tapestry5/tapestry-Workbench/pom.xml (added)
> +++ tapestry/tapestry5/tapestry-Workbench/pom.xml Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,79 @@
> +<?xml version="1.0"?>
> +<project>
> +       <parent>
> +               <artifactId>tapestry-project</artifactId>
> +               <groupId>org.apache.tapestry</groupId>
> +               <version>5.0.0-SNAPSHOT</version>
> +               <relativePath>../tapestry-project/pom.xml</relativePath>
> +       </parent>
> +       <modelVersion>4.0.0</modelVersion>
> +       <groupId>org.apache.tapestry</groupId>
> +       <artifactId>tapestry-Workbench</artifactId>
> +       <packaging>war</packaging>
> +       <name>Tapestry Workbench</name>
> +       <version>5.0.0-SNAPSHOT</version>
> +       <url>http://tapestry.apache.org/tapestry5/tapestry-core/</url>
> +       <inceptionYear>2006</inceptionYear>
> +       <scm>
> +               <connection>
> +                       scm:svn:
> https://svn.apache.org/repos/asf/tapestry/tapestry5/
> +                       ${pom.artifactId}/trunk/
> +               </connection>
> +               <url>
> +
> http://svn.apache.org/viewvc/tapestry/tapestry5/${pom.artifactId}/t
> +                       runk/
> +               </url>
> +       </scm>
> +       <dependencies>
> +               <dependency>
> +                       <groupId>org.apache.tapestry</groupId>
> +                       <artifactId>tapestry-core</artifactId>
> +                       <scope>compile</scope>
> +               </dependency>
> +               <dependency>
> +                       <groupId>org.testng</groupId>
> +                       <artifactId>testng</artifactId>
> +                       <version>5.1</version>
> +                       <classifier>jdk15</classifier>
> +                       <scope>test</scope>
> +               </dependency>
> +               <dependency>
> +                       <groupId>org.openqa.selenium.server</groupId>
> +                       <artifactId>selenium-server</artifactId>
> +                       <version>0.8.1</version>
> +                       <scope>compile</scope>
> +               </dependency>
> +               <dependency>
> +                       <groupId>org.openqa.selenium.client-drivers
> </groupId>
> +
> <artifactId>selenium-java-client-driver</artifactId>
> +                       <version>0.8.1</version>
> +                       <scope>compile</scope>
> +               </dependency>
> +       </dependencies>
> +       <build>
> +               <plugins>
> +                       <plugin>
> +                               <groupId>org.apache.maven.plugins
> </groupId>
> +
> <artifactId>maven-surefire-plugin</artifactId>
> +                               <configuration>
> +                                       <suiteXmlFiles>
> +                                               <suiteXmlFile>testng.xml
> </suiteXmlFile>
> +                                       </suiteXmlFiles>
> +                               </configuration>
> +                       </plugin>
> +               </plugins>
> +       </build>
> +       <reporting>
> +               <plugins>
> +                       <plugin>
> +
> <artifactId>maven-surefire-report-plugin</artifactId>
> +                       </plugin>
> +                       <plugin>
> +
> <artifactId>maven-javadoc-plugin</artifactId>
> +                               <configuration>
> +                                       <linksource>true</linksource>
> +                               </configuration>
> +                       </plugin>
> +               </plugins>
> +       </reporting>
> +</project>
> \ No newline at end of file
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Any.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Any.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Any.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Any.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,51 @@
> +// Copyright 2006 The Apache Software Foundation
> +//
> +// Licensed under the Apache License, Version 2.0 (the "License");
> +// you may not use this file except in compliance with the License.
> +// You may obtain a copy of the License at
> +//
> +//     http://www.apache.org/licenses/LICENSE-2.0
> +//
> +// Unless required by applicable law or agreed to in writing, software
> +// distributed under the License is distributed on an "AS IS" BASIS,
> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> +// See the License for the specific language governing permissions and
> +// limitations under the License.
> +
> +package org.apache.tapestry.workbench.components;
> +
> +import org.apache.tapestry.MarkupWriter;
> +import org.apache.tapestry.annotations.AfterRender;
> +import org.apache.tapestry.annotations.BeginRender;
> +import org.apache.tapestry.annotations.ComponentClass;
> +import org.apache.tapestry.annotations.Mixin;
> +import org.apache.tapestry.annotations.Parameter;
> +import org.apache.tapestry.corelib.mixins.RenderInformals;
> +
> +@ComponentClass
> +public class Any
> +{
> +    @Parameter
> +    private String element;
> +
> +       @BeginRender
> +       public void begin(MarkupWriter writer)
> +       {
> +        //TODO if element is null...
> +               writer.element(element);
> +       }
> +    @AfterRender
> +    public void end(MarkupWriter writer)
> +    {
> +        writer.end();
> +    }
> +
> +    @SuppressWarnings("unused")
> +    @Mixin
> +    private RenderInformals renderInformals;
> +
> +       public boolean beforeRenderBody()
> +       {
> +               return false;
> +       }
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Border.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Border.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Border.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Border.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,112 @@
> +package org.apache.tapestry.workbench.components;
> +
> +import java.util.Arrays;
> +import java.util.List;
> +
> +import org.apache.tapestry.Asset;
> +import org.apache.tapestry.ComponentResources;
> +import org.apache.tapestry.annotations.BeginRender;
> +import org.apache.tapestry.annotations.Component;
> +import org.apache.tapestry.annotations.ComponentClass;
> +import org.apache.tapestry.annotations.Inject;
> +import org.apache.tapestry.annotations.OnEvent;
> +
> +@ComponentClass
> +public class Border
> +{
> +       private String pageName;
> +
> +       @Inject
> +       private ComponentResources resources;
> +
> +       @Inject("context:images/tab-inactive-left.gif")
> +       private Asset inactiveLeft;
> +
> +       @Inject("context:images/tab-inactive-mid.gif")
> +       private Asset inactiveMid;
> +
> +       @Inject("context:images/tab-inactive-right.gif")
> +       private Asset inactiveRight;
> +
> +       @Inject("context:images/tab-active-left.gif")
> +       private Asset activeLeft;
> +
> +       @Inject("context:images/tab-active-mid.gif")
> +       private Asset activeMid;
> +
> +       @Inject("context:images/tab-active-right.gif")
> +       private Asset activeRight;
> +
> +       @Inject("context:css/workbench.css")
> +       private Asset stylesheet;
> +
> +       @SuppressWarnings("unused")
> +       @Component(parameters =
> +       { "element=literal:td", "background=midTabAsset" })
> +       private Any tabCell;
> +
> +       private String renderingPageFullName;
> +
> +       /**
> +        * Returns the logical names of the pages accessible via the
> navigation bar,
> +        * in appopriate order.
> +        */
> +       public List getPageTabNames()
> +       {
> +               return Arrays.asList("Home", "localization/Localization",
> "Fields",
> +                               "Dates", "Chart", "Palette", "Upload",
> "Redirect",
> +                               "ExceptionTab", "Table", "TreeHome");
> +       }
> +
> +       @BeginRender
> +       public void beginRender()
> +       {
> +               renderingPageFullName = resources.getPage
> ().getClass().getName();
> +       }
> +
> +       private boolean isCurrentPageActive()
> +       {
> +               return renderingPageFullName.endsWith(pageName);
> +       }
> +       @OnEvent(component = "link")
> +       public String onClickPage(String pageName)
> +       {
> +               return pageName;
> +       }
> +
> +       public String getPageName()
> +       {
> +               return pageName;
> +       }
> +
> +       public void setPageName(String pageName)
> +       {
> +               this.pageName = pageName;
> +       }
> +
> +       public String getPageTitle()
> +       {
> +               return resources.getMessages().get(pageName);
> +       }
> +
> +       public Asset getLeftTabAsset()
> +       {
> +               return isCurrentPageActive() ? activeLeft : inactiveLeft;
> +       }
> +
> +       public Asset getMidTabAsset()
> +       {
> +               return isCurrentPageActive() ? activeMid: inactiveMid;
> +       }
> +
> +       public Asset getRightTabAsset()
> +       {
> +               return isCurrentPageActive() ? activeRight :
> inactiveRight;
> +       }
> +
> +       public Asset getStylesheet()
> +       {
> +               return stylesheet;
> +       }
> +
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Img.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Img.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Img.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/components/Img.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,68 @@
> +// Copyright 2006 The Apache Software Foundation
> +//
> +// Licensed under the Apache License, Version 2.0 (the "License");
> +// you may not use this file except in compliance with the License.
> +// You may obtain a copy of the License at
> +//
> +//     http://www.apache.org/licenses/LICENSE-2.0
> +//
> +// Unless required by applicable law or agreed to in writing, software
> +// distributed under the License is distributed on an "AS IS" BASIS,
> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> +// See the License for the specific language governing permissions and
> +// limitations under the License.
> +
> +package org.apache.tapestry.workbench.components;
> +
> +import org.apache.tapestry.Asset;
> +import org.apache.tapestry.ComponentResources;
> +import org.apache.tapestry.MarkupWriter;
> +import org.apache.tapestry.annotations.AfterRender;
> +import org.apache.tapestry.annotations.BeforeRenderBody;
> +import org.apache.tapestry.annotations.BeginRender;
> +import org.apache.tapestry.annotations.ComponentClass;
> +import org.apache.tapestry.annotations.Environmental;
> +import org.apache.tapestry.annotations.Inject;
> +import org.apache.tapestry.annotations.Mixin;
> +import org.apache.tapestry.annotations.Parameter;
> +import org.apache.tapestry.corelib.mixins.RenderInformals;
> +import org.apache.tapestry.services.PageRenderSupport;
> +
> +@ComponentClass
> +public class Img
> +{
> +       @Environmental
> +       private PageRenderSupport _support;
> +
> +       @Inject
> +       private ComponentResources _resources;
> +
> +       @Parameter(required = true)
> +       private Asset _src;
> +
> +       @BeginRender
> +       void begin(MarkupWriter writer)
> +       {
> +               String clientId =
> _support.allocateClientId(_resources.getId());
> +
> +               writer.element("img", "src", _src, "id", clientId);
> +
> +               _resources.renderInformalParameters(writer);
> +       }
> +
> +       @SuppressWarnings("unused")
> +       @Mixin
> +       private RenderInformals _renderInformals;
> +
> +       @BeforeRenderBody
> +       boolean beforeRenderBody()
> +       {
> +               return false;
> +       }
> +
> +       @AfterRender
> +       void after(MarkupWriter writer)
> +       {
> +               writer.end();
> +       }
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Fields.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Fields.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Fields.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Fields.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,8 @@
> +package org.apache.tapestry.workbench.pages;
> +
> +import org.apache.tapestry.annotations.ComponentClass;
> +
> +@ComponentClass
> +public class Fields
> +{
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Home.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Home.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Home.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/pages/Home.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,8 @@
> +package org.apache.tapestry.workbench.pages;
> +
> +import org.apache.tapestry.annotations.ComponentClass;
> +
> +@ComponentClass
> +public class Home
> +{
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/services/AppModule.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/services/AppModule.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/services/AppModule.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/java/org/apache/tapestry/workbench/services/AppModule.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,15 @@
> +package org.apache.tapestry.workbench.services;
> +
> +import org.apache.tapestry.ioc.MappedConfiguration;
> +import org.apache.tapestry.ioc.annotations.Contribute;
> +
> +public class AppModule
> +{
> +       @Contribute("tapestry.ioc.ApplicationDefaults")
> +       public static void contributeApplicationDefaults(
> +                       MappedConfiguration<String, String> configuration)
> +       {
> +               configuration.add("tapestry.supported-locales",
> "en,de,fr,it");
> +       }
> +
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.html
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.html?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.html
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.html
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,23 @@
> +<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> +<head>
> +<t:comp type="Any" element="literal:link" rel="literal:stylesheet"
> +       href="stylesheet" />
> +</head>
> +<table class="tabs" cellspacing="0" border="0">
> +       <tr>
> +               <t:comp type="Loop" source="pageTabNames"
> value="pageName">
> +                       <td><t:comp type="Img" src="leftTabAsset"
> width="2" height="20"
> +                               alt="''" /></td>
> +                       <t:comp id="tabCell" align="literal:center">
> +                               <t:comp id="link" type="ActionLink"
> context="pageName"
> +
> class="literal:nav">${pageTitle}</t:comp>
> +                       </t:comp>
> +                       <td><t:comp type="Img" src="rightTabAsset"
> width="13" height="20"
> +                               alt="''" /></td>
> +               </t:comp>
> +       </tr>
> +</table>
> +
> +<t:body />
> +
> +</html>
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.properties
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.properties?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.properties
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/components/Border.properties
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,28 @@
> +# Copyright 2004, 2005 The Apache Software Foundation
> +#
> +# Licensed under the Apache License, Version 2.0 (the "License");
> +# you may not use this file except in compliance with the License.
> +# You may obtain a copy of the License at
> +#
> +#     http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +
> +Home=Home
> +localization/Localization=L10N
> +Fields=Fields
> +Palette=Palette
> +Upload=Upload
> +Chart=Chart
> +Redirect=Redirect
> +ExceptionTab=Exception
> +Dates=Dates
> +Table=Table
> +TreeHome=Tree
> +
> +window.title=Tapestry Component Workbench
> +prompt.display-request-debug=Display Request Debug Information
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Fields.html
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Fields.html?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Fields.html
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Fields.html
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,10 @@
> +<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> +<head>
> +<title>simple document</title>
> +</head>
> +<body>
> +<t:comp type="Border">
> +       <p>Fields page</p>
> +</t:comp>
> +</body>
> +</html>
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home.html
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home.html?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home.html
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home.html
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,10 @@
> +<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> +<head>
> +<title>simple document</title>
> +</head>
> +<body>
> +<t:comp type="Border">
> +       <p>a simple paragraph in English</p>
> +</t:comp>
> +</body>
> +</html>
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home_de.html
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home_de.html?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home_de.html
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/resources/org/apache/tapestry/workbench/pages/Home_de.html
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,8 @@
> +<html>
> +<head>
> +<title>simple document</title>
> +</head>
> +<body>
> +<p>a simple paragraph in German</p>
> +</body>
> +</html>
> \ No newline at end of file
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/WEB-INF/web.xml
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/WEB-INF/web.xml?view=auto&rev=486027
>
> ==============================================================================
> --- tapestry/tapestry5/tapestry-Workbench/src/main/webapp/WEB-INF/web.xml
> (added)
> +++ tapestry/tapestry5/tapestry-Workbench/src/main/webapp/WEB-INF/web.xml
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,34 @@
> +<?xml version="1.0"?>
> +<!--
> +   Copyright 2004-2006 The Apache Software Foundation
> +
> +   Licensed under the Apache License, Version 2.0 (the "License");
> +   you may not use this file except in compliance with the License.
> +   You may obtain a copy of the License at
> +
> +       http://www.apache.org/licenses/LICENSE-2.0
> +
> +   Unless required by applicable law or agreed to in writing, software
> +   distributed under the License is distributed on an "AS IS" BASIS,
> +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> +   See the License for the specific language governing permissions and
> +   limitations under the License.
> +-->
> +
> +<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
> 2.3//EN"
> + "http://java.sun.com/dtd/web-app_2_3.dtd">
> +<web-app>
> +  <display-name>Tapestry Workbench Example</display-name>
> +    <context-param>
> +        <param-name>tapestry.app-package</param-name>
> +        <param-value>org.apache.tapestry.workbench</param-value>
> +    </context-param>
> +    <filter>
> +        <filter-name>app</filter-name>
> +        <filter-class>org.apache.tapestry.TapestryFilter</filter-class>
> +    </filter>
> +    <filter-mapping>
> +        <filter-name>app</filter-name>
> +        <url-pattern>/*</url-pattern>
> +    </filter-mapping>
> +</web-app>
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/exception.css
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/exception.css?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/exception.css
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/exception.css Mon
> Dec 11 21:05:43 2006
> @@ -0,0 +1,44 @@
> +.exceptionDialog {
> +    overflow: auto;
> +    display: block;
> +    margin-left: 5%;
> +    margin-right: 5%;
> +    height: 500px;
> +    background-color: white;
> +    border-left: 2px solid #E07000;
> +    border-right: 2px solid #E07000;
> +    border-bottom: 2px solid #E07000;
> +    -moz-border-radius-bottomright: 10px;
> +    -moz-border-radius-bottomleft: 10px;
> +}
> +
> +.exceptionCloseLink {
> +    display: block;
> +    margin-left: 5%;
> +    margin-right: 5%;
> +    background-color: ThreeDFace;
> +    padding-top: 3px;
> +    padding-left: 5px;
> +    padding-bottom: 3px;
> +    font-weight: bold;
> +    color: #000000;
> +    cursor: pointer;
> +    cursor: hand;
> +    border-left: 2px solid #E07000;
> +    border-right: 2px solid #E07000;
> +    border-top: 2px solid #E07000;
> +    -moz-border-radius-topright: 10px;
> +    -moz-border-radius-topleft: 10px;
> +}
> +
> +.alertDialog {
> +    width: 50%;
> +    border: 2px solid #ff660a;
> +    padding: 1em;
> +    padding-bottom: 1.7em;
> +    background: #ffffff;
> +}
> +
> +.alertDialog .dojoButton {
> +    float: right;
> +}
> \ No newline at end of file
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/workbench.css
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/workbench.css?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/workbench.css
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/css/workbench.css Mon
> Dec 11 21:05:43 2006
> @@ -0,0 +1,199 @@
> +@import url("exception.css");
> +
> +SPAN.label-error {
> +    color: Red;
> +}
> +
> +label.error {
> +    color: red;
> +    font-style: oblique;
> +}
> +
> +.field-error {
> +    color: White;
> +    background-color: Red;
> +}
> +
> +TABLE.inputerror TD.message {
> +    font-weight: bold;
> +    font-size: smaller;
> +}
> +
> +TABLE.content {
> +    background-color: #ffffcc;
> +    border-color: Black;
> +    border-style: solid;
> +    border-width: thin;
> +    border-top-width: 0px;
> +    border-bottom-width: 2px;
> +    border-right-width: 2px;
> +    border-left-width: 0px;
> +    font-size: smaller;
> +    clear: all;
> +    width: 700px;
> +}
> +
> +TABLE.tabs TD {
> +    padding: 0px;
> +}
> +
> +BODY {
> +    background-color: #808080;
> +    margin: 2px;
> +}
> +
> +body,td,th {
> +    font-family: Lucida Grande, Tahoma, Verdana, Arial, sans-serif;
> +    font-size: 9pt;
> +}
> +
> +TABLE.requestDebug {
> +    width: 700;
> +    border-color: Black;
> +    border-style: solid;
> +    border-width: thin;
> +    border-top-width: 0px;
> +    border-bottom-width: 2px;
> +    border-right-width: 2px;
> +    border-left-width: 0px;
> +    background-color: #839cd1;
> +    padding: 0;
> +}
> +
> +TABLE.requestDebug TR.control {
> +    font-weight: bold;
> +    font-size: 9pt;
> +    color: White;
> +    background-color: #330066;
> +}
> +
> +TABLE.requestDebug FORM {
> +    margin: 0;
> +}
> +
> +DIV.described-object-title {
> +    font-size: large;
> +    font-weight: bold;
> +    color: white;
> +    background-color: black;
> +}
> +
> +TABLE.described-object {
> +    border: 1px solid black;
> +    width: 100%;
> +}
> +
> +TABLE.described-object TR.section TH {
> +    color: white;
> +    background-color: black;
> +    text-align: center;
> +}
> +
> +TABLE.described-object TR.odd {
> +    background-color: silver;
> +}
> +
> +TABLE.described-object TR.even {
> +    background-color: #839cd1;
> +}
> +
> +TABLE.described-object TH {
> +    text-align: right;
> +    width: 1px;
> +    //
> +    Will
> +    stretch
> +    to
> +    fit.
> +}
> +
> +TABLE.form TR {
> +    vertical-align: top;
> +}
> +
> +TABLE.form TH {
> +    font-weight: bold;
> +    text-align: right;
> +}
> +
> +TABLE.form TR.column-header TH {
> +    font-weight: bold;
> +    text-align: center;
> +}
> +
> +TABLE.palette TH {
> +    font-size: 9pt;
> +    font-weight: bold;
> +    color: white;
> +    background-color: #330066;
> +    text-align: center;
> +}
> +
> +TABLE.palette SELECT {
> +    font-weight: bold;
> +    background-color: #839cd1;
> +    width: 200px;
> +}
> +
> +TABLE.palette TD.controls {
> +    text-align: center;
> +    vertical-align: middle;
> +    width: 60px;
> +}
> +
> +TABLE.form {
> +    font-size: 9pt;
> +}
> +
> +A.nav {
> +    font-family: Trebuchet MS, sans-serif;
> +    text-decoration: none;
> +    font-size: 12px;
> +    font-weight: bold;
> +    color: black;
> +}
> +
> +A.nav:hover {
> +    text-decoration: underline;
> +}
> +
> +PRE {
> +    font-size: 12pt;
> +}
> +
> +UL {
> +    margin-top: 0px;
> +    margin-bottom: 0px;
> +    margin-left: 20px;
> +}
> +
> +IMG {
> +    border: none;
> +}
> +
> +.fieldMissing {
> +    background: #bedef4;
> +}
> +
> +.fieldInvalid {
> +    background: #ffaf7e;
> +    font-weight: bold;
> +}
> +
> +.missingList, .invalidList {
> +    padding: 0.6em;
> +    padding-top: 0.2em;
> +}
> +
> +.missingList {
> +    border-top: 4px solid #bedef4;
> +}
> +
> +.invalidList {
> +    border-top: 4px solid #ffaf7e;
> +}
> +
> +.missingList li, .invalidList li {
> +    list-style:none;
> +    font-style:italic;
> +}
> \ No newline at end of file
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-
> focus.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-
> focus.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_de.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_de.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_de.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_fr.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_fr.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_fr.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_it.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_it.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back-focus_it.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_de.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_de.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_de.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_fr.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_fr.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_fr.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_it.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_it.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Back_it.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_de.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_de.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_de.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_fr.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_fr.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_fr.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_it.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_it.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Change_it.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Continue.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Continue.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Continue.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Update.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Update.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Update.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning-
> small.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning-small.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning-
> small.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/Warning.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/minus.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/minus.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/minus.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/nodeimage.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/nodeimage.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/nodeimage.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/plus.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/plus.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/plus.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-left.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-active-left.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-left.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-mid.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-active-mid.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-mid.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-right.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-active-right.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> active-right.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-left.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-inactive-left.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-left.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-mid.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-inactive-mid.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-mid.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-right.gif
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-inactive-right.gif?view=auto&rev=486027
>
> ==============================================================================
> Binary file - no diff available.
>
> Propchange:
> tapestry/tapestry5/tapestry-Workbench/src/main/webapp/images/tab-
> inactive-right.gif
>
> ------------------------------------------------------------------------------
>     svn:mime-type = application/octet-stream
>
> Added: tapestry/tapestry5/tapestry-Workbench/src/test/conf/webdefault-
> nojsp.xml
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/test/conf/webdefault-nojsp.xml?view=auto&rev=486027
>
> ==============================================================================
> --- tapestry/tapestry5/tapestry-Workbench/src/test/conf/webdefault-
> nojsp.xml (added)
> +++ tapestry/tapestry5/tapestry-Workbench/src/test/conf/webdefault-
> nojsp.xml Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,177 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> +   Copyright 2006 The Apache Software Foundation
> +
> +   Licensed under the Apache License, Version 2.0 (the "License");
> +   you may not use this file except in compliance with the License.
> +   You may obtain a copy of the License at
> +
> +       http://www.apache.org/licenses/LICENSE-2.0
> +
> +   Unless required by applicable law or agreed to in writing, software
> +   distributed under the License is distributed on an "AS IS" BASIS,
> +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> +   See the License for the specific language governing permissions and
> +   limitations under the License.
> +-->
> +
> +<web-app
> +   xmlns="http://java.sun.com/xml/ns/j2ee"
> +   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> +   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
> +   version="2.4">
> +
> +  <description>
> +    Default web.xml file.
> +    This file is applied to a Web application before it's own
> WEB_INF/web.xml file
> +  </description>
> +
> +
> +
> +  <!--
> ==================================================================== -->
> +  <!-- Context params to control Session
> Cookies                            -->
> +  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> -  -->
> +  <!-- UNCOMMENT TO ACTIVATE
> +  <context-param>
> +    <param-name>org.mortbay.jetty.servlet.SessionDomain</param-name>
> +    <param-value>127.0.0.1</param-value>
> +  </context-param>
> +
> +  <context-param>
> +    <param-name>org.mortbay.jetty.servlet.SessionPath</param-name>
> +    <param-value>/</param-value>
> +  </context-param>
> +
> +  <context-param>
> +    <param-name>org.mortbay.jetty.servlet.MaxAge</param-name>
> +    <param-value>-1</param-value>
> +  </context-param>
> +  -->
> +
> +
> +
> +  <!--
> ==================================================================== -->
> +  <!-- The default
> servlet.                                                 -->
> +  <!-- This servlet, normally mapped to /, provides the handling for
> static -->
> +  <!-- content, OPTIONS and TRACE methods for the
> context.                  -->
> +  <!-- The following initParameters are
> supported:                          -->
>
> +  <!--                                                                      -->
> +  <!--   acceptRanges     If true, range requests and responses
> are         -->
> +  <!--                    supported
> -->
>
> +  <!--                                                                      -->
> +  <!--   dirAllowed       If true, directory listings are returned if
> no    -->
> +  <!--                    welcome file is found. Else 403
> Forbidden.        -->
>
> +  <!--                                                                      -->
> +  <!--   putAllowed       If true, the PUT method is
> allowed                -->
>
> +  <!--                                                                      -->
> +  <!--   delAllowed       If true, the DELETE method is
> allowed             -->
>
> +  <!--                                                                      -->
> +  <!--   redirectWelcome  If true, redirect welcome file
> requests           -->
> +  <!--                    else use request dispatcher
> forwards              -->
>
> +  <!--                                                                      -->
> +  <!--   minGzipLength    If set to a positive integer, then static
> content -->
> +  <!--                    larger than this will be served as gzip
> content   -->
> +  <!--                    encoded if a matching resource is found
> ending    -->
> +  <!--                    with
> ".gz"                                        -->
>
> +  <!--                                                                      -->
> +  <!--   resoureBase      Can be set to replace the context resource
> base   -->
>
> +  <!--                                                                      -->
> +  <!--
> relativeResourceBase                                               -->
> +  <!--                    Set with a pathname relative to the base of
> the   -->
> +  <!--                    servlet context root. Useful for only
> serving     -->
> +  <!--                    static content from only specific
> subdirectories. -->
>
> +  <!--                                                                      -->
> +  <!-- The MOVE method is allowed if PUT and DELETE are
> allowed             -->
> +  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> -  -->
> +  <servlet>
> +    <servlet-name>default</servlet-name>
> +    <servlet-class>org.mortbay.jetty.servlet.Default</servlet-class>
> +    <init-param>
> +      <param-name>acceptRanges</param-name>
> +      <param-value>true</param-value>
> +    </init-param>
> +    <init-param>
> +      <param-name>dirAllowed</param-name>
> +      <param-value>true</param-value>
> +    </init-param>
> +    <init-param>
> +      <param-name>putAllowed</param-name>
> +      <param-value>false</param-value>
> +    </init-param>
> +    <init-param>
> +      <param-name>delAllowed</param-name>
> +      <param-value>false</param-value>
> +    </init-param>
> +    <init-param>
> +      <param-name>redirectWelcome</param-name>
> +      <param-value>false</param-value>
> +    </init-param>
> +    <init-param>
> +      <param-name>minGzipLength</param-name>
> +      <param-value>8192</param-value>
> +    </init-param>
> +    <load-on-startup>0</load-on-startup>
> +  </servlet>
> +
> +
> +  <servlet-mapping> <servlet-name>default</servlet-name>
> <url-pattern>/</url-pattern> </servlet-mapping>
> +
> +  <!--
> ==================================================================== -->
> +  <session-config>
> +    <session-timeout>30</session-timeout>
> +  </session-config>
> +
> +
> +  <!--
> ==================================================================== -->
> +  <welcome-file-list>
> +    <welcome-file>index.html</welcome-file>
> +    <welcome-file>index.htm</welcome-file>
> +  </welcome-file-list>
> +
> +  <!--
> ==================================================================== -->
> +  <locale-encoding-mapping-list>
>
> +    <locale-encoding-mapping><locale>ar</locale><encoding>ISO-8859-6</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>be</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>bg</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>ca</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>cs</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>da</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>de</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>el</locale><encoding>ISO-8859-7</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>en</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>es</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>et</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>fi</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>fr</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>hr</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>hu</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>is</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>it</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>iw</locale><encoding>ISO-8859-8</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>ja</locale><encoding>Shift_JIS</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>ko</locale><encoding>EUC-KR</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>lt</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>lv</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>mk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>nl</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>no</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>pl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>pt</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>ro</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>ru</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>sh</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>sk</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>sl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>sq</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>sr</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>sv</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>tr</locale><encoding>ISO-8859-9</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>uk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>zh</locale><encoding>GB2312</encoding></locale-encoding-mapping>
>
> +    <locale-encoding-mapping><locale>zh_TW</locale><encoding>Big5</encoding></locale-encoding-mapping>
> +  </locale-encoding-mapping-list>
> +
> +
> +
> +</web-app>
> +
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/SeleniumClientFactory.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/SeleniumClientFactory.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/SeleniumClientFactory.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/SeleniumClientFactory.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,17 @@
> +package org.apache.tapestry.workbench.test;
> +
> +import org.openqa.selenium.server.SeleniumServer;
> +
> +import com.thoughtworks.selenium.DefaultSelenium;
> +import com.thoughtworks.selenium.Selenium;
> +
> +public class SeleniumClientFactory
> +{
> +       public static Selenium makeClient()
> +       {
> +               Selenium seleniumClient = new DefaultSelenium("localhost",
> +                               SeleniumServer.DEFAULT_PORT, "*firefox",
> WorkbenchLauncher.BASE_URL);
> +               seleniumClient.start();
> +               return seleniumClient;
> +       }
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/TabLinksTest.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/TabLinksTest.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/TabLinksTest.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/TabLinksTest.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,78 @@
> +package org.apache.tapestry.workbench.test;
> +
> +import org.testng.annotations.AfterTest;
> +import org.testng.annotations.BeforeTest;
> +import org.testng.annotations.Test;
> +
> +import com.thoughtworks.selenium.Selenium;
> +
> +import static org.testng.Assert.assertEquals;
> +import static org.testng.Assert.assertTrue;
> +
> +@Test(timeOut = 50000)
> +public class TabLinksTest
> +{
> +       private static final String PAGE_LOAD_TIMEOUT = "600000";
> +
> +       private Selenium seleniumClient;
> +
> +       @BeforeTest
> +       public void setUp()
> +       {
> +               seleniumClient = SeleniumClientFactory.makeClient();
> +               openHome();
> +       }
> +
> +       @AfterTest
> +       public void tearDown()
> +       {
> +               seleniumClient.close();
> +       }
> +
> +       public void testTabLinks()
> +       {
> +               assertLinkExists("Home");
> +               assertLinkExists("L10N");
> +               assertLinkExists("Fields");
> +       }
> +
> +       public void testHighlightCurrentPageLink()
> +       {
> +               clickAndWait("link=Fields");
> +               assertTabLinkActive(0, false);
> +               assertTabLinkActive(1, false);
> +               assertTabLinkActive(2, true);
> +               assertTabLinkActive(3, false);
> +       }
> +
> +       private void assertTabLinkActive(int tabIndex, boolean isActive)
> +       {
> +               String expectedImgURLFragment = String.format("-%s-",
> +                               isActive ? "active" : "inactive");
> +               int tdTagIndexForLink = 3 * tabIndex + 1;
> +               String imageForFieldsPage = seleniumClient.getText(
> String.format(
> +                               "//td[%d]/@background",
> zeroToOneBase(tdTagIndexForLink)));
> +               assertTrue(imageForFieldsPage.indexOf(expectedImgURLFragment)
> != -1);
> +       }
> +
> +       private int zeroToOneBase(int index)
> +       {
> +               return index + 1;
> +       }
> +
> +       private void openHome()
> +       {
> +               seleniumClient.open(WorkbenchLauncher.BASE_URL +
> "/Home.html");
> +       }
> +
> +       private void assertLinkExists(String text)
> +       {
> +               assertEquals(seleniumClient.getText("link=" + text),
> text);
> +       }
> +
> +       private void clickAndWait(String link)
> +       {
> +               seleniumClient.click(link);
> +               seleniumClient.waitForPageToLoad(PAGE_LOAD_TIMEOUT);
> +       }
> +}
>
> Added:
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/WorkbenchLauncher.java
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/WorkbenchLauncher.java?view=auto&rev=486027
>
> ==============================================================================
> ---
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/WorkbenchLauncher.java
> (added)
> +++
> tapestry/tapestry5/tapestry-Workbench/src/test/java/org/apache/tapestry/workbench/test/WorkbenchLauncher.java
> Mon Dec 11 21:05:43 2006
> @@ -0,0 +1,58 @@
> +package org.apache.tapestry.workbench.test;
> +
> +import java.io.IOException;
> +
> +import org.mortbay.jetty.Server;
> +import org.mortbay.jetty.servlet.WebApplicationContext;
> +import org.mortbay.util.InetAddrPort;
> +import org.openqa.selenium.server.SeleniumServer;
> +import org.testng.annotations.AfterSuite;
> +import org.testng.annotations.BeforeSuite;
> +
> +public class WorkbenchLauncher
> +{
> +       private static final int JETTY_PORT = 9999;
> +
> +    private static final String CONTEXT = "/myapp";
> +
> +       public static final String BASE_URL = String.format(
> +                       "http://localhost:%s%s", JETTY_PORT, CONTEXT);
> +
> +       private Server jetty;
> +
> +       private SeleniumServer seleniumServer;
> +
> +       @BeforeSuite
> +       public void start() throws Exception
> +       {
> +               startJetty();
> +               startSeleniumServer();
> +       }
> +
> +       private void startJetty() throws IOException, Exception
> +       {
> +               jetty = new Server();
> +               jetty.addListener(new InetAddrPort(JETTY_PORT));
> +               WebApplicationContext context = jetty.addWebApplication
> (CONTEXT,
> +                               "src/main/webapp");
> +               context.setDefaultsDescriptor("src/test/conf/webdefault-
> nojsp.xml");
> +               jetty.start();
> +       }
> +
> +       private void startSeleniumServer() throws Exception
> +       {
> +               seleniumServer = new SeleniumServer();
> +               seleniumServer.start();
> +       }
> +
> +       @AfterSuite
> +       public void stop() throws InterruptedException
> +       {
> +               seleniumServer.stop();
> +               jetty.stop();
> +       }
> +       public static void main(String[] args) throws Exception
> +       {
> +               new WorkbenchLauncher().start();
> +       }
> +}
>
> Added: tapestry/tapestry5/tapestry-Workbench/testng.xml
> URL:
> http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-Workbench/testng.xml?view=auto&rev=486027
>
> ==============================================================================
> --- tapestry/tapestry5/tapestry-Workbench/testng.xml (added)
> +++ tapestry/tapestry5/tapestry-Workbench/testng.xml Mon Dec 11 21:05:43
> 2006
> @@ -0,0 +1,9 @@
> +<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
> +<suite name="Workbench">
> +  <test verbose="2" name="org.apache.tapestry.workbench.test"
> annotations="1.5">
> +     <classes>
> +       <class name="org.apache.tapestry.workbench.test.WorkbenchLauncher
> "  />
> +       <class name="org.apache.tapestry.workbench.test.TabLinksTest"  />
> +    </classes>
> +  </test>
> +</suite>
>
>
>


-- 
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com