You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by al...@apache.org on 2007/06/20 13:48:51 UTC

svn commit: r549077 - in /incubator/wicket/trunk/jdk-1.5/wicket-examples: ./ src/main/java/org/apache/wicket/examples/guice/ src/main/java/org/apache/wicket/examples/guice/service/ src/main/webapp/ src/main/webapp/WEB-INF/

Author: almaw
Date: Wed Jun 20 04:48:49 2007
New Revision: 549077

URL: http://svn.apache.org/viewvc?view=rev&rev=549077
Log:
Guice examples

Added:
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/GuiceApplication.java   (with props)
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.html   (with props)
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.java   (with props)
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/IMyService.java   (with props)
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/MyService.java   (with props)
Modified:
    incubator/wicket/trunk/jdk-1.5/wicket-examples/pom.xml
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/WEB-INF/web.xml
    incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/index.html

Modified: incubator/wicket/trunk/jdk-1.5/wicket-examples/pom.xml
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/pom.xml?view=diff&rev=549077&r1=549076&r2=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/pom.xml (original)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/pom.xml Wed Jun 20 04:48:49 2007
@@ -44,6 +44,10 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.wicket</groupId>
+			<artifactId>wicket-guice</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.wicket</groupId>
 			<artifactId>wicket-jmx</artifactId>
 		</dependency>
 		<dependency>

Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/GuiceApplication.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/GuiceApplication.java?view=auto&rev=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/GuiceApplication.java (added)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/GuiceApplication.java Wed Jun 20 04:48:49 2007
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.wicket.examples.guice;
+
+import org.apache.wicket.examples.WicketExampleApplication;
+import org.apache.wicket.guice.GuiceComponentInjector;
+
+/**
+ * Application for Google Guice integration example.
+ * 
+ * @author Jonathan Locke
+ */
+public class GuiceApplication extends WicketExampleApplication
+{
+	/**
+	 * @see org.apache.wicket.examples.WicketExampleApplication#init()
+	 */
+	@Override
+	protected void init()
+	{
+		addComponentInstantiationListener(new GuiceComponentInjector(this));
+	}
+	
+	/**
+	 * @see org.apache.wicket.Application#getHomePage()
+	 */
+	public Class getHomePage()
+	{
+		return HomePage.class;
+	}
+}

Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/GuiceApplication.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.html
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.html?view=auto&rev=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.html (added)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.html Wed Jun 20 04:48:49 2007
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head>
+    <title>Wicket Examples - helloworld</title>
+    <link rel="stylesheet" type="text/css" href="style.css"/>
+</head>
+<body>
+    <span wicket:id="mainNavigation"/>
+    <p>
+    This page uses <a href="http://code.google.com/p/google-guice/">Google Guice</a>.
+    There is a service interface called <code>IMyService</code>, with an implementation POJO called <code>MyService</code>.
+    Guice is used to wire the implementation into the <code>Page</code> using an <code>@Inject</code> annotation. You can use this
+    annotation on the fields of any <code>Component</code> subclass.    
+    </p>
+    <p>
+    The value of the <code>Label</code> component below will be updated with the return value from one of the service's methods when you click the link.
+    </p>
+    <hr />
+    <blockquote>
+    Value: <b wicket:id="message" id="message">Message goes here</b>
+    <br />
+    To update the label above, <a href="#" wicket:id="link">click here</a>.
+    </blockquote>
+    <hr />
+    <p>
+    The wicket-guice project will take care of proxying the injected beans so that your pages can be serialized safely.
+    To configure your application for Guice injection, just 
+    </p>
+    
+</body>
+</html>

Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.java?view=auto&rev=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.java (added)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.java Wed Jun 20 04:48:49 2007
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.wicket.examples.guice;
+
+import org.apache.wicket.examples.WicketExamplePage;
+import org.apache.wicket.examples.guice.service.IMyService;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.model.AbstractReadOnlyModel;
+
+import com.google.inject.Inject;
+
+
+/**
+ * Everybody's favorite example, modified to use Guice.
+ * 
+ * @author Alastair Maw
+ */
+public class HomePage extends WicketExamplePage
+{
+	@Inject
+	private IMyService service;
+	
+	private String labelValue = "<not yet initialized>";
+	
+	/**
+	 * Constructor
+	 */
+	public HomePage()
+	{
+		add(new Link("link")
+		{
+			/**
+			 * @see org.apache.wicket.markup.html.link.Link#onClick()
+			 */
+			@Override
+			public void onClick()
+			{
+				labelValue = service.getHelloWorldText();
+			}
+		});
+		add(new Label("message", new AbstractReadOnlyModel()
+		{
+		
+			@Override
+			public Object getObject()
+			{
+				return labelValue;
+			}
+		
+		}));
+	}
+}
\ No newline at end of file

Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/HomePage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/IMyService.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/IMyService.java?view=auto&rev=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/IMyService.java (added)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/IMyService.java Wed Jun 20 04:48:49 2007
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.wicket.examples.guice.service;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * Service interface for a simple "Hello World" app.
+ * 
+ * @author Alastair Maw
+ */
+@ImplementedBy(MyService.class)
+public interface IMyService
+{
+	/**
+	 * Retrieves the text to say "Hello World".
+	 * @return "Hello World"
+	 */
+	public String getHelloWorldText();
+}

Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/IMyService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/MyService.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/MyService.java?view=auto&rev=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/MyService.java (added)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/MyService.java Wed Jun 20 04:48:49 2007
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.wicket.examples.guice.service;
+
+/**
+ * Implementation of IService.
+ * 
+ * @author Alastair Maw
+ */
+public class MyService implements IMyService
+{
+
+	/**
+	 * @see org.apache.wicket.examples.guice.service.IMyService#getHelloWorldText()
+	 */
+	public String getHelloWorldText()
+	{
+		return "Hello World";
+	}
+
+}

