You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2008/12/29 23:59:12 UTC

svn commit: r730009 [2/2] - in /tapestry/tapestry5/trunk: ./ quickstart/src/main/resources/archetype-resources/src/main/resources/ src/site/apt/guide/ tapestry-core/ tapestry-core/src/main/java/org/apache/tapestry5/internal/ tapestry-core/src/main/java...

Added: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/AppModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/AppModule.java?rev=730009&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/AppModule.java (added)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/AppModule.java Mon Dec 29 14:59:10 2008
@@ -0,0 +1,35 @@
+// Copyright 2008 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.example.testapp.services;
+
+import org.apache.tapestry5.SymbolConstants;
+import org.apache.tapestry5.internal.spring.SpringModule;
+import org.apache.tapestry5.ioc.MappedConfiguration;
+import org.apache.tapestry5.ioc.ServiceBinder;
+import org.apache.tapestry5.ioc.annotations.SubModule;
+
+@SubModule(SpringModule.class)
+public class AppModule
+{
+    public static final void bind(ServiceBinder binder)
+    {
+        binder.bind(StringTransformer.class, UpcaseStringTransformerImpl.class);
+    }
+
+    public static void contributeApplicationDefaults(MappedConfiguration<String, String> configuration)
+    {
+        configuration.add(SymbolConstants.PRODUCTION_MODE, "false");
+    }
+}

Added: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/CustomizedFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/CustomizedFilter.java?rev=730009&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/CustomizedFilter.java (added)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/CustomizedFilter.java Mon Dec 29 14:59:10 2008
@@ -0,0 +1,34 @@
+// Copyright 2008 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.example.testapp.services;
+
+import org.apache.tapestry5.spring.TapestrySpringFilter;
+import org.springframework.web.context.ConfigurableWebApplicationContext;
+
+import javax.servlet.ServletContext;
+
+public class CustomizedFilter extends TapestrySpringFilter
+{
+    @Override
+    public void customizeApplicationContext(ServletContext servletContext,
+                                            ConfigurableWebApplicationContext applicationContext)
+    {
+        servletContext.setAttribute("status-message", "Filter Initialized");
+
+        // Just want that line coverage for the base class.
+
+        super.customizeApplicationContext(servletContext, applicationContext);
+    }
+}

Added: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/Flintstone.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/Flintstone.java?rev=730009&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/Flintstone.java (added)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/Flintstone.java Mon Dec 29 14:59:10 2008
@@ -0,0 +1,20 @@
+// Copyright 2008 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.example.testapp.services;
+
+public interface Flintstone
+{
+    void bam();
+}

Added: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/FlintstoneImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/FlintstoneImpl.java?rev=730009&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/FlintstoneImpl.java (added)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/FlintstoneImpl.java Mon Dec 29 14:59:10 2008
@@ -0,0 +1,22 @@
+// Copyright 2008 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.example.testapp.services;
+
+public class FlintstoneImpl implements Flintstone
+{
+    public void bam()
+    {
+    }
+}

Added: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/SpringStatusProvider.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/SpringStatusProvider.java?rev=730009&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/SpringStatusProvider.java (added)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/SpringStatusProvider.java Mon Dec 29 14:59:10 2008
@@ -0,0 +1,43 @@
+// Copyright 2008 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.example.testapp.services;
+
+import org.apache.tapestry5.ioc.annotations.InjectService;
+import org.apache.tapestry5.services.Context;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.SpringVersion;
+
+public class SpringStatusProvider
+{
+    private final Context context;
+    private final Upcase upcase;
+
+    /**
+     * Just wanted to get code coverage for using @InjectService here.
+     */
+    @Autowired
+    public SpringStatusProvider(@InjectService("Context") Context context, Upcase upcase)
+    {
+        this.context = context;
+        this.upcase = upcase;
+    }
+
+    public String getStatus()
+    {
+        return upcase.toUpperCase(String.format("Spring version %s: %s",
+                                                SpringVersion.getVersion(),
+                                                context.getAttribute("status-message")));
+    }
+}

