[webbeans-commits] Webbeans SVN: r2434 - in examples/trunk: wicket-conversations and 37 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Thu Apr 16 11:09:22 EDT 2009
Author: cpopetz
Date: 2009-04-16 11:09:21 -0400 (Thu, 16 Apr 2009)
New Revision: 2434
Added:
examples/trunk/wicket-conversations/
examples/trunk/wicket-conversations/pom.xml
examples/trunk/wicket-conversations/readme.txt
examples/trunk/wicket-conversations/src/
examples/trunk/wicket-conversations/src/main/
examples/trunk/wicket-conversations/src/main/java/
examples/trunk/wicket-conversations/src/main/java/org/
examples/trunk/wicket-conversations/src/main/java/org/jboss/
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Conversations.java
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Data.java
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Example.java
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.html
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.java
examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/SampleApplication.java
examples/trunk/wicket-conversations/src/main/resources/
examples/trunk/wicket-conversations/src/main/resources/beans.xml
examples/trunk/wicket-conversations/src/main/resources/log4j.properties
examples/trunk/wicket-conversations/src/main/webapp/
examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/
examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/beans.xml
examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/web.xml
examples/trunk/wicket-conversations/src/test/
examples/trunk/wicket-conversations/src/test/java/
examples/trunk/wicket-conversations/src/test/java/org/
examples/trunk/wicket-conversations/src/test/java/org/jboss/
examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/
examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/examples/
examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/examples/wicket/
examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/examples/wicket/Start.java
examples/trunk/wicket-numberguess/
examples/trunk/wicket-numberguess/pom.xml
examples/trunk/wicket-numberguess/readme.txt
examples/trunk/wicket-numberguess/src/
examples/trunk/wicket-numberguess/src/main/
examples/trunk/wicket-numberguess/src/main/java/
examples/trunk/wicket-numberguess/src/main/java/org/
examples/trunk/wicket-numberguess/src/main/java/org/jboss/
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Game.java
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Generator.java
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.html
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.java
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/MaxNumber.java
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Random.java
examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/SampleApplication.java
examples/trunk/wicket-numberguess/src/main/resources/
examples/trunk/wicket-numberguess/src/main/resources/beans.xml
examples/trunk/wicket-numberguess/src/main/resources/log4j.properties
examples/trunk/wicket-numberguess/src/main/webapp/
examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/
examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/beans.xml
examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/web.xml
examples/trunk/wicket-numberguess/src/test/
examples/trunk/wicket-numberguess/src/test/java/
examples/trunk/wicket-numberguess/src/test/java/org/
examples/trunk/wicket-numberguess/src/test/java/org/jboss/
examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/
examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/examples/
examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/examples/wicket/
examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/examples/wicket/Start.java
Log:
Add two wicket examples, simliar to numberguess and conversations.
Added: examples/trunk/wicket-conversations/pom.xml
===================================================================
--- examples/trunk/wicket-conversations/pom.xml (rev 0)
+++ examples/trunk/wicket-conversations/pom.xml 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,125 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.jboss.webbeans.examples</groupId>
+ <artifactId>parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.jboss.webbeans.examples</groupId>
+ <artifactId>wicket-conversations</artifactId>
+ <packaging>war</packaging>
+ <name>Web Beans Examples: Conversations with Wicket</name>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>codehaus snapshot repository</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>jsr299-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans.tomcat</groupId>
+ <artifactId>webbeans-tomcat</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-wicket</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.wicket</groupId>
+ <artifactId>wicket</artifactId>
+ <version>${wicket.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.4.2</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+
+
+ <!-- JETTY DEPENDENCIES FOR TESTING -->
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>${jetty.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <filtering>false</filtering>
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>${jetty.version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.5.1</version>
+ </plugin>
+ </plugins>
+ </build>
+
+ <properties>
+ <wicket.version>1.3-SNAPSHOT</wicket.version>
+ <jetty.version>6.1.16</jetty.version>
+ </properties>
+
+</project>
Property changes on: examples/trunk/wicket-conversations/pom.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-conversations/readme.txt
===================================================================
--- examples/trunk/wicket-conversations/readme.txt (rev 0)
+++ examples/trunk/wicket-conversations/readme.txt 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,18 @@
+This example is similar to its sibling "conversations" example, but implemented with wicket
+and the wicket-webbeans integration. It also follows the wicket standard usage of running from
+within eclipse with jetty. So, for example, to run the app, right-click on Start.java in
+the project and choos "Run as Java Application," which will launch jetty with the example. Then hit http://localhost:8080/
+
+
+Note that conversational behavior for wicket is different than that of jsf. Roughly:
+
+- Conversations are started/ended in the same way, with Conversation.begin/end
+
+- Conversations are by default propagated to new PageTargets, whether directly instantiated
+or created with boomkarkable mounts. In the former case, the new Page instance will have the
+conversation id embedded in its page metadata. In the latter, a "cid" parameter is passed along.
+
+- To switch a conversation, you need to explicitly pass the cid in wicket
+RequestParameters. See the example.
+
+
Added: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Conversations.java
===================================================================
--- examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Conversations.java (rev 0)
+++ examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Conversations.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.examples.conversations;
+
+import java.io.Serializable;
+
+import javax.annotation.Named;
+import javax.context.SessionScoped;
+import javax.inject.Produces;
+
+import org.jboss.webbeans.conversation.ConversationInactivityTimeout;
+
+
+ at SessionScoped
+ at Named("conversations")
+public class Conversations implements Serializable {
+
+ @Produces
+ @ConversationInactivityTimeout
+ @Example
+ public static long getConversationTimeoutInMilliseconds()
+ {
+ return 600000;
+ }
+}
\ No newline at end of file
Added: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Data.java
===================================================================
--- examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Data.java (rev 0)
+++ examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Data.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.examples.conversations;
+
+import java.io.Serializable;
+
+import javax.annotation.Named;
+import javax.context.ConversationScoped;
+
+ at ConversationScoped
+ at Named
+public class Data implements Serializable
+{
+ private String data;
+
+ public String getData()
+ {
+ return data;
+ }
+
+ public void setData(String data)
+ {
+ this.data = data;
+ }
+}
\ No newline at end of file
Added: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Example.java
===================================================================
--- examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Example.java (rev 0)
+++ examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/Example.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.examples.conversations;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.DeploymentType;
+
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+public @interface Example
+{
+}
\ No newline at end of file
Added: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.html
===================================================================
--- examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.html (rev 0)
+++ examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.html 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,26 @@
+<html>
+ <head>
+ <title>Wicket WebBeans conversation example</title>
+ </head>
+ <body>
+
+
+ <form wicket:id="conversationForm">
+ Conversation list: <select wicket:id="cidSelect"/> (Chosen conversation is current)
+ </form>
+ <form wicket:id="form">
+ Data in conversation: <input type="text" wicket:id="dataField"/>
+ <input type="submit" wicket:id="changeValue" value="Change Value"/>
+ </form>
+
+ <form wicket:id="buttons">
+ <input type="submit" wicket:id="begin" value="begin"/><p/>
+ <input type="submit" wicket:id="noop" value="noop"/><p/>
+ <input type="submit" wicket:id="end" value="end"/><p/>
+ <input type="submit" wicket:id="longop" value="longop"/><p/>
+ <a href="/">Abandon</a><p/>
+ </form>
+ <p/>
+ <span wicket:id="feedback"/>
+ </body>
+</html>
Added: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.java
===================================================================
--- examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.java (rev 0)
+++ examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,141 @@
+package org.jboss.webbeans.examples.conversations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.context.Conversation;
+import javax.inject.Current;
+
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+import org.jboss.webbeans.conversation.ConversationManager;
+
+/**
+ * This is a port of the JSF-based "conversation" example to use Wicket and the
+ * Wicket/WebBeans integration module. This shows how long-running conversations
+ * are propogated across redirects using wicket page metadata (i.e. without
+ * url-rewriting), and how wicket components can use WebBeans injections.
+ *
+ * @author cpopetz
+ *
+ */
+public class HomePage extends WebPage
+{
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * These are injections for displaying information about existing conversations to the user
+ */
+ @Current ConversationManager conversationManager;
+ @Current Conversation currentConversation;
+
+ /**
+ * This is our conversational data component, to illustrate how data is used in conversations and
+ * exists per-conversation.
+ */
+ @Current Data data;
+
+ /**
+ * This is the conversation we'll switch to, chosen by the popup
+ */
+ transient Conversation chosenConversation;
+
+ @SuppressWarnings("serial")
+ public HomePage()
+ {
+
+ chosenConversation = currentConversation;
+
+ add(new FeedbackPanel("feedback"));
+
+ //the first from is to change the value in the conversational data component
+ Form form = new Form("form");
+ add(form);
+ form.add(new TextField("dataField", new PropertyModel(this, "data.data")));
+ form.add(new Button("changeValue"));
+
+
+ //the second form is for switching conversations
+ form = new Form("conversationForm");
+ add(form);
+ form.add(new DropDownChoice("cidSelect",
+ new PropertyModel(this,"chosenConversation"),
+ new Model() {
+ public Object getObject()
+ {
+ //the popup is the set of all long running conversations, plus our own conversation if it is not long running
+ List<Conversation> list =
+ new ArrayList<Conversation>(conversationManager.getLongRunningConversations());
+ if (!currentConversation.isLongRunning())
+ {
+ list.add(0, currentConversation);
+ }
+ return list;
+ }
+ }) {
+ protected boolean wantOnSelectionChangedNotifications() { return true; }
+ protected void onSelectionChanged(Object newSelection)
+ {
+ getSession().info("Switched to conversation " + chosenConversation.getId());
+ setRedirect(true);
+ setResponsePage(HomePage.class,new PageParameters("cid=" + chosenConversation.getId()));
+ }
+ });
+
+ form = new Form("buttons");
+
+ add(form);
+ form.add(new Button("begin")
+ {
+ public void onSubmit()
+ {
+ currentConversation.begin();
+ getSession().info("conversation " + currentConversation.getId() + " promoted to long-running.");
+ //we do this because the conversationManager doesn't update its list
+ //until we cleanup the conversation after the request, so we want a redirect
+ //in order to get the select to look right
+ setRedirect(true);
+ setResponsePage(HomePage.class);
+ }
+ });
+
+ form.add(new Button("noop"));
+
+ form.add(new Button("end")
+ {
+ public void onSubmit()
+ {
+ getSession().info("Ended conversation " + currentConversation.getId());
+ currentConversation.end();
+ //we do this because the conversationManager doesn't update its list
+ //until we cleanup the conversation after the request, so we want a redirect
+ //in order to get the select to look right
+ setRedirect(true);
+ setResponsePage(HomePage.class);
+ }
+ });
+
+ form.add(new Button("longop")
+ {
+ public void onSubmit()
+ {
+ try
+ {
+ Thread.sleep(5000);
+ }
+ catch (InterruptedException e)
+ {
+ }
+ }
+ });
+
+ }
+}
Property changes on: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/HomePage.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/SampleApplication.java
===================================================================
--- examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/SampleApplication.java (rev 0)
+++ examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/SampleApplication.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.examples.conversations;
+
+import org.jboss.webbeans.wicket.WebBeansApplication;
+
+public class SampleApplication extends WebBeansApplication
+{
+
+ @Override
+ public Class getHomePage()
+ {
+ return HomePage.class;
+ }
+
+}
Property changes on: examples/trunk/wicket-conversations/src/main/java/org/jboss/webbeans/examples/conversations/SampleApplication.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-conversations/src/main/resources/beans.xml
===================================================================
--- examples/trunk/wicket-conversations/src/main/resources/beans.xml (rev 0)
+++ examples/trunk/wicket-conversations/src/main/resources/beans.xml 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,7 @@
+<Beans xmlns="urn:java:ee" xmlns:conversations="urn:java:org.jboss.webbeans.examples.conversations">
+ <Deploy>
+ <Standard />
+ <Production />
+ <conversations:Example />
+ </Deploy>
+</Beans>
Property changes on: examples/trunk/wicket-conversations/src/main/resources/beans.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-conversations/src/main/resources/log4j.properties
===================================================================
--- examples/trunk/wicket-conversations/src/main/resources/log4j.properties (rev 0)
+++ examples/trunk/wicket-conversations/src/main/resources/log4j.properties 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,11 @@
+log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n
+
+
+log4j.rootLogger=INFO,Stdout
+
+#log4j.logger.org.jboss.webbeans=DEBUG
+#log4j.logger.org.apache.wicket=DEBUG
+
+
Property changes on: examples/trunk/wicket-conversations/src/main/resources/log4j.properties
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/beans.xml
===================================================================
--- examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/beans.xml (rev 0)
+++ examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/beans.xml 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,7 @@
+<Beans xmlns="urn:java:ee" xmlns:conversations="urn:java:org.jboss.webbeans.examples.conversations">
+ <Deploy>
+ <Standard />
+ <Production />
+ <conversations:Example />
+ </Deploy>
+</Beans>
\ No newline at end of file
Property changes on: examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/beans.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/web.xml
===================================================================
--- examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/web.xml 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<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">
+
+ <display-name>webbeans-conversations-wicket</display-name>
+
+ <filter>
+ <filter-name>wicket.conversations-example</filter-name>
+ <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
+ <init-param>
+ <param-name>applicationClassName</param-name>
+ <param-value>org.jboss.webbeans.examples.conversations.SampleApplication</param-value>
+ </init-param>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>wicket.conversations-example</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <listener>
+ <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>
+ </listener>
+
+
+</web-app>
Property changes on: examples/trunk/wicket-conversations/src/main/webapp/WEB-INF/web.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/examples/wicket/Start.java
===================================================================
--- examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/examples/wicket/Start.java (rev 0)
+++ examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/examples/wicket/Start.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,35 @@
+package org.jboss.webbeans.examples.wicket;
+
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.bio.SocketConnector;
+import org.mortbay.jetty.webapp.WebAppContext;
+
+public class Start {
+
+ public static void main(String[] args) throws Exception {
+ Server server = new Server();
+ SocketConnector connector = new SocketConnector();
+ connector.setPort(8080);
+ server.setConnectors(new Connector[] { connector });
+
+ WebAppContext bb = new WebAppContext();
+ bb.setServer(server);
+ bb.setContextPath("/");
+ bb.setWar("src/main/webapp");
+ server.addHandler(bb);
+
+ try {
+ System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
+ server.start();
+ while (System.in.available() == 0) {
+ Thread.sleep(500);
+ }
+ server.stop();
+ server.join();
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(100);
+ }
+ }
+}
Property changes on: examples/trunk/wicket-conversations/src/test/java/org/jboss/webbeans/examples/wicket/Start.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/pom.xml
===================================================================
--- examples/trunk/wicket-numberguess/pom.xml (rev 0)
+++ examples/trunk/wicket-numberguess/pom.xml 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,125 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.jboss.webbeans.examples</groupId>
+ <artifactId>parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.jboss.webbeans.examples</groupId>
+ <artifactId>wicket-numberguess</artifactId>
+ <packaging>war</packaging>
+ <name>Web Beans Examples: Numberguess with wicket</name>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>codehaus snapshot repository</id>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>jsr299-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans.tomcat</groupId>
+ <artifactId>webbeans-tomcat</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.webbeans</groupId>
+ <artifactId>webbeans-wicket</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.wicket</groupId>
+ <artifactId>wicket</artifactId>
+ <version>${wicket.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.4.2</version>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+
+
+ <!-- JETTY DEPENDENCIES FOR TESTING -->
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>${jetty.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <filtering>false</filtering>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <filtering>false</filtering>
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
+ <version>${jetty.version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.5.1</version>
+ </plugin>
+ </plugins>
+ </build>
+
+ <properties>
+ <wicket.version>1.3-SNAPSHOT</wicket.version>
+ <jetty.version>6.1.16</jetty.version>
+ </properties>
+
+</project>
Property changes on: examples/trunk/wicket-numberguess/pom.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/readme.txt
===================================================================
--- examples/trunk/wicket-numberguess/readme.txt (rev 0)
+++ examples/trunk/wicket-numberguess/readme.txt 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,6 @@
+This example is similar to its sibling "numberguess" example, but implemented with wicket
+and the wicket-webbeans integration. It also follows the wicket standard usage of running from
+within eclipse with jetty. So, for example, to run the app, right-click on Start.java in
+the project and choos "Run as Java Application," which will launch jetty with the example. Then hit http://localhost:8080/
+
+
Added: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Game.java
===================================================================
--- examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Game.java (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Game.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,89 @@
+package org.jboss.webbeans.examples.wicket;
+
+
+import java.io.Serializable;
+
+import javax.annotation.Named;
+import javax.annotation.PostConstruct;
+import javax.context.SessionScoped;
+import javax.inject.AnnotationLiteral;
+import javax.inject.Current;
+import javax.inject.manager.Manager;
+import javax.naming.NamingException;
+
+ at Named
+ at SessionScoped
+public class Game implements Serializable
+{
+ private int number;
+
+ private int guess;
+ private int smallest;
+
+ @MaxNumber
+ private int maxNumber;
+
+ private int biggest;
+ private int remainingGuesses;
+
+ @Current Manager manager;
+
+ public Game() throws NamingException {}
+
+ public int getNumber()
+ {
+ return number;
+ }
+
+ public int getGuess()
+ {
+ return guess;
+ }
+
+ public void setGuess(int guess)
+ {
+ this.guess = guess;
+ }
+
+ public int getSmallest()
+ {
+ return smallest;
+ }
+
+ public int getBiggest()
+ {
+ return biggest;
+ }
+
+ public int getRemainingGuesses()
+ {
+ return remainingGuesses;
+ }
+
+ public boolean check()
+ {
+ if (guess>number)
+ {
+ biggest = guess - 1;
+ }
+ if (guess<number)
+ {
+ smallest = guess + 1;
+ }
+ remainingGuesses--;
+ return (guess == number);
+ }
+
+
+ @PostConstruct
+ public void reset()
+ {
+ this.smallest = 0;
+ this.guess = 0;
+ this.remainingGuesses = 10;
+ this.biggest = maxNumber;
+ this.number = manager.getInstanceByType(Integer.class, new AnnotationLiteral<Random>(){});
+ }
+
+
+}
Property changes on: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Game.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Generator.java
===================================================================
--- examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Generator.java (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Generator.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,34 @@
+package org.jboss.webbeans.examples.wicket;
+
+
+import java.io.Serializable;
+
+import javax.context.ApplicationScoped;
+import javax.inject.Produces;
+
+
+ at ApplicationScoped
+public class Generator implements Serializable
+{
+
+ private static final long serialVersionUID = -7213673465118041882L;
+
+ private java.util.Random random = new java.util.Random( System.currentTimeMillis() );
+
+ private int maxNumber = 100;
+
+ java.util.Random getRandom()
+ {
+ return random;
+ }
+
+ @Produces @Random int next() {
+ return getRandom().nextInt(maxNumber);
+ }
+
+ @Produces @MaxNumber int getMaxNumber()
+ {
+ return maxNumber;
+ }
+
+}
Property changes on: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Generator.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.html
===================================================================
--- examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.html (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.html 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,29 @@
+<html>
+ <head>
+ <title>Wicket WebBeans example</title>
+ </head>
+ <body>
+ <h1>Guess a number...</h1>
+ <form wicket:id="NumberGuessMain">
+ <div style="color: red">
+ <span wicket:id="messages"/>
+ </div>
+
+ <div wicket:id="prompt">
+ I'm thinking of a number between 0 and 100. You have 10 guesses.
+ </div>
+
+ <div>
+ <span wicket:id="guessLabel">Your guess:</span>
+ <input wicket:id="inputGuess" type="text" size="3"/>
+ <input wicket:id="GuessButton" type="submit" value="Guess"/>
+ <input wicket:id="RestartButton" type="submit" value="Reset"/>
+ <h:commandButton id="GuessButton" value="Guess" action="#{game.check}" disabled="#{game.number eq game.guess}"/>
+ </div>
+ <div>
+ <h:commandButton id="RestartButton" value="Reset" action="#{game.reset}" immediate="true" />
+ </div>
+ </form>
+ </body>
+</html>
+
Property changes on: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.html
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.java
===================================================================
--- examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.java (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,84 @@
+package org.jboss.webbeans.examples.wicket;
+
+import javax.inject.Current;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.behavior.AbstractBehavior;
+import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.request.target.component.listener.BehaviorRequestTarget;
+
+public class HomePage extends WebPage {
+
+ private static final long serialVersionUID = 1L;
+
+ @Current Game game;
+
+ public HomePage() {
+
+
+ Form form = new Form("NumberGuessMain");
+ add(form);
+ form.add(new FeedbackPanel("messages").setOutputMarkupId(true));
+
+ final Component prompt = new Label("prompt", new Model() {
+ @Override
+ public Object getObject() {
+ return "I'm thinking of a number between " + game.getSmallest() + " and " + game.getBiggest() +
+ ". You have " + game.getRemainingGuesses() + " guesses.";
+ }
+ });
+ form.add(prompt);
+
+ final Component guessLabel = new Label("guessLabel","Your Guess:");
+ form.add(guessLabel);
+ final Component inputGuess = new TextField("inputGuess",new Model() {
+ public Object getObject() {
+ return game.getGuess();
+ }
+ public void setObject(Object object) {
+ game.setGuess(Integer.parseInt((String)object));
+ }
+ });
+ form.add(inputGuess);
+
+ final Component guessButton = new AjaxButton("GuessButton") {
+ protected void onSubmit(AjaxRequestTarget target, Form form) {
+ if (game.check()) {
+ info("Correct!");
+ setVisible(false);
+ prompt.setVisible(false);
+ guessLabel.setVisible(false);
+ inputGuess.setVisible(false);
+ }
+ else if (game.getNumber() > game.getGuess())
+ info("Higher!");
+ else if (game.getNumber() < game.getGuess())
+ info("Lower");
+ target.addComponent(form);
+ }
+ };
+ form.add(guessButton);
+
+ form.add(new AjaxButton("RestartButton") {
+ protected void onSubmit(AjaxRequestTarget target, Form form) {
+ game.reset();
+ guessButton.setVisible(true);
+ prompt.setVisible(true);
+ guessLabel.setVisible(true);
+ inputGuess.setVisible(true);
+ target.addComponent(form);
+ }
+ });
+
+ }
+}
Property changes on: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/HomePage.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/MaxNumber.java
===================================================================
--- examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/MaxNumber.java (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/MaxNumber.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.examples.wicket;
+
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+public @interface MaxNumber
+{
+
+}
Property changes on: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/MaxNumber.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Random.java
===================================================================
--- examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Random.java (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Random.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.examples.wicket;
+
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+public @interface Random
+{
+
+}
Property changes on: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/Random.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/SampleApplication.java
===================================================================
--- examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/SampleApplication.java (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/SampleApplication.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.examples.wicket;
+
+import org.jboss.webbeans.wicket.WebBeansApplication;
+
+public class SampleApplication extends WebBeansApplication
+{
+
+ @Override
+ public Class getHomePage()
+ {
+ return HomePage.class;
+ }
+
+}
Property changes on: examples/trunk/wicket-numberguess/src/main/java/org/jboss/webbeans/examples/wicket/SampleApplication.java
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/resources/beans.xml
===================================================================
Property changes on: examples/trunk/wicket-numberguess/src/main/resources/beans.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/resources/log4j.properties
===================================================================
--- examples/trunk/wicket-numberguess/src/main/resources/log4j.properties (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/resources/log4j.properties 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,10 @@
+log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n
+
+
+log4j.rootLogger=INFO,Stdout
+
+log4j.logger.org.jboss.webbeans=DEBUG
+
+
Property changes on: examples/trunk/wicket-numberguess/src/main/resources/log4j.properties
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/beans.xml
===================================================================
Property changes on: examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/beans.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/web.xml
===================================================================
--- examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/web.xml 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<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">
+
+ <display-name>webbeans-numberguess-wicket</display-name>
+
+ <filter>
+ <filter-name>wicket.numberguess-example</filter-name>
+ <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
+ <init-param>
+ <param-name>applicationClassName</param-name>
+ <param-value>org.jboss.webbeans.examples.wicket.SampleApplication</param-value>
+ </init-param>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>wicket.numberguess-example</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <listener>
+ <listener-class>org.jboss.webbeans.environment.servlet.Listener</listener-class>
+ </listener>
+
+
+</web-app>
Property changes on: examples/trunk/wicket-numberguess/src/main/webapp/WEB-INF/web.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/examples/wicket/Start.java
===================================================================
--- examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/examples/wicket/Start.java (rev 0)
+++ examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/examples/wicket/Start.java 2009-04-16 15:09:21 UTC (rev 2434)
@@ -0,0 +1,36 @@
+package org.jboss.webbeans.examples.wicket;
+
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.bio.SocketConnector;
+import org.mortbay.jetty.webapp.WebAppContext;
+
+public class Start {
+
+ public static void main(String[] args) throws Exception {
+ Server server = new Server();
+ SocketConnector connector = new SocketConnector();
+ connector.setPort(8080);
+ server.setConnectors(new Connector[] { connector });
+
+ WebAppContext bb = new WebAppContext();
+ bb.setServer(server);
+ bb.setContextPath("/");
+ bb.setWar("src/main/webapp");
+
+ server.addHandler(bb);
+
+ try {
+ System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
+ server.start();
+ while (System.in.available() == 0) {
+ Thread.sleep(500);
+ }
+ server.stop();
+ server.join();
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(100);
+ }
+ }
+}
Property changes on: examples/trunk/wicket-numberguess/src/test/java/org/jboss/webbeans/examples/wicket/Start.java
___________________________________________________________________
Name: svn:executable
+ *
More information about the weld-commits
mailing list