Propchange: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/java/org/apache/wicket/examples/guice/service/MyService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/WEB-INF/web.xml?view=diff&rev=549077&r1=549076&r2=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/WEB-INF/web.xml Wed Jun 20 04:48:49 2007
@@ -362,6 +362,15 @@
 	</filter>
 
 	<filter>
+		<filter-name>GuiceApplication</filter-name>
+		<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
+		<init-param>
+            <param-name>applicationClassName</param-name>
+            <param-value>org.apache.wicket.examples.guice.GuiceApplication</param-value>
+		</init-param>
+	</filter>
+
+	<filter>
 		<filter-name>VelocityTemplateApplication</filter-name>
 		<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
 		<init-param>
@@ -538,6 +547,11 @@
 	<filter-mapping>
 		<filter-name>SpringExample</filter-name>
         <url-pattern>/spring/*</url-pattern>
+	</filter-mapping>
+
+	<filter-mapping>
+		<filter-name>GuiceApplication</filter-name>
+        <url-pattern>/guice/*</url-pattern>
 	</filter-mapping>
 
 	<filter-mapping>

Modified: incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/index.html
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/index.html?view=diff&rev=549077&r1=549076&r2=549077
==============================================================================
--- incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/index.html (original)
+++ incubator/wicket/trunk/jdk-1.5/wicket-examples/src/main/webapp/index.html Wed Jun 20 04:48:49 2007
@@ -49,6 +49,7 @@
 			<tr><td align="right"><a href="spring">spring</a></td><td> - Demonstrates integration options with the Spring framework.</td></tr>
 			<tr><td align="right"><a href="authentication">authentication</a></td><td> - Demonstrates authentication for pages.</td></tr>
 			<tr><td align="right"><a href="authorization">authorization</a></td><td> - Demonstrates authorization for pages and components.</td></tr>
+			<tr><td align="right"><a href="guice">guice</a></td><td> - Integration with the Google Guice IoC container.</td></tr>
 			<tr><td align="right"><a href="velocity">velocity</a></td><td> - Shows a Velocity panel in action.</td></tr>
 	    </table>
 	</ul>