Added: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/StringTransformer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/StringTransformer.java?rev=730009&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/StringTransformer.java (added)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/StringTransformer.java Mon Dec 29 14:59:10 2008
@@ -0,0 +1,20 @@
+// Copyright 2008 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.example.testapp.services;
+
+public interface StringTransformer
+{
+    String transform(String input);
+}

Modified: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseImpl.java?rev=730009&r1=730008&r2=730009&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseImpl.java Mon Dec 29 14:59:10 2008
@@ -14,12 +14,21 @@
 
 package org.example.testapp.services;
 
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.springframework.beans.factory.annotation.Autowired;
+
 public class UpcaseImpl implements Upcase
 {
+    private final StringTransformer transformer;
 
-    public String toUpperCase(String input)
+    @Autowired
+    public UpcaseImpl(@Inject StringTransformer transformer)
     {
-        return input.toUpperCase();
+        this.transformer = transformer;
     }
 
+    public String toUpperCase(String input)
+    {
+        return transformer.transform(input);
+    }
 }

Added: tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseStringTransformerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseStringTransformerImpl.java?rev=730009&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseStringTransformerImpl.java (added)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/java/org/example/testapp/services/UpcaseStringTransformerImpl.java Mon Dec 29 14:59:10 2008
@@ -0,0 +1,23 @@
+// Copyright 2008 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.example.testapp.services;
+
+public class UpcaseStringTransformerImpl implements StringTransformer
+{
+    public String transform(String input)
+    {
+        return input.toUpperCase();
+    }
+}

Modified: tapestry/tapestry5/trunk/tapestry-spring/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/resources/log4j.properties?rev=730009&r1=730008&r2=730009&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/resources/log4j.properties (original)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/resources/log4j.properties Mon Dec 29 14:59:10 2008
@@ -12,20 +12,20 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-log4j.rootCategory=WARN, A1
-
-# A1 is set to be a ConsoleAppender. 
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=[%p] %c{1} %m%n
-
-log4j.category.org.apache.tapestry5.TapestryFilter=info
-log4j.category.org.apache.tapestry=error
-log4j.category.tapestry=error
-log4j.category.tapestry.ioc.ClassFactory=error
-
-log4j.category.app=info
-log4j.category.org.apache.tapestry5.integration.app1=error
+log4j.rootCategory=INFO, A1
+
+# A1 is set to be a ConsoleAppender. 
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=[%p] %c{1} %m%n
+
+log4j.category.org.apache.tapestry5.TapestryFilter=info
+log4j.category.org.apache.tapestry=error
+log4j.category.tapestry=error
+log4j.category.tapestry.ioc.ClassFactory=error
+
+log4j.category.app=info
+log4j.category.org.apache.tapestry5.integration.app1=error
 log4j.category.org.apache.tapestry5.corelib=error

Modified: tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/Start.tml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/Start.tml?rev=730009&r1=730008&r2=730009&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/Start.tml (original)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/Start.tml Mon Dec 29 14:59:10 2008
@@ -1,21 +1,25 @@
 <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
-  <head>
-    <title>Start Page</title>
-  </head>
-  <body>
-    <p>
-      This is a silly application for converting text to uppercase.
-    </p>
-    <t:form>
-      <t:errors/>
-      <t:label for="input"/>
-      <input t:type="textfield" t:id="input" size="40"/>
-      <br/>
-      <input type="submit" value="Convert"/>
-    </t:form>
-    
-    <p>
-      Spring beans: [${springBeans}]
-    </p>
-  </body>
+    <head>
+        <title>Start Page</title>
+    </head>
+    <body>
+        <p>
+            This is a silly application for converting text to uppercase.
+        </p>
+        <t:form>
+            <t:errors/>
+            <t:label for="input"/>
+            <input t:type="textfield" t:id="input" size="40"/>
+            <br/>
+            <input type="submit" value="Convert"/>
+        </t:form>
+
+        <dl>
+            <dt>Spring beans:</dt>
+            <dd id="beans">${springBeans}</dd>
+            <dt>Filter message:</dt>
+            <dd id="message">${statusProvider.status}</dd>
+        </dl>
+
+    </body>
 </html>
\ No newline at end of file

Modified: tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/applicationContext.xml?rev=730009&r1=730008&r2=730009&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/applicationContext.xml (original)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/applicationContext.xml Mon Dec 29 14:59:10 2008
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- 
-   Copyright 2007 The Apache Software Foundation
+   Copyright 2007, 2008 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.
@@ -15,9 +15,19 @@
    limitations under the License.
 -->
 
-<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+
+    <context:annotation-config/>
 
-<beans>
     <bean id="upcase" class="org.example.testapp.services.UpcaseImpl"/>
+    <bean id="status" class="org.example.testapp.services.SpringStatusProvider"/>
+
+    <bean id="fred" class="org.example.testapp.services.FlintstoneImpl"/>
+    <bean id="barney" class="org.example.testapp.services.FlintstoneImpl"/>
 </beans>
 

Modified: tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/web.xml?rev=730009&r1=730008&r2=730009&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/web.xml (original)
+++ tapestry/tapestry5/trunk/tapestry-spring/src/test/webapp/WEB-INF/web.xml Mon Dec 29 14:59:10 2008
@@ -25,16 +25,10 @@
     <filter>
         <filter-name>app</filter-name>
         <!-- Special filter that adds in a T5 IoC module derived from the Spring WebApplicationContext. -->
-        <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class>
+        <filter-class>org.example.testapp.services.CustomizedFilter</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>app</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>
-    <!--
-   This is where the Spring support is configured.
-    -->
-    <listener>
-        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
-    </listener>
 </web-app>

Modified: tapestry/tapestry5/trunk/tapestry-spring/tapestry-spring.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-spring/tapestry-spring.iml?rev=730009&r1=730008&r2=730009&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-spring/tapestry-spring.iml (original)
+++ tapestry/tapestry5/trunk/tapestry-spring/tapestry-spring.iml Mon Dec 29 14:59:10 2008
@@ -53,21 +53,18 @@
     <orderEntry type="library" name="Maven: org.openqa.selenium.server:selenium-server-coreless:1.0-beta-1" level="project" />
     <orderEntry type="library" name="Maven: ant:ant:1.6.5" level="project" />
     <orderEntry type="library" name="Maven: jetty:org.mortbay.jetty:5.1.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1" level="project" />
+    <orderEntry type="library" exported="" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
     <orderEntry type="library" name="Maven: javax.servlet:servlet-api:2.4" level="project" />
     <orderEntry type="library" name="Maven: junit:junit:3.8.1" level="project" />
     <orderEntry type="library" name="Maven: org.openqa.selenium.server:selenium-server:standalone:1.0-beta-1" level="project" />
     <orderEntry type="library" name="Maven: org.openqa.selenium.server:selenium-server:1.0-beta-1" level="project" />
     <orderEntry type="library" name="Maven: bouncycastle:bcprov-jdk15:135" level="project" />
     <orderEntry type="library" name="Maven: org.testng:testng:jdk15:5.7" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:2.0" level="project" />
-    <orderEntry type="library" name="Maven: logkit:logkit:1.0.1" level="project" />
-    <orderEntry type="library" name="Maven: avalon-framework:avalon-framework:4.1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:2.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:2.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:2.0" level="project" />
-    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:2.0" level="project" />
+    <orderEntry type="library" exported="" name="Maven: org.springframework:spring-web:2.5.6" level="project" />
+    <orderEntry type="library" exported="" name="Maven: org.springframework:spring-beans:2.5.6" level="project" />
+    <orderEntry type="library" exported="" name="Maven: org.springframework:spring-core:2.5.6" level="project" />
+    <orderEntry type="library" exported="" name="Maven: org.springframework:spring-context:2.5.6" level="project" />
+    <orderEntry type="library" exported="" name="Maven: aopalliance:aopalliance:1.0" level="project" />
     <orderEntry type="library" name="Maven: org.easymock:easymock:2.4" level="project" />
   </component>
 </module>