Author: maschmid
Date: 2012-04-02 02:53:18 -0400 (Mon, 02 Apr 2012)
New Revision: 14455
Added:
branches/community/Seam_2_3/examples-ee6/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-deployment-structure.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-seam-chatroom-hornetq-jms.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomAction.java
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomActionWebRemote.java
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomEvent.java
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomUsers.java
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/LoggerBean.java
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/META-INF/ejb-jar.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/selenium/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/selenium/SeleniumChatroomTest.java
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/webdriver/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/webdriver/WebDriverChatroomTest.java
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources-ftest/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources-ftest/testng.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/components.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/faces-config.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/web.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.js
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.xhtml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/index.html
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/readme.txt
branches/community/Seam_2_3/examples-ee6/remoting/gwt/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/main/application/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/main/application/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/main/application/META-INF/jboss-deployment-structure.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/HelloWorld.gwt.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/AskQuestionWidget.java
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/HelloWorld.java
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyService.java
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyServiceAsync.java
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/ValidationUtility.java
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/package.html
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/public/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/public/HelloWorld.html
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/server/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/server/ServiceImpl.java
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/META-INF/ejb-jar.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/gwt/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/gwt/test/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/gwt/test/selenium/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/gwt/test/selenium/GwtTest.java
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources-ftest/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources-ftest/testng.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/components.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/history.html
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/index.html
branches/community/Seam_2_3/examples-ee6/remoting/gwt/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/gwt/readme.txt
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/main/application/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/main/application/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/main/application/META-INF/jboss-deployment-structure.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/seam/example/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/seam/example/remoting/HelloAction.java
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/META-INF/ejb-jar.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/helloworld/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/helloworld/test/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/helloworld/test/selenium/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/helloworld/test/selenium/HelloworldTest.java
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources-ftest/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources-ftest/testng.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/components.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/faces-config.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/web.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/helloworld.xhtml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/index.html
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/readme.txt
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/main/application/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/main/application/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/main/application/META-INF/jboss-deployment-structure.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/Progress.java
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarAction.java
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarLocal.java
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/META-INF/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/META-INF/ejb-jar.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/seam.properties
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/pom.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/components.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/faces-config.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/web.xml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/complete.xhtml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/index.html
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/progressbar.xhtml
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/slider.js
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/readme.txt
Log:
Add remoting examples to examples-ee6
Added: branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>chatroom</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-ear</artifactId>
+ <packaging>ear</packaging>
+ <name>Chatroom EAR Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-web</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-ejb</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>seam-chatroom</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <configuration>
+ <version>6</version>
+ <defaultLibBundleDir>lib</defaultLibBundleDir>
+ <!-- Exclude eclipse generated application.xml and manually
modified jboss-app.xml during mvn build -->
+ <earSourceExcludes>**/application.xml,
**/jboss-app.xml</earSourceExcludes>
+ <!-- use maven generated application.xml instead -->
+ <generateApplicationXml>true</generateApplicationXml>
+ <filtering>true</filtering>
+ <modules>
+ <webModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-web</artifactId>
+ <contextRoot>/seam-chatroom</contextRoot>
+
<bundleFileName>chatroom-web.war</bundleFileName>
+ </webModule>
+ <ejbModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-ejb</artifactId>
+
<bundleFileName>chatroom-ejb.jar</bundleFileName>
+ </ejbModule>
+ </modules>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>exploded</id>
+ <properties>
+ <example.name>chatroom</example.name>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+
<artifactId>chatroom-ear</artifactId>
+ <type>ear</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+
<artifactId>chatroom-web</artifactId>
+ <type>war</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-web.war</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+
<artifactId>chatroom-ejb</artifactId>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-ejb.jar</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-deployment-structure.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-deployment-structure.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-deployment-structure.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,9 @@
+<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+ <deployment>
+ <dependencies>
+ <module name="javax.faces.api" export="true"/>
+ <module name="com.sun.jsf-impl" export="true"/>
+ <module name="org.hibernate" export="true"/>
+ </dependencies>
+ </deployment>
+</jboss-deployment-structure>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-seam-chatroom-hornetq-jms.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-seam-chatroom-hornetq-jms.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ear/src/main/application/META-INF/jboss-seam-chatroom-hornetq-jms.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<messaging-deployment xmlns="urn:jboss:messaging-deployment:1.0">
+ <hornetq-server>
+ <jms-destinations>
+ <jms-topic name="chatroomTopic">
+ <entry name="/topic/chatroomTopic"/>
+ </jms-topic>
+ </jms-destinations>
+ </hornetq-server>
+</messaging-deployment>
Added: branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>chatroom</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-ejb</artifactId>
+ <packaging>ejb</packaging>
+ <name>Chatroom EJB Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-remoting</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.jms</groupId>
+ <artifactId>jms</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomAction.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomAction.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomAction.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,80 @@
+package org.jboss.seam.example.remoting.chatroom;
+
+import static org.jboss.seam.ScopeType.CONVERSATION;
+
+import java.util.Set;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.jms.TopicPublisher;
+import javax.jms.TopicSession;
+
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.Destroy;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+@Stateful
+@Name("chatroomAction")
+@Scope(CONVERSATION)
+public class ChatRoomAction implements ChatRoomActionWebRemote
+{
+
+ @In(create=true)
+ private transient TopicPublisher topicPublisher;
+ @In(create=true)
+ private transient TopicSession topicSession;
+
+ @In(create=true)
+ Set<String> chatroomUsers;
+
+ private String username;
+
+ @Begin
+ public boolean connect(String username)
+ {
+ this.username = username;
+ boolean added = chatroomUsers.add(username);
+ if (added)
+ {
+ publish( new ChatroomEvent("connect", username) );
+ }
+ return added;
+ }
+
+ public void sendMessage(String message)
+ {
+ publish( new ChatroomEvent("message", username, message) );
+ }
+
+ @End
+ public void disconnect()
+ {
+ chatroomUsers.remove(username);
+ publish( new ChatroomEvent("disconnect", username) );
+ }
+
+ public Set<String> listUsers()
+ {
+ return chatroomUsers;
+ }
+
+ private void publish(ChatroomEvent message)
+ {
+ try
+ {
+ topicPublisher.publish( topicSession.createObjectMessage(message) );
+ }
+ catch (Exception ex)
+ {
+ throw new RuntimeException(ex);
+ }
+ }
+
+ @Destroy
+ @Remove
+ public void destroy() {}
+
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomActionWebRemote.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomActionWebRemote.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatRoomActionWebRemote.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,17 @@
+package org.jboss.seam.example.remoting.chatroom;
+
+import java.util.Set;
+import javax.ejb.Local;
+
+import org.jboss.seam.annotations.remoting.WebRemote;
+
+@Local
+public interface ChatRoomActionWebRemote {
+ @WebRemote boolean connect(String name);
+ @WebRemote void disconnect();
+ @WebRemote void sendMessage(String message);
+ @WebRemote Set<String> listUsers();
+
+ public void destroy();
+}
+
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomEvent.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomEvent.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomEvent.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,43 @@
+package org.jboss.seam.example.remoting.chatroom;
+
+import java.io.Serializable;
+
+import org.jboss.seam.annotations.Name;
+
+/**
+ * @author Shane Bryzak
+ */
+@Name("chatroomEvent")
+public class ChatroomEvent implements Serializable
+{
+ private String action;
+ private String user;
+ private String data;
+
+ public ChatroomEvent(String action, String user)
+ {
+ this(action, user, null);
+ }
+
+ public ChatroomEvent(String action, String user, String data)
+ {
+ this.action = action;
+ this.user = user;
+ this.data = data;
+ }
+
+ public String getAction()
+ {
+ return action;
+ }
+
+ public String getUser()
+ {
+ return user;
+ }
+
+ public String getData()
+ {
+ return data;
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomUsers.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomUsers.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/ChatroomUsers.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,33 @@
+package org.jboss.seam.example.remoting.chatroom;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jboss.seam.cache.CacheProvider;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.Unwrap;
+
+@Name("chatroomUsers")
+(a)Scope(ScopeType.STATELESS)
+public class ChatroomUsers
+{
+ @SuppressWarnings("unchecked")
+ @In CacheProvider cacheProvider;
+
+ @SuppressWarnings("unchecked")
+ @Unwrap
+ public Set<String> getUsers()
+ {
+ Set<String> userList = (Set<String>)
cacheProvider.get("chatroom", "userList");
+ if (userList==null)
+ {
+ userList = new HashSet<String>();
+ cacheProvider.put("chatroom", "userList", userList);
+ }
+ return userList;
+ }
+
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/LoggerBean.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/LoggerBean.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/java/org/jboss/seam/example/remoting/chatroom/LoggerBean.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,37 @@
+package org.jboss.seam.example.remoting.chatroom;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.ObjectMessage;
+
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.log.Log;
+
+@MessageDriven(activationConfig={
+ @ActivationConfigProperty(propertyName="destinationType",
propertyValue="javax.jms.Topic"),
+ @ActivationConfigProperty(propertyName="destination",
propertyValue="topic/chatroomTopic")
+ })
+@Name("logger")
+public class LoggerBean implements MessageListener
+{
+
+ @Logger Log log;
+
+ public void onMessage(Message msg)
+ {
+ try
+ {
+ ChatroomEvent event = (ChatroomEvent) ( (ObjectMessage) msg ).getObject();
+ log.info( "#0: #1", event.getUser(), event.getData()==null ?
event.getAction() : event.getData() );
+ }
+ catch (JMSException jmse)
+ {
+ throw new RuntimeException(jmse);
+ }
+ }
+
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/META-INF/ejb-jar.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/META-INF/ejb-jar.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/META-INF/ejb-jar.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+ version="3.0">
+
+ <interceptors>
+ <interceptor>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor>
+ </interceptors>
+
+ <assembly-descriptor>
+ <interceptor-binding>
+ <ejb-name>*</ejb-name>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor-binding>
+ </assembly-descriptor>
+
+</ejb-jar>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-ejb/src/main/resources/seam.properties
===================================================================
Added: branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>chatroom</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-tests</artifactId>
+ <name>Chatroom Integration Tests Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.server</groupId>
+ <artifactId>selenium-server</artifactId>
+ <classifier>standalone</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>functional-tests</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>ftest-jbossas</id>
+ <properties>
+ <example.context.path>/seam-chatroom</example.context.path>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>failsafe-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/selenium/SeleniumChatroomTest.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/selenium/SeleniumChatroomTest.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/selenium/SeleniumChatroomTest.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,160 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.seam.example.remoting.chatroom.test.selenium;
+
+import org.jboss.seam.example.common.test.selenium.SeamSelenium;
+import org.jboss.seam.example.common.test.selenium.SeamSeleniumTest;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+import static org.testng.AssertJUnit.assertEquals;
+
+/**
+ * This class tests functionality of remoting/chatroom example.
+ * The test opens two browsers and tests communication between users.
+ *
+ * @author Martin Gencur
+ *
+ */
+public class SeleniumChatroomTest extends SeamSeleniumTest
+{
+ public static long timeout = 22000;
+
+ public static final String HOME_PAGE = "/chatroom.seam";
+ public static final String HOME_PAGE_TITLE = "Chat Room Example";
+ public static final String NAME_INPUT = "id=username";
+ public static final String CONNECT_BUTTON = "id=btnConnect";
+ public static final String DISCONNECT_BUTTON = "id=btnDisconnect";
+ public static final String CONNECT_BUTTON_DISABLED =
"xpath=//input[@id='btnConnect'][@disabled]";
+ public static final String DISCONNECT_BUTTON_DISABLED =
"xpath=//input[@id='btnDisconnect'][@disabled]";
+ public static final String MESSAGE_INPUT = "id=messageText";
+ public static final String CHAT_AREA = "id=channelDisplay";
+ public static final String NAME1 = "Martin";
+ public static final String NAME2 = "Jozef";
+ public static final String MARTIN_CONNECTED =
"xpath=//div[@id='channelDisplay']/span[contains(text(),'Martin
connected.')]";
+ public static final String MARTIN_LISTED =
"xpath=//div/select[@id='userList']/option[contains(text(),'Martin')]";
+ public static final String JOZEF_CONNECTED =
"xpath=//div[@id='channelDisplay']/span[contains(text(),'Jozef
connected.')]";
+ public static final String JOZEF_LISTED =
"xpath=//div/select[@id='userList']/option[contains(text(),'Jozef')]";
+ public static final String JOZEF_DISCONNECTED =
"xpath=//div[@id='channelDisplay']/span[contains(text(),'Jozef
disconnected.')]";
+ public static final String MESSAGE_FROM_MARTIN = "Hello";
+ public static final String MESSAGE_FROM_JOZEF = "Good evening";
+ public static final String MARTIN_GT =
"xpath=//div[@id='channelDisplay']/span[contains(text(),'Martin>')]";
+ public static final String HELLO =
"xpath=//div[(a)id='channelDisplay']/text()[contains(.,'"+
MESSAGE_FROM_MARTIN +"')]";
+ public static final String JOZEF_GT =
"xpath=//div[@id='channelDisplay']/span[contains(text(),'Jozef>')]";
+ public static final String GOOD_MORNING =
"xpath=//div[(a)id='channelDisplay']/text()[contains(.,'" +
MESSAGE_FROM_JOZEF + "')]";
+
+ protected SeamSelenium browser2;
+
+ @BeforeMethod
+ @Override
+ public void setUp() {
+ super.setUp();
+ startSecondBrowser();
+ browser.open(CONTEXT_PATH + HOME_PAGE);
+ browser2.open(CONTEXT_PATH + HOME_PAGE);
+ }
+
+ @AfterMethod
+ @Override
+ public void tearDown() {
+ stopSecondBrowser();
+ super.tearDown();
+ }
+
+ @Test // place holder - should be replaced by better tests as soon as JBSEAM-3944 is
resolved
+ public void homePageLoadTest() {
+ assertEquals("Unexpected page title.", HOME_PAGE_TITLE,
browser.getTitle());
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void connectAndChatTest(){
+ /*connect user to chat*/
+ connect();
+ /*verify that user is connected and is seen by other users*/
+ verifyConnecting();
+ /*exchange several messages*/
+ chat();
+ /*disconnect user from chat*/
+ disconnect();
+ /*verify that user is disconnected and is not in a list of users anymore*/
+ verifyDisconnecting();
+ }
+
+ public void connect(){
+ browser.type(NAME_INPUT, NAME1);
+ browser.click(CONNECT_BUTTON);
+ }
+
+ public void verifyConnecting(){
+ //browser.waitForElement(MARTIN_CONNECTED, timeout);
+ browser.waitForElement(MARTIN_LISTED, timeout);
+ browser2.type(NAME_INPUT, NAME2);
+ browser2.click(CONNECT_BUTTON);
+ browser2.waitForElement(JOZEF_LISTED, timeout);
+ browser2.waitForElement(MARTIN_LISTED, timeout);
+ browser.waitForElement(JOZEF_CONNECTED, timeout);
+ browser.waitForElement(JOZEF_LISTED, timeout);
+ }
+
+ public void disconnect(){
+ browser2.click(DISCONNECT_BUTTON);
+ }
+
+ public void verifyDisconnecting(){
+ browser2.waitForElementNotPresent(JOZEF_LISTED, timeout);
+ browser2.waitForElement(DISCONNECT_BUTTON_DISABLED, timeout);
+ browser.waitForElement(JOZEF_DISCONNECTED, timeout);
+ browser.waitForElementNotPresent(JOZEF_LISTED, timeout);
+ browser.click(DISCONNECT_BUTTON);
+ browser.waitForElementNotPresent(MARTIN_LISTED, timeout);
+ browser.waitForElement(DISCONNECT_BUTTON_DISABLED, timeout);
+ }
+
+ public void chat(){
+ /*first user is sending a message*/
+ browser.type(MESSAGE_INPUT, MESSAGE_FROM_MARTIN);
+ browser.focus(MESSAGE_INPUT);
+ browser.keyPressNative("10");//browser.keyPressNative("13");
+ browser.keyPress(MESSAGE_INPUT,"13");
+ browser.waitForElement(MARTIN_GT, timeout);
+ browser.waitForElement(HELLO, timeout);
+ browser2.waitForElement(MARTIN_GT, timeout);
+ browser2.waitForElement(HELLO, timeout);
+ /*second user is sending a message*/
+ browser2.type(MESSAGE_INPUT, MESSAGE_FROM_JOZEF);
+ browser2.focus(MESSAGE_INPUT);
+ browser2.keyPressNative("10");
+ browser2.keyPress(MESSAGE_INPUT,"13");
+ browser2.waitForElement(JOZEF_GT, timeout);
+ browser2.waitForElement(GOOD_MORNING, timeout);
+ browser.waitForElement(JOZEF_GT, timeout);
+ browser.waitForElement(GOOD_MORNING, timeout);
+ }
+
+ public void startSecondBrowser(){
+ browser2 = super.startBrowser();
+ }
+
+ public void stopSecondBrowser(){
+ browser2.stop();
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/webdriver/WebDriverChatroomTest.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/webdriver/WebDriverChatroomTest.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/java/org/jboss/seam/example/remoting/chatroom/test/webdriver/WebDriverChatroomTest.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,242 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.seam.example.remoting.chatroom.test.webdriver;
+
+
+//import static junit.framework.Assert.assertTrue;
+
+import org.jboss.seam.example.common.test.webdriver.AjaxWebDriverFactory;
+import org.jboss.seam.example.common.test.webdriver.AjaxWebDriverTest;
+import org.jboss.seam.example.common.test.webdriver.AjaxWebElement;
+import org.jboss.seam.example.common.test.webdriver.AjaxWebDriver;
+import org.openqa.selenium.By;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.NoSuchElementException;
+import org.testng.annotations.Test;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import static junit.framework.Assert.assertTrue;
+import static junit.framework.Assert.assertNull;
+import static org.testng.Assert.fail;
+
+/**
+ * This class tests functionality of remoting/chatroom example.
+ * The test opens two browsers and tests communication between users.
+ *
+ * @author Martin Gencur
+ *
+ */
+public class WebDriverChatroomTest extends AjaxWebDriverTest
+{
+ public static int timeout = 16000;
+
+ public static final String NAME1 = "Martin";
+ public static final String NAME2 = "Jozef";
+ public static final String MESSAGE_FROM_MARTIN = "Hello";
+ public static final String MESSAGE_FROM_JOZEF = "Good evening";
+ public static final String HOME_PAGE = "/chatroom.seam";
+
+ public static final String HOME_PAGE_TITLE = "Chat Room Example";
+ public static final By NAME_INPUT = By.id("username");
+ public static final By CONNECT_BUTTON = By.id("btnConnect");
+ public static final By DISCONNECT_BUTTON = By.id("btnDisconnect");
+ public static final By CONNECT_BUTTON_DISABLED =
By.xpath("//input[@id='btnConnect'][@disabled]");
+ public static final By DISCONNECT_BUTTON_DISABLED =
By.xpath("//input[@id='btnDisconnect'][@disabled]");
+ public static final By MESSAGE_INPUT = By.id("messageText");
+ public static final By CHAT_AREA = By.id("channelDisplay");
+ public static final By MARTIN_CONNECTED =
By.xpath("//div[@id='channelDisplay']/span[contains(text(),'Martin
connected.')]");
+ public static final By MARTIN_LISTED =
By.xpath("//div/select[@id='userList']/option[contains(text(),'Martin')]");
+ public static final By JOZEF_CONNECTED =
By.xpath("//div[@id='channelDisplay']/span[contains(text(),'Jozef
connected.')]");
+ public static final By JOZEF_LISTED =
By.xpath("//div/select[@id='userList']/option[contains(text(),'Jozef')]");
+ public static final By JOZEF_DISCONNECTED =
By.xpath("//div[@id='channelDisplay']/span[contains(text(),'Jozef
disconnected.')]");
+ public static final By MARTIN_GT =
By.xpath("//div[@id='channelDisplay']/span[contains(text(),'Martin>')]");
+ public static final By HELLO =
By.xpath("//div[(a)id='channelDisplay']/text()[contains(.,'"+
MESSAGE_FROM_MARTIN +"')]");
+ public static final By JOZEF_GT =
By.xpath("//div[@id='channelDisplay']/span[contains(text(),'Jozef>')]");
+ public static final By GOOD_MORNING =
By.xpath("//div[(a)id='channelDisplay']/text()[contains(.,'" +
MESSAGE_FROM_JOZEF + "')]");
+
+ protected AjaxWebDriver driver2;
+
+ @BeforeMethod
+ public void setUp()
+ {
+ startSecondBrowser();
+ driver.get(serverURL + contextPath + HOME_PAGE);
+ driver2.get(serverURL + contextPath + HOME_PAGE);
+ }
+
+ @AfterMethod
+ public void tearDown()
+ {
+ stopSecondBrowser();
+ }
+
+ @Test
+ public void homePageLoadTest()
+ {
+ assertTrue("Unexpected page title.",
driver.getTitle().contains(HOME_PAGE_TITLE));
+ }
+
+ @Test(dependsOnMethods={"homePageLoadTest"})
+ public void connectAndChatTest()
+ {
+ /*connect user to chat*/
+ connect();
+ /*verify that user is connected and is seen by other users*/
+ verifyConnecting();
+ /*exchange several messages*/
+ chat();
+ /*disconnect user from chat*/
+ disconnect();
+ /*verify that user is disconnected and is not in a list of users anymore*/
+ verifyDisconnecting();
+ }
+
+ public void connect()
+ {
+
+ driver.findElement(NAME_INPUT).clearAndSendKeys(NAME1, Keys.TAB);
+
+ driver.setWaitTime(timeout);
+
+ //more reliable than simple click
+ driver.findElement(CONNECT_BUTTON).clearAndSendKeys(Keys.RETURN);
+
+ try
+ {
+ Thread.sleep(timeout);
+ }
+ catch (InterruptedException e)
+ {
+ }
+ }
+
+ public void verifyConnecting()
+ {
+ driver.findElement(MARTIN_LISTED);
+ driver2.setWaitTime(timeout);
+ driver2.findElement(NAME_INPUT).clearAndSendKeys(NAME2);
+ driver2.findElement(CONNECT_BUTTON).clickAndWait();
+ driver2.findElement(JOZEF_LISTED);
+ driver2.findElement(MARTIN_LISTED);
+ driver.findElement(JOZEF_CONNECTED);
+ driver.findElement(JOZEF_LISTED);
+ }
+
+ public void disconnect()
+ {
+ driver2.findElement(DISCONNECT_BUTTON).clickAndWait();
+ }
+
+ public void verifyDisconnecting()
+ {
+
+ AjaxWebElement el = null;
+ try
+ {
+ el = driver2.findElement(JOZEF_LISTED);
+ }
+ catch (NoSuchElementException e)
+ {
+ }
+ assertNull("Jozef should not be listed in second browser window", el);
+
+ driver2.findElement(DISCONNECT_BUTTON_DISABLED);
+ driver.findElement(JOZEF_DISCONNECTED);
+
+ AjaxWebElement el2 = null;
+ try
+ {
+ el2 = driver.findElement(JOZEF_LISTED);
+ }
+ catch (NoSuchElementException e)
+ {
+ }
+ assertNull("Jozef should not be listed in first browser window", el2);
+
+ driver.findElement(DISCONNECT_BUTTON).clickAndWait();
+
+ AjaxWebElement el3 = null;
+ try
+ {
+ el3 = driver.findElement(MARTIN_LISTED);
+ }
+ catch (NoSuchElementException e)
+ {
+ }
+ assertNull("Martin should not be listed in first browser window", el3);
+
+ driver.findElement(DISCONNECT_BUTTON_DISABLED);
+ }
+
+ public void chat()
+ {
+ /*first user is sending a message*/
+ driver.findElement(MESSAGE_INPUT).clearAndSendKeys(MESSAGE_FROM_MARTIN);
+ driver.findElement(MESSAGE_INPUT).sendKeys(Keys.RETURN);
+
+ try
+ {
+ Thread.sleep(timeout);
+ } catch (InterruptedException e)
+ {
+ }
+
+ driver.findElement(MARTIN_GT);
+ driver.findElement(HELLO);
+ driver2.findElement(MARTIN_GT);
+ driver2.findElement(HELLO);
+ driver2.findElement(MESSAGE_INPUT).clearAndSendKeys(MESSAGE_FROM_JOZEF,
Keys.RETURN);
+
+ try
+ {
+ Thread.sleep(timeout);
+ } catch (InterruptedException e)
+ {
+ }
+
+ driver2.findElement(JOZEF_GT);
+ driver2.findElement(GOOD_MORNING);
+ driver.findElement(JOZEF_GT);
+ driver.findElement(GOOD_MORNING);
+ }
+
+ public void startSecondBrowser()
+ {
+ try
+ {
+ this.driver2 = AjaxWebDriverFactory.getDriver(this.browser);
+ }
+ catch (IllegalArgumentException e)
+ {
+ fail("Unable to instantiate browser of type: " + this.browser +
", available browsers are: " + AjaxWebDriverFactory.availableBrowsers());
+ }
+ catch (NullPointerException e)
+ {
+ fail("Unable to instantiate browser of type: " + this.browser +
", available browsers are: " + AjaxWebDriverFactory.availableBrowsers());
+ }
+ }
+
+ public void stopSecondBrowser()
+ {
+ driver2.close();
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources/seam.properties
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources/seam.properties
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources/seam.properties 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,3 @@
+#debug is explicitly disabled in test to avoid JBIDE-3623
+#Thu Dec 31 16:24:37 CET 2009
+org.jboss.seam.core.init.debug=false
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources-ftest/testng.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources-ftest/testng.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-tests/src/test/resources-ftest/testng.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,24 @@
+<!--
+ JBoss, Home of Professional Open Source Copyright 2008, Red Hat
+ Middleware LLC, and individual contributors by the @authors tag. See
+ the copyright.txt in the distribution for a full listing of individual
+ contributors. This is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version. This software is
+ distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details. You should have received a copy of the GNU
+ Lesser General Public License along with this software; if not, write
+ to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+-->
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+<suite name="Web Driver Chatroom example" verbose="2"
parallel="false">
+ <test name="chatroom_tests_jboss56">
+ <packages>
+ <package
name="org.jboss.seam.example.remoting.chatroom.test.webdriver" />
+ </packages>
+ </test>
+</suite>
Added: branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>chatroom</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-web</artifactId>
+ <packaging>war</packaging>
+ <name>Chatroom Web Module (EE6)</name>
+
+ <properties>
+ <!-- filtering property for components.xml -->
+ <jndiPattern>java:app/chatroom-ejb/#{ejbName}</jndiPattern>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-ejb</artifactId>
+ <type>ejb</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-ui</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-jul</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-debug</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>src/main/webapp</directory>
+ <filtering>true</filtering>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/components.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/components.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/components.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,28 @@
+<components
xmlns="http://jboss.com/products/seam/components"
+
xmlns:cache="http://jboss.com/products/seam/cache">
+
+ <component name="org.jboss.seam.core.init">
+ <property name="jndiPattern">@jndiPattern@</property>
+ </component>
+
+ <component name="topicPublisher"
class="org.jboss.seam.jms.ManagedTopicPublisher">
+ <property
name="topicJndiName">topic/chatroomTopic</property>
+ </component>
+
+ <component
class="org.jboss.seam.remoting.messaging.SubscriptionRegistry"
installed="true">
+ <property name="allowedTopics">chatroomTopic</property>
+ </component>
+
+ <component name="org.jboss.seam.core.manager">
+ <property name="conversationTimeout">120000</property>
+ </component>
+
+ <cache:eh-cache-provider/>
+
+ <component name="org.jboss.seam.remoting.remoting">
+ <property name="debug">false</property>
+ <property name="pollTimeout">2</property>
+ <property name="pollInterval">1</property>
+ </component>
+
+</components>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/faces-config.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/faces-config.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="2.1"
+
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
+
+</faces-config>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/web.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/web.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/WEB-INF/web.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="3.0"
+
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
+
+ <!-- Seam -->
+
+ <listener>
+ <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+ </listener>
+
+ <filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <servlet>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+
<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+ <url-pattern>/seam/resource/*</url-pattern>
+ </servlet-mapping>
+
+ <context-param>
+ <param-name>facelets.DEVELOPMENT</param-name>
+ <param-value>true</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+
+ <!-- Faces Servlet -->
+
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.seam</url-pattern>
+ </servlet-mapping>
+
+</web-app>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.js
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.js
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.js 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,127 @@
+// Returns a reference to an object by its id
+function getObject(objectId) {
+ if (document.getElementById && document.getElementById(objectId))
+ return document.getElementById(objectId);
+ else if (document.all && document.all(objectId))
+ return document.all(objectId);
+ else if (document.layers && document.layers[objectId])
+ return document.layers[objectId];
+ else
+ return false;
+}
+
+var username = null;
+var connectedFlag = false;
+var chatroom = Seam.Component.getInstance("chatroomAction");
+
+function connect() {
+ var nameCtl = getObject("username");
+ username = nameCtl.value;
+
+ var connectCallback = function(connected, context) {
+ connectedFlag = true;
+ setInterfaceState(connected);
+ getObject("username").value = username;
+ Seam.Remoting.getContext().setConversationId(context.getConversationId());
+ };
+
+ var listUsersCallback = function(users) {
+ for (var i = 0; i < users.length; i++)
+ addUser(users[i]);
+ };
+
+ Seam.Remoting.startBatch();
+ chatroom.connect(username, connectCallback);
+ chatroom.listUsers(listUsersCallback);
+ Seam.Remoting.executeBatch();
+ Seam.Remoting.subscribe("chatroomTopic", channelMessageCallback);
+}
+
+function disconnect() {
+ connectedFlag = false;
+ Seam.Remoting.unsubscribe("chatroomTopic");
+ setInterfaceState(false);
+ chatroom.disconnect();
+ getObject("userList").options.length = 0;
+}
+
+function channelMessageCallback(message) {
+ var ctl = getObject("channelDisplay");
+
+ var actionDTO = message.getValue();
+
+ if (actionDTO.action == "message")
+ ctl.innerHTML += "<span style='font-weight:bold" +
(actionDTO.getUser() == username ? ";color:green" : "") +
"'>" + actionDTO.getUser() + "></span> " +
actionDTO.getData() + "<br/>";
+ else if (actionDTO.action == "connect")
+ {
+ addUser(actionDTO.getUser());
+ ctl.innerHTML += "<span style='font-weight:bold;color:red'>"
+ actionDTO.getUser() + " connected.</span><br/>";
+ }
+ else if (actionDTO.action == "disconnect")
+ {
+ removeUser(actionDTO.getUser());
+ ctl.innerHTML += "<span style='font-weight:bold;color:red'>"
+ actionDTO.getUser() + " disconnected.</span><br/>";
+ }
+
+ ctl.scrollTop = ctl.scrollHeight;
+}
+
+function addUser(user) {
+ var ctl = getObject("userList");
+ var found = false;
+
+ for (var i = 0; i < ctl.options.length; i++) {
+ if (ctl.options[i].value == user)
+ {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found)
+ ctl.options[ctl.options.length] = new Option(user, user);
+}
+
+function removeUser(user) {
+ var ctl = getObject("userList");
+
+ for (var i = 0; i < ctl.options.length; i++) {
+ if (ctl.options[i].value == user)
+ ctl.options[i] = null;
+ }
+}
+
+function setInterfaceState(connected) {
+ getObject("username").readOnly = connected;
+ getObject("btnConnect").disabled = connected;
+ getObject("btnDisconnect").disabled = !connected;
+}
+
+function sendMessage() {
+ if (!connectedFlag) {
+ alert("Not connected");
+ return;
+ }
+
+ var ctl = getObject("messageText");
+ chatroom.sendMessage(ctl.value);
+ ctl.value = "";
+ // Force a poll so that we see our new message straight away
+ Seam.Remoting.poll();
+}
+
+function checkEnterPressed(e) {
+ if ((window.event && window.event.keyCode == 13) ||
+ (e && e.which == 13))
+ {
+ sendMessage();
+
+ if (navigator.userAgent.indexOf("MSIE") != -1)
+ {
+ window.event.cancelBubble = true;
+ window.event.returnValue = false;
+ }
+ else
+ e.preventDefault();
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.xhtml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.xhtml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/chatroom.xhtml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html">
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
+ <title>Chat Room Example</title>
+</head>
+
+<body>
+
+ <script type="text/javascript"
src="seam/resource/remoting/resource/remote.js"></script>
+ <script type="text/javascript"
src="seam/resource/remoting/interface.js?chatroomAction&chatroomEvent"></script>
+ <script type="text/javascript"
src="chatroom.js"></script>
+
+ <h1>Chat Room Example</h1>
+
+ <p>
+ Enter your name <input id="username" type="text"/>
+ <input type="button" id="btnConnect"
onclick="javascript:connect()" value="Connect"></input>
+ <input type="button" id="btnDisconnect"
disabled="true" onclick="javascript:disconnect()"
value="Disconnect"></input>
+ </p>
+
+ <div>
+ <div id="channelDisplay"
style="position:absolute;left:10px;width:580px;height:400px;border:1px solid
#000000;overflow:auto">
+
+ </div>
+
+ <div style="position:absolute;left:600px;width:190px">
+ <div
style="color:#ffffff;background-color:#880022;text-align:center">Users</div>
+ <select id="userList" size="10"
style="width:190px;border:1px solid #000000">
+ <!--
+ -->
+ </select>
+ </div>
+
+ <div style="position:relative;top:410px;left:2px">
+ > <input id="messageText" style="border:1px solid
black;width:560px" onkeypress="checkEnterPressed(event)"></input>
+ </div>
+ </div>
+
+</body>
+</html>
+
Added:
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/index.html
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/index.html
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/chatroom/chatroom-web/src/main/webapp/index.html 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,5 @@
+<html>
+<head>
+ <meta http-equiv="Refresh" content="0; URL=chatroom.seam">
+</head>
+</html>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/remoting/chatroom/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/chatroom/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/chatroom/pom.xml 2012-04-02 06:53:18
UTC (rev 14455)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+ <parent>
+ <artifactId>examples-ee6</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <artifactId>chatroom</artifactId>
+ <packaging>pom</packaging>
+ <name>Chatroom Example (EE6)</name>
+
+ <modules>
+ <module>chatroom-ejb</module>
+ <module>chatroom-web</module>
+ <module>chatroom-ear</module>
+ <module>chatroom-tests</module>
+ </modules>
+
+ <properties>
+ <example.name>chatroom</example.name>
+
<jms.provider.file>jboss-seam-chatroom-hornetq-jms.xml</jms.provider.file>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-ejb</artifactId>
+ <version>${project.version}</version>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-web</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.chatroom</groupId>
+ <artifactId>chatroom-ear</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
Added: branches/community/Seam_2_3/examples-ee6/remoting/chatroom/readme.txt
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/chatroom/readme.txt
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/chatroom/readme.txt 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,33 @@
+Seam Chatroom Example
+=====================
+
+This example shows using Seam Remoting to subscribe and publish messages to JMS.
+It runs on JBoss AS as an EAR.
+
+NOTE:
+JBoss AS 6 has got new default JMS provider Hornetq, which requires different JMS
+configuration. JBoss AS 5 can have also Hornetq instead of default JBoss Messaging.
+
+To deploy the example to JBossAS, follow these steps:
+
+* In the example root directory run:
+
+ mvn clean package
+
+* Set JBOSS_HOME environment property.
+
+* In the chatroom-ear directory run:
+
+ mvn jboss:hard-deploy (when intending to use JBoss Messaging)
+
+ mvn jboss:hard-deploy -Phornetq (when intending to use HornetQ)
+
+* Open this URL in a web browser:
http://localhost:8080/seam-chatroom
+
+To run functional tests for the example on JBoss AS 5 or 6, run:
+
+ mvn verify -Pftest-jbossas (add a hornetq profile when intending to use
HornetQ)
+
+To run functional tests for the example on JBoss AS 4, run:
+
+ mvn verify -Pftest-jbossas -Djbossas.version=4
Added: branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>gwt</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ear</artifactId>
+ <packaging>ear</packaging>
+ <name>Gwt EAR Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-web</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ejb</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-remoting</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>seam-gwt</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <configuration>
+ <version>6</version>
+ <defaultLibBundleDir>lib</defaultLibBundleDir>
+ <!-- Exclude eclipse generated application.xml and manually
modified jboss-app.xml during mvn build -->
+ <earSourceExcludes>**/application.xml,
**/jboss-app.xml</earSourceExcludes>
+ <!-- use maven generated application.xml instead -->
+ <generateApplicationXml>true</generateApplicationXml>
+ <filtering>true</filtering>
+ <modules>
+ <webModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-web</artifactId>
+ <contextRoot>/seam-gwt</contextRoot>
+ <bundleFileName>gwt-web.war</bundleFileName>
+ </webModule>
+ <ejbModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ejb</artifactId>
+ <bundleFileName>gwt-ejb.jar</bundleFileName>
+ </ejbModule>
+ </modules>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>exploded</id>
+ <properties>
+ <example.name>gwt</example.name>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ear</artifactId>
+ <type>ear</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-web</artifactId>
+ <type>war</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-web.war</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ejb</artifactId>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-ejb.jar</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/main/application/META-INF/jboss-deployment-structure.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/main/application/META-INF/jboss-deployment-structure.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ear/src/main/application/META-INF/jboss-deployment-structure.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,8 @@
+<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+ <deployment>
+ <dependencies>
+ <module name="javax.faces.api" export="true"/>
+ <module name="com.sun.jsf-impl" export="true"/>
+ </dependencies>
+ </deployment>
+</jboss-deployment-structure>
Added: branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>gwt</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ejb</artifactId>
+ <packaging>ejb</packaging>
+ <name>Gwt EJB Module</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ <version>1.2</version> <!-- version 1.2 allows us to
specify gwt version by gwt-user dependency -->
+ <configuration>
+
<generateDirectory>${project.build.outoutDirectory}/${project.build.finalName}</generateDirectory>
+ <inplace>false</inplace>
+ <logLevel>TRACE</logLevel>
+ <extraJvmArgs>-Xmx512m -DDEBUG</extraJvmArgs>
+ <soyc>false</soyc>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>resources</goal>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-remoting</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/HelloWorld.gwt.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/HelloWorld.gwt.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/HelloWorld.gwt.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,9 @@
+<module>
+
+ <!-- Inherit the core Web Toolkit stuff. -->
+ <inherits name='com.google.gwt.user.User'/>
+
+ <!-- Specify the app entry point class. -->
+ <entry-point
class='org.jboss.seam.example.remoting.gwt.client.HelloWorld'/>
+
+</module>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/AskQuestionWidget.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/AskQuestionWidget.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/AskQuestionWidget.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,79 @@
+package org.jboss.seam.example.remoting.gwt.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.rpc.ServiceDefTarget;
+import com.google.gwt.user.client.ui.AbsolutePanel;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This shows how to do a a "composite" widget in GWT, as well as how to call
back to the server.
+ * @author Michael Neale
+ */
+public class AskQuestionWidget extends Composite
+{
+ private AbsolutePanel panel = new AbsolutePanel();
+
+ public AskQuestionWidget()
+ {
+ Label lbl = new Label("OK, what do you want to know?");
+ panel.add(lbl);
+ final TextBox box = new TextBox();
+ box.setText("What is the meaning of life?");
+ panel.add(box);
+ Button ok = new Button("Ask");
+ ok.addClickListener(new ClickListener()
+ {
+ public void onClick(Widget w)
+ {
+ ValidationUtility valid = new ValidationUtility();
+ if (!valid.isValid(box.getText()))
+ {
+ Window.alert("A question has to end with a '?'");
+ }
+ else
+ {
+ askServer(box.getText());
+ }
+ }
+ });
+ panel.add(ok);
+
+ initWidget(panel);
+ }
+
+ /** Now lets actually go to the server, using a callback - its called Ajax for a
reason ! */
+ private void askServer(String text)
+ {
+ getService().askIt(text, new AsyncCallback()
+ {
+ public void onFailure(Throwable t)
+ {
+ Window.alert(t.getMessage());
+ }
+
+ public void onSuccess(Object data)
+ {
+ Window.alert((String) data);
+ }
+ });
+ }
+
+ /**
+ * This gets the async service client stub.
+ */
+ private MyServiceAsync getService()
+ {
+ String endpointURL = GWT.getModuleBaseURL() + "seam/resource/gwt";
+
+ MyServiceAsync svc = (MyServiceAsync) GWT.create(MyService.class);
+ ((ServiceDefTarget) svc).setServiceEntryPoint(endpointURL);
+ return svc;
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/HelloWorld.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/HelloWorld.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/HelloWorld.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,27 @@
+package org.jboss.seam.example.remoting.gwt.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.user.client.ui.RootPanel;
+
+/**
+ * This is the "main" entry point, as per GWT.
+ * Generally this is a lean class, you tend to use seperate widget classes after this
point.
+ * This is pretty much boiler plate, you can mostly ignore this.
+ *
+ * Entry point classes define <code>onModuleLoad()</code>.
+ */
+public class HelloWorld implements EntryPoint {
+
+ /**
+ * This is the entry point method.
+ */
+ public void onModuleLoad() {
+ // Assume that the host HTML has elements defined whose
+ // IDs are "slot1", "slot2". In a real app, you probably would
not want
+ // to hard-code IDs. Instead, you could, for example, search for all
+ // elements with a particular CSS class and replace them with widgets.
+ //
+ RootPanel.get("slot1").add(new AskQuestionWidget());
+
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyService.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyService.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyService.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,15 @@
+package org.jboss.seam.example.remoting.gwt.client;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+
+/**
+ * This is a GWT service, which will be implemented as a Seam component on the server
+ * (see the server package). GWT uses strongly typed RPC interfaces.
+ *
+ * @author Michael Neale
+ */
+public interface MyService extends RemoteService
+{
+ public String askIt(String question);
+
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyServiceAsync.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyServiceAsync.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/MyServiceAsync.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,16 @@
+package org.jboss.seam.example.remoting.gwt.client;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.rpc.RemoteService;
+
+/**
+ * This is the interface the client code uses. You NEVER implement this directly,
+ * GWT does this for you, and calls are marshalled through to the Sync equivalent method
in MyService
+ * on the server (which is a Seam component).
+ *
+ * @author Michael Neale
+ */
+public interface MyServiceAsync extends RemoteService
+{
+ public void askIt(String question, AsyncCallback callback);
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/ValidationUtility.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/ValidationUtility.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/ValidationUtility.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,22 @@
+package org.jboss.seam.example.remoting.gwt.client;
+
+/**
+ * This simple validation utility shows how you can have the same code on the
"client"
+ * as on the server (ie the server can re-use some code from the client - one of the GWT
advantages).
+ *
+ * @author michael
+ */
+public class ValidationUtility
+{
+
+ public boolean isValid(String question) {
+ if ("".equals(question)) {
+ return false;
+ } else if (!question.trim().endsWith("?")) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/package.html
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/package.html
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/client/package.html 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,6 @@
+<body>
+This package is the client side GWT code - which can be run as java in debug mode,
+or compiled to javascript via GWT.
+Code in this package and sub packages can be used on the server, but not vice versa.
+To communicate with the server, the GWT RPC mechanism with Seam remoting is used.
+</body>
\ No newline at end of file
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/public/HelloWorld.html
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/public/HelloWorld.html
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/public/HelloWorld.html 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,49 @@
+<html>
+ <head>
+
+ <!-- -->
+ <!-- Any title is fine -->
+ <!-- -->
+ <title>Wrapper HTML for HelloWorld</title>
+
+ <!-- -->
+ <!-- Use normal html, such as style -->
+ <!-- -->
+ <style>
+ body,td,a,div,.p{font-family:arial,sans-serif}
+ div,td{color:#000000}
+ a:link,.w,.w a:link{color:#0000cc}
+ a:visited{color:#551a8b}
+ a:active{color:#ff0000}
+ </style>
+
+ </head>
+
+ <!-- -->
+ <!-- The body can have arbitrary html, or -->
+ <!-- you can leave the body empty if you want -->
+ <!-- to create a completely dynamic ui -->
+ <!-- -->
+ <body>
+
+ <script language="javascript"
src="org.jboss.seam.example.remoting.gwt.HelloWorld.nocache.js"></script>
+
+ <!-- OPTIONAL: include this if you want history support -->
+ <iframe id="__gwt_historyFrame"
style="width:0;height:0;border:0"></iframe>
+
+ <h1>HelloWorld</h1>
+
+ <p>
+ This is an example of a host page for the HelloWorld application.
+ You can attach a Web Toolkit module to any HTML page you like,
+ making it easy to add bits of AJAX functionality to existing pages
+ without starting from scratch.
+ </p>
+
+ <table align=center>
+ <tr>
+ <td id="slot1"></td><td id="slot2"></td>
+ </tr>
+ </table>
+ </body>
+</html>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/server/ServiceImpl.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/server/ServiceImpl.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/java/org/jboss/seam/example/remoting/gwt/server/ServiceImpl.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,37 @@
+package org.jboss.seam.example.remoting.gwt.server;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.remoting.WebRemote;
+import org.jboss.seam.example.remoting.gwt.client.MyService;
+import org.jboss.seam.example.remoting.gwt.client.ValidationUtility;
+
+/**
+ * This is the seam component that implements the service the GUI uses.
+ * Note that @WebRemote is needed, as is @Name to match the service full class name
+ * (defaults are not a great idea, as this is open to the wide world !)
+ *
+ * @author Michael Neale
+ */
+(a)Name("org.jboss.seam.example.remoting.gwt.client.MyService")
+public class ServiceImpl implements MyService
+{
+
+ @WebRemote
+ public String askIt(String question)
+ {
+ if (!validate(question)) {
+ throw new IllegalStateException("Hey, this shouldn't happen, I checked
on the client, " +
+ "but its always good to double check.");
+ }
+ return "42. Its the real question that you seek now.";
+ }
+
+ /**
+ * Woh, we can re-use code from the client !
+ */
+ public boolean validate(String q) {
+ ValidationUtility util = new ValidationUtility();
+ return util.isValid(q);
+ }
+
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/META-INF/ejb-jar.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/META-INF/ejb-jar.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/META-INF/ejb-jar.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+ version="3.0">
+
+ <interceptors>
+ <interceptor>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor>
+ </interceptors>
+
+ <assembly-descriptor>
+ <interceptor-binding>
+ <ejb-name>*</ejb-name>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor-binding>
+ </assembly-descriptor>
+
+</ejb-jar>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-ejb/src/main/resources/seam.properties
===================================================================
Added: branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>gwt</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-tests</artifactId>
+ <name>Gwt Integration Tests Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.server</groupId>
+ <artifactId>selenium-server</artifactId>
+ <classifier>standalone</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>functional-tests</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>ftest-jbossas</id>
+ <properties>
+ <example.context.path>/seam-gwt</example.context.path>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>failsafe-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/gwt/test/selenium/GwtTest.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/gwt/test/selenium/GwtTest.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/java/org/jboss/seam/example/remoting/gwt/test/selenium/GwtTest.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+package org.jboss.seam.example.remoting.gwt.test.selenium;
+
+import org.jboss.seam.example.common.test.selenium.SeamSeleniumTest;
+
+
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import com.thoughtworks.selenium.Wait;
+
+import static org.testng.AssertJUnit.*;
+
+/**
+ * This class tests a functionality of remoting/gwt example.
+ *
+ * @author Martin Gencur
+ *
+ */
+public class GwtTest extends SeamSeleniumTest
+{
+ protected static final String GWT_URL = "/HelloWorld.html";
+ protected static final String GWT_TITLE = "Wrapper HTML for HelloWorld";
+ protected static final String ASK_BUTTON =
"dom=document.getElementsByTagName('button')[0]";
+ protected static final String TEXT_FIELD =
"dom=document.getElementsByTagName('input')[0]";
+ protected static final Long TIMEOUT = 2000L; //2 seconds
+
+ protected static final String ENTER_TEXT_WITHOUT = "Text without question mark at
the end";
+ protected static final String ENTER_TEXT_WITH = "Text WITH question mark at the
end?";
+
+ protected static final String MESSAGE_WITHOUT = "A question has to end with a
\'?\'";
+ protected static final String MESSAGE_WITH = "Its the real question that you seek
now";
+
+ @Override
+ @BeforeMethod
+ public void setUp()
+ {
+ super.setUp();
+ browser.open(CONTEXT_PATH + GWT_URL);
+ }
+
+ @Test
+ public void simplePageContentTest()
+ {
+ assertTrue("Home page of Remoting/Gwt Example expected",
browser.getLocation().contains(GWT_URL));
+ assertTrue("Different page title expected ale je:"+
browser.getTitle(),browser.getTitle().contains(GWT_TITLE));
+ assertTrue("Home page should contain Text field",
browser.isElementPresent(TEXT_FIELD));
+ assertTrue("Home page should contain Ask button",
browser.isElementPresent(ASK_BUTTON));
+ }
+
+ @Test(dependsOnMethods = {"simplePageContentTest"})
+ public void withoutQuestionMarkTest(){
+ String result = "";
+ browser.type(TEXT_FIELD, ENTER_TEXT_WITHOUT);
+ browser.click(ASK_BUTTON);
+ waitForAlertPresent(TIMEOUT);
+ result = browser.getAlert();
+ assertTrue("An alert message should show up and should contain message
\"" + MESSAGE_WITHOUT + "\"", result.contains(MESSAGE_WITHOUT));
+ }
+
+ @Test(dependsOnMethods = {"simplePageContentTest"})
+ public void withQuestionMarkTest(){
+ String result = "";
+ browser.type(TEXT_FIELD, ENTER_TEXT_WITH);
+ browser.click(ASK_BUTTON);
+ waitForAlertPresent(TIMEOUT);
+ result = browser.getAlert();
+ assertTrue("An alert message should show up and should contain message
\"" + MESSAGE_WITH + "\"", result.contains(MESSAGE_WITH));
+ }
+
+ public void waitForAlertPresent(Long timeout){
+ new Wait()
+ {
+ @Override
+ public boolean until()
+ {
+ return browser.isAlertPresent();
+ }
+ }.wait("Timeout while waiting for alert window.", timeout);
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources/seam.properties
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources/seam.properties
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources/seam.properties 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,3 @@
+#debug is explicitly disabled in test to avoid JBIDE-3623
+#Thu Dec 31 16:24:37 CET 2009
+org.jboss.seam.core.init.debug=false
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources-ftest/testng.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources-ftest/testng.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources-ftest/testng.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,25 @@
+<!--
+ JBoss, Home of Professional Open Source Copyright 2008, Red Hat
+ Middleware LLC, and individual contributors by the @authors tag. See
+ the copyright.txt in the distribution for a full listing of individual
+ contributors. This is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version. This software is
+ distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details. You should have received a copy of the GNU
+ Lesser General Public License along with this software; if not, write
+ to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+-->
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+<suite name="Gwt example" verbose="2"
parallel="false">
+ <test name="remoting_gwt_tests">
+ <parameter name="PROPERTY_FILE" value="" />
+ <classes>
+ <class
name="org.jboss.seam.example.remoting.gwt.test.selenium.GwtTest" />
+ </classes>
+ </test>
+</suite>
Property changes on:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-tests/src/test/resources-ftest/testng.xml
___________________________________________________________________
Added: svn:executable
+ *
Added: branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>gwt</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-web</artifactId>
+ <packaging>war</packaging>
+ <name>Gwt Web Module (EE6)</name>
+
+ <properties>
+ <!-- filtering property for components.xml -->
+ <jndiPattern>java:app/gwt-ejb/#{ejbName}</jndiPattern>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>src/main/webapp</directory>
+ <filtering>true</filtering>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
+ <resources>
+ <resource>
+
<directory>${basedir}/../gwt-ejb/target/gwt-ejb/org.jboss.seam.example.remoting.gwt.HelloWorld</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/components.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/components.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/components.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components
xmlns="http://jboss.com/products/seam/components"
+
xmlns:core="http://jboss.com/products/seam/core"
+
xmlns:remoting="http://jboss.com/products/seam/remoting"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation=
+ "http://jboss.com/products/seam/core
http://jboss.com/products/seam/core-2.3.xsd
+
http://jboss.com/products/seam/components
http://jboss.com/products/seam/components-2.3.xsd
+
http://jboss.com/products/seam/remoting
http://jboss.com/products/seam/remoting-2.3.xsd">
+
+ <core:init jndi-pattern="@jndiPattern@" debug="true"/>
+
+</components>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="3.0"
+
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
+
+ <!-- Seam -->
+
+ <listener>
+ <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+ </listener>
+
+ <filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <servlet>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+
<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+ <url-pattern>/seam/resource/*</url-pattern>
+ </servlet-mapping>
+
+</web-app>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/history.html
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/history.html
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/history.html 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,21 @@
+<html>
+<head>
+<script>
+function hst() {
+ var search = location.search;
+ var historyToken = '';
+ if (search.length > 0)
+ historyToken = search.substring(1);
+
+ document.getElementById('__gwt_historyToken').value = historyToken;
+ if (parent.__gwt_onHistoryLoad) {
+ parent.__gwt_onHistoryLoad(historyToken);
+ }
+}
+</script></head>
+<body onload='hst()'>
+
+<input type='text' id='__gwt_historyToken' tabIndex='-1'>
+
+</body>
+</html>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/index.html
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/index.html
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/gwt/gwt-web/src/main/webapp/index.html 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,5 @@
+<html>
+<head>
+ <meta http-equiv="Refresh" content="0; URL=HelloWorld.html">
+</head>
+</html>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/remoting/gwt/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/gwt/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/gwt/pom.xml 2012-04-02 06:53:18 UTC
(rev 14455)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+ <parent>
+ <artifactId>examples-ee6</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <artifactId>gwt</artifactId>
+ <packaging>pom</packaging>
+ <name>Gwt Example (EE6)</name>
+
+ <modules>
+ <module>gwt-ejb</module>
+ <module>gwt-web</module>
+ <module>gwt-ear</module>
+ <module>gwt-tests</module>
+ </modules>
+
+ <properties>
+ <example.name>gwt</example.name>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ejb</artifactId>
+ <version>${project.version}</version>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-web</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam.examples-ee6.remoting.gwt</groupId>
+ <artifactId>gwt-ear</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
Added: branches/community/Seam_2_3/examples-ee6/remoting/gwt/readme.txt
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/gwt/readme.txt
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/gwt/readme.txt 2012-04-02 06:53:18
UTC (rev 14455)
@@ -0,0 +1,30 @@
+Seam Remoting/Gwt Example
+=========================
+
+This example shows GWT with Seam remoting.
+It runs on JBoss AS as an EAR.
+
+To deploy the example to JBossAS, follow these steps:
+
+* In the example root directory run:
+
+ mvn clean package
+
+* Set JBOSS_HOME environment property.
+
+* In the gwt-ear directory run:
+
+ mvn jboss:hard-deploy
+
+* Open this URL in a web browser:
http://localhost:8080/seam-gwt
+
+The Gwt front-end is being generated each time upon issuing "mvn package".
+The artifacts are generated in gwt-ejb submodule and later coppied to
+gwt-web submodule's output directory.
+
+This feature was added in Seam 2.3 version. Before that, the Gwt artifacts
+were pre-build in a source directory.
+
+If you want to use the GWT hosted mode, well, read all about it from the
+GWT docs ! A gwt-maven-plugin generating Gwt front-end has this capability,
+though.
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>helloworld</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ear</artifactId>
+ <packaging>ear</packaging>
+ <name>Helloworld EAR Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-web</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ejb</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>seam-helloworld</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <configuration>
+ <version>6</version>
+ <defaultLibBundleDir>lib</defaultLibBundleDir>
+ <!-- Exclude eclipse generated application.xml and manually
modified jboss-app.xml during mvn build -->
+ <earSourceExcludes>**/application.xml,
**/jboss-app.xml</earSourceExcludes>
+ <!-- use maven generated application.xml instead -->
+ <generateApplicationXml>true</generateApplicationXml>
+ <filtering>true</filtering>
+ <modules>
+ <webModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-web</artifactId>
+ <contextRoot>/seam-helloworld</contextRoot>
+
<bundleFileName>helloworld-web.war</bundleFileName>
+ </webModule>
+ <ejbModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ejb</artifactId>
+
<bundleFileName>helloworld-ejb.jar</bundleFileName>
+ </ejbModule>
+ </modules>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>exploded</id>
+ <properties>
+ <example.name>helloworld</example.name>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+
<artifactId>helloworld-ear</artifactId>
+ <type>ear</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+
<artifactId>helloworld-web</artifactId>
+ <type>war</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-web.war</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+
<artifactId>helloworld-ejb</artifactId>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-ejb.jar</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/main/application/META-INF/jboss-deployment-structure.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/main/application/META-INF/jboss-deployment-structure.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ear/src/main/application/META-INF/jboss-deployment-structure.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,8 @@
+<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+ <deployment>
+ <dependencies>
+ <module name="javax.faces.api" export="true"/>
+ <module name="com.sun.jsf-impl" export="true"/>
+ </dependencies>
+ </deployment>
+</jboss-deployment-structure>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>helloworld</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ejb</artifactId>
+ <packaging>ejb</packaging>
+ <name>Helloworld EJB Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-remoting</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/seam/example/remoting/HelloAction.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/seam/example/remoting/HelloAction.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/java/org/jboss/seam/example/remoting/HelloAction.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,12 @@
+package org.jboss.seam.example.remoting;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.remoting.WebRemote;
+
+@Name("helloAction")
+public class HelloAction {
+ @WebRemote
+ public String sayHello(String name) {
+ return "Hello, " + name;
+ }
+}
\ No newline at end of file
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/META-INF/ejb-jar.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/META-INF/ejb-jar.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/META-INF/ejb-jar.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+ version="3.0">
+
+ <interceptors>
+ <interceptor>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor>
+ </interceptors>
+
+ <assembly-descriptor>
+ <interceptor-binding>
+ <ejb-name>*</ejb-name>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor-binding>
+ </assembly-descriptor>
+
+</ejb-jar>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-ejb/src/main/resources/seam.properties
===================================================================
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>helloworld</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-tests</artifactId>
+ <name>Helloworld Integration Tests Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.server</groupId>
+ <artifactId>selenium-server</artifactId>
+ <classifier>standalone</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>functional-tests</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>ftest-jbossas</id>
+ <properties>
+
<example.context.path>/seam-helloworld</example.context.path>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>failsafe-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>ftest-tomcat</id>
+ <properties>
+
<example.context.path>/jboss-seam-helloworld</example.context.path>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>failsafe-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/helloworld/test/selenium/HelloworldTest.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/helloworld/test/selenium/HelloworldTest.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/java/org/jboss/seam/example/remoting/helloworld/test/selenium/HelloworldTest.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+package org.jboss.seam.example.remoting.helloworld.test.selenium;
+
+import org.jboss.seam.example.common.test.selenium.SeamSeleniumTest;
+
+
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import com.thoughtworks.selenium.Wait;
+
+import static org.testng.AssertJUnit.*;
+
+/**
+ * This class tests a functionality of remoting/helloworld example.
+ *
+ * @author Martin Gencur
+ *
+ */
+public class HelloworldTest extends SeamSeleniumTest
+{
+ protected static final String HELLOWORLD_URL = "/helloworld.seam";
+ protected static final String HELLOWORLD_TITLE = "Seam Remoting - Hello World
Example";
+ protected static final String SAYHELLO_BUTTON =
"xpath=//button[contains(@onclick,\"sayHello\")]";
+ protected static final String PROMPT_ANSWER = "Martin";
+ protected static final String ALERT_MESSAGE = "Hello, Martin";
+ protected static final Long TIMEOUT = 10000L; //10 seconds
+
+ @Override
+ @BeforeMethod
+ public void setUp()
+ {
+ super.setUp();
+ browser.open(CONTEXT_PATH + HELLOWORLD_URL);
+ }
+
+ @Test
+ public void simplePageContentTest()
+ {
+ assertTrue("Home page of Remoting/Helloworld Example expected",
browser.getLocation().contains(HELLOWORLD_URL));
+ assertTrue("Different page title
expected",browser.getTitle().contains(HELLOWORLD_TITLE));
+ assertTrue("Home page should contain Say Hello button",
browser.isElementPresent(SAYHELLO_BUTTON));
+ }
+
+ @Test(dependsOnMethods = {"simplePageContentTest"})
+ public void sayHelloButtonTest(){
+ String result = "";
+ browser.answerOnNextPrompt(PROMPT_ANSWER);
+ browser.click(SAYHELLO_BUTTON);
+ waitForAlertPresent(TIMEOUT);
+ result = browser.getAlert();
+ assertTrue("An alert message should show up and should contain
\"Hello,\" and name.", result.contains(ALERT_MESSAGE));
+ }
+
+ public void waitForAlertPresent(Long timeout){
+ new Wait()
+ {
+ @Override
+ public boolean until()
+ {
+ return browser.isAlertPresent();
+ }
+ }.wait("Timeout while waiting for alert window.", timeout);
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources/seam.properties
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources/seam.properties
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources/seam.properties 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,3 @@
+#debug is explicitly disabled in test to avoid JBIDE-3623
+#Thu Dec 31 16:24:37 CET 2009
+org.jboss.seam.core.init.debug=false
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources-ftest/testng.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources-ftest/testng.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources-ftest/testng.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,25 @@
+<!--
+ JBoss, Home of Professional Open Source Copyright 2008, Red Hat
+ Middleware LLC, and individual contributors by the @authors tag. See
+ the copyright.txt in the distribution for a full listing of individual
+ contributors. This is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version. This software is
+ distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details. You should have received a copy of the GNU
+ Lesser General Public License along with this software; if not, write
+ to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+-->
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+<suite name="Helloworld example" verbose="2"
parallel="false">
+ <test name="remoting_helloworld_tests">
+ <parameter name="PROPERTY_FILE" value="" />
+ <classes>
+ <class
name="org.jboss.seam.example.remoting.helloworld.test.selenium.HelloworldTest"
/>
+ </classes>
+ </test>
+</suite>
Property changes on:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-tests/src/test/resources-ftest/testng.xml
___________________________________________________________________
Added: svn:executable
+ *
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>helloworld</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-web</artifactId>
+ <packaging>war</packaging>
+ <name>Helloworld Web Module</name>
+
+ <properties>
+ <!-- filtering property for components.xml -->
+ <jndiPattern>java:app/helloworld-ejb/#{ejbName}</jndiPattern>
+ </properties>
+
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ejb</artifactId>
+ <type>ejb</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-ui</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-jul</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>src/main/webapp</directory>
+ <filtering>true</filtering>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>tomcat</id>
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ejb</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <finalName>jboss-seam-helloworld</finalName>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/components.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/components.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/components.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,15 @@
+<components
xmlns="http://jboss.com/products/seam/components">
+
+ <component name="org.jboss.seam.core.init">
+ <property name="jndiPattern">@jndiPattern@</property>
+ </component>
+
+ <component name="org.jboss.seam.core.manager">
+ <property name="conversationTimeout">120000</property>
+ </component>
+
+ <component name="org.jboss.seam.remoting.remoting">
+ <property name="debug">true</property>
+ </component>
+
+</components>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/faces-config.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/faces-config.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="2.1"
+
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
+
+</faces-config>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/web.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/web.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/WEB-INF/web.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="3.0"
+
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
+
+ <listener>
+ <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+ </listener>
+
+ <filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <servlet>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+
<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+ <url-pattern>/seam/resource/*</url-pattern>
+ </servlet-mapping>
+
+ <context-param>
+ <param-name>facelets.DEVELOPMENT</param-name>
+ <param-value>true</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.seam</url-pattern>
+ </servlet-mapping>
+
+</web-app>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/helloworld.xhtml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/helloworld.xhtml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/helloworld.xhtml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:s="http://jboss.com/products/seam/taglib">
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
+ <title>Seam Remoting - Hello World Example</title>
+</head>
+
+<body>
+
+ <h1>Seam Remoting - Hello World Example</h1>
+
+ <p>
+
+ </p>
+
+ <s:remote include="helloAction"/>
+
+ <script type="text/javascript">
+ function sayHello() {
+ var name = prompt("What is your name?");
+ if (name == null) return;
+ var callback = function(result) { alert(result); };
+ Seam.Component.getInstance("helloAction").sayHello(name, callback);
+ }
+ </script>
+
+ <button onclick="javascript:sayHello()">Say Hello</button>
+
+</body>
+</html>
+
Added:
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/index.html
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/index.html
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/helloworld/helloworld-web/src/main/webapp/index.html 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,5 @@
+<html>
+<head>
+ <meta http-equiv="Refresh" content="0; URL=helloworld.seam">
+</head>
+</html>
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/remoting/helloworld/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/helloworld/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/helloworld/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+ <parent>
+ <artifactId>examples-ee6</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <artifactId>helloworld</artifactId>
+ <packaging>pom</packaging>
+ <name>Helloworld Example (EE6)</name>
+
+ <modules>
+ <module>helloworld-ejb</module>
+ <module>helloworld-web</module>
+ <module>helloworld-ear</module>
+ <module>helloworld-tests</module>
+ </modules>
+
+ <properties>
+ <example.name>helloworld</example.name>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ejb</artifactId>
+ <version>${project.version}</version>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-web</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.helloworld</groupId>
+ <artifactId>helloworld-ear</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
Added: branches/community/Seam_2_3/examples-ee6/remoting/helloworld/readme.txt
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/helloworld/readme.txt
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/helloworld/readme.txt 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,29 @@
+Seam Remoting/Helloworld Example
+================================
+
+This example is a trivial example of Seam Remoting. It runs on JBoss AS as an
+EAR and on Tomcat with JBoss Embedded as a WAR.
+
+To deploy the example to JBossAS, follow these steps:
+
+* In the example root directory run:
+
+ mvn clean package
+
+* Set JBOSS_HOME environment property.
+
+* In the helloworld-ear directory run:
+
+ mvn jboss:hard-deploy
+
+* Open this URL in a web browser:
http://localhost:8080/seam-helloworld
+
+To deploy the example to Tomcat with Embedded JBoss, follow these steps:
+
+* In the example root directory run:
+
+ mvn clean package -Ptomcat
+
+* Deploy the resulting war from helloworld-web/target directory to Tomcat manually
+
+* Open this URL in a web browser:
http://localhost:8080/jboss-seam-helloworld
Added: branches/community/Seam_2_3/examples-ee6/remoting/progressbar/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/progressbar/pom.xml
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/progressbar/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+ <parent>
+ <artifactId>examples-ee6</artifactId>
+ <groupId>org.jboss.seam</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <artifactId>progressbar</artifactId>
+ <packaging>pom</packaging>
+ <name>Progressbar Example (EE6)</name>
+
+ <modules>
+ <module>progressbar-ejb</module>
+ <module>progressbar-web</module>
+ <module>progressbar-ear</module>
+ </modules>
+
+ <properties>
+ <example.name>progressbar</example.name>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ejb</artifactId>
+ <version>${project.version}</version>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-web</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ear</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>progressbar</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ear</artifactId>
+ <packaging>ear</packaging>
+ <name>Progressbar EAR Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-web</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ejb</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>seam-progressbar</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <configuration>
+ <version>6</version>
+ <defaultLibBundleDir>lib</defaultLibBundleDir>
+ <!-- Exclude eclipse generated application.xml and manually
modified jboss-app.xml during mvn build -->
+ <earSourceExcludes>**/application.xml,
**/jboss-app.xml</earSourceExcludes>
+ <!-- use maven generated application.xml instead -->
+ <generateApplicationXml>true</generateApplicationXml>
+ <filtering>true</filtering>
+ <modules>
+ <webModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-web</artifactId>
+ <contextRoot>/seam-progressbar</contextRoot>
+
<bundleFileName>progressbar-web.war</bundleFileName>
+ </webModule>
+ <ejbModule>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ejb</artifactId>
+
<bundleFileName>progressbar-ejb.jar</bundleFileName>
+ </ejbModule>
+ </modules>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>exploded</id>
+ <properties>
+ <example.name>progressbar</example.name>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+
<artifactId>progressbar-ear</artifactId>
+ <type>ear</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+
<artifactId>progressbar-web</artifactId>
+ <type>war</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-web.war</outputDirectory>
+ </artifactItem>
+ <artifactItem>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+
<artifactId>progressbar-ejb</artifactId>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+
<outputDirectory>${project.build.directory}/${project.build.finalName}-exploded/${project.build.finalName}.ear/${example.name}-ejb.jar</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/main/application/META-INF/jboss-deployment-structure.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/main/application/META-INF/jboss-deployment-structure.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ear/src/main/application/META-INF/jboss-deployment-structure.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,11 @@
+<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
+ <deployment>
+ <dependencies>
+ <module name="org.apache.log4j" export="true"/>
+ <module name="org.apache.commons.logging"
export="true"/>
+ <module name="org.apache.commons.collections"
export="true"/>
+ <module name="javax.faces.api" export="true"/>
+ <module name="com.sun.jsf-impl" export="true"/>
+ </dependencies>
+ </deployment>
+</jboss-deployment-structure>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>progressbar</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ejb</artifactId>
+ <packaging>ejb</packaging>
+ <name>Progressbar EJB Module (EE6)</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-remoting</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/Progress.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/Progress.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/Progress.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,39 @@
+package org.jboss.seam.example.remoting;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+/**
+ * Contains progress information.
+ *
+ * @author Shane Bryzak
+ * @version 1.0
+ */
+@Name("progress")
+(a)Scope(ScopeType.SESSION)
+public class Progress {
+
+ private int percentComplete;
+ private String status;
+
+ public int getPercentComplete()
+ {
+ return percentComplete;
+ }
+
+ public void setPercentComplete(int percentComplete)
+ {
+ this.percentComplete = percentComplete;
+ }
+
+ public String getStatus()
+ {
+ return status;
+ }
+
+ public void setStatus(String status)
+ {
+ this.status = status;
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarAction.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarAction.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarAction.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,37 @@
+package org.jboss.seam.example.remoting;
+
+import java.util.Random;
+
+import javax.ejb.Stateless;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+
+@Stateless
+@Name("progressBarAction")
+public class ProgressBarAction implements ProgressBarLocal {
+
+ @In(create = true)
+ Progress progress;
+
+ public String doSomething() {
+ Random r = new Random(System.currentTimeMillis());
+ try {
+ for (int i = 1; i <= 100;)
+ {
+ Thread.sleep(r.nextInt(200));
+ progress.setPercentComplete(i);
+ i++;
+ }
+ }
+ catch (InterruptedException ex) {
+ }
+
+ return "/complete.xhtml";
+ }
+
+ public Progress getProgress()
+ {
+ return progress;
+ }
+}
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarLocal.java
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarLocal.java
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/java/org/jboss/seam/example/remoting/ProgressBarLocal.java 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,12 @@
+package org.jboss.seam.example.remoting;
+
+import javax.ejb.Local;
+
+import org.jboss.seam.annotations.remoting.WebRemote;
+
+@Local
+public interface ProgressBarLocal {
+ String doSomething();
+ @WebRemote Progress getProgress();
+}
+
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/META-INF/ejb-jar.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/META-INF/ejb-jar.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/META-INF/ejb-jar.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+ version="3.0">
+
+ <interceptors>
+ <interceptor>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor>
+ </interceptors>
+
+ <assembly-descriptor>
+ <interceptor-binding>
+ <ejb-name>*</ejb-name>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor-binding>
+ </assembly-descriptor>
+
+</ejb-jar>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-ejb/src/main/resources/seam.properties
===================================================================
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/pom.xml
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/pom.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/pom.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+ <artifactId>progressbar</artifactId>
+ <groupId>org.jboss.seam.examples-ee6.remoting</groupId>
+ <version>2.3.0.Beta2-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-web</artifactId>
+ <packaging>war</packaging>
+ <name>Progressbar Web Module (EE6)</name>
+
+ <properties>
+ <!-- filtering property for components.xml -->
+ <jndiPattern>java:app/progressbar-ejb/#{ejbName}</jndiPattern>
+ </properties>
+
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ejb</artifactId>
+ <type>ejb</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>src/main/webapp</directory>
+ <filtering>true</filtering>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>tomcat</id>
+ <properties>
+ <jndiPattern>#{ejbName}/local</jndiPattern>
+ </properties>
+ <dependencies>
+ <dependency>
+
<groupId>org.jboss.seam.examples-ee6.remoting.progressbar</groupId>
+ <artifactId>progressbar-ejb</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <type>ejb</type>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3_min</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <finalName>jboss-seam-progressbar</finalName>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/components.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/components.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/components.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,11 @@
+<components
xmlns="http://jboss.com/products/seam/components">
+
+ <component name="org.jboss.seam.core.init">
+ <property name="jndiPattern">@jndiPattern@</property>
+ </component>
+
+ <component name="org.jboss.seam.core.manager">
+ <property name="conversationTimeout">120000</property>
+ </component>
+
+</components>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/faces-config.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/faces-config.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="2.1"
+
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
+
+</faces-config>
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/web.xml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/web.xml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/WEB-INF/web.xml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="3.0"
+
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
+
+
+ <listener>
+ <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+ </listener>
+
+ <filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <servlet>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+
<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Seam Resource Servlet</servlet-name>
+ <url-pattern>/seam/resource/*</url-pattern>
+ </servlet-mapping>
+
+ <context-param>
+ <param-name>facelets.DEVELOPMENT</param-name>
+ <param-value>true</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+
+ <!-- Faces Servlet Mapping -->
+
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.seam</url-pattern>
+ </servlet-mapping>
+
+</web-app>
+
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/complete.xhtml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/complete.xhtml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/complete.xhtml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html">
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
+ <title>Seam Remoting Framework</title>
+</head>
+
+<body>
+
+ <h1>Action complete</h1>
+
+</body>
+</html>
+
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/index.html
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/index.html
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/index.html 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,5 @@
+<html>
+<head>
+ <meta http-equiv="Refresh" content="0;
URL=progressbar.seam">
+</head>
+</html>
\ No newline at end of file
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/progressbar.xhtml
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/progressbar.xhtml
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/progressbar.xhtml 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html">
+
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
+ <title>Seam Remoting Progress Bar Example</title>
+
+ <style>
+
+ div.slider-box
+ {
+ position: relative;
+ width: 200px;
+ height: 20px;
+ border: 1px solid #cccccc;
+ background-color: white;
+ color: white;
+ margin-bottom: 4px;
+ }
+
+ div.slider-progress
+ {
+ color: black;
+ font-family: helvetica;
+ font-size: 9pt;
+ padding: 2px;
+ font-weight: bold;
+ }
+
+ </style>
+</head>
+
+<body>
+
+ <script type="text/javascript"
src="seam/resource/remoting/resource/remote.js"></script>
+ <script type="text/javascript"
src="seam/resource/remoting/interface.js?progressBarAction"></script>
+ <script type="text/javascript"
src="slider.js"></script>
+
+ <script type="text/javascript">
+ //<![CDATA[
+
+ // don't display the loading indicator
+ Seam.Remoting.displayLoadingMessage = function() {};
+ Seam.Remoting.hideLoadingMessage = function() {};
+
+ var progressBarAction = Seam.Component.getInstance("progressBarAction");
+
+ function queryProgress() {
+ setTimeout("getProgress()", 250);
+ }
+
+ function getProgress() {
+ progressBarAction.getProgress(progressCallback);
+ }
+
+ function progressCallback(progress) {
+ progressBar.setPosition(progress.percentComplete);
+ if (progress.percentComplete < 100)
+ queryProgress();
+ }
+
+ // ]]>
+ </script>
+
+ <h1>Seam Progress Bar Demo</h1>
+
+ <p>This small example demonstrates how to implement a progress bar for
long-running actions, using Seam Remoting.</p>
+
+ <h:form onsubmit="queryProgress();return true;">
+
+ <h:commandButton style="width:80px" value="Go!"
action="#{progressBarAction.doSomething}" styleClass="button"/>
+
+ </h:form>
+
+ <div id="progressBar"></div>
+
+ <script type="text/javascript">
+ //<![CDATA[
+
+ var progressBar = qfSliderFactory.addSlider("progressBar");
+ progressBar.setMaxValue(100);
+ progressBar.setWidth(200);
+ progressBar.setClassName("slider-box");
+ progressBar.setUsedColour("#0000cf");
+ progressBar.setShowProgress(true);
+ progressBar.setProgressClassName("slider-progress");
+ progressBar.repaint();
+
+ // ]]>
+ </script>
+
+</body>
+</html>
+
Added:
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/slider.js
===================================================================
---
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/slider.js
(rev 0)
+++
branches/community/Seam_2_3/examples-ee6/remoting/progressbar/progressbar-web/src/main/webapp/slider.js 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,635 @@
+function getObject(objectId)
+{
+ if (document.getElementById && document.getElementById(objectId))
+ return document.getElementById(objectId);
+ else if (document.all && document.all(objectId))
+ return document.all(objectId);
+ else if (document.layers && document.layers[objectId])
+ return document.layers[objectId];
+ else
+ return null;
+};
+
+function getStyleObject(objectId)
+{
+ if(document.getElementById && document.getElementById(objectId))
+ return document.getElementById(objectId).style;
+ else if (document.all && document.all(objectId))
+ return document.all(objectId).style;
+ else if (document.layers && document.layers[objectId])
+ return document.layers[objectId];
+ else
+ return null;
+};
+
+// Returns the location and dimensions of a control
+function __getControlDim(ctl)
+{
+ var width = ctl.offsetWidth;
+ var height = ctl.offsetHeight;
+ for (var lx = 0, ly = 0; ctl != null; lx += ctl.offsetLeft, ly += ctl.offsetTop, ctl =
ctl.offsetParent);
+ return {x:lx, y:ly, width:width, height:height};
+};
+
+function inverseRGB(rgbString)
+{
+ if (!rgbString || (rgbString = ""))
+ rgbString = "rgb(0,0,0)";
+
+ var elts = rgbString.slice(4, rgbString.length - 1).split(",");
+ return "rgb(" + (255 - elts[0]) + "," + (255 - elts[1]) +
"," + (255 - elts[2]) + ")";
+};
+
+function __TagAttribute(name, value)
+{
+ this.name = name;
+ this.value = value;
+};
+
+function __Tag(name)
+{
+ this.name = name;
+ this.attributes = new Array();
+ this.childTags = new Array();
+ this.text = "";
+
+ __Tag.prototype.addChildTag = function(name)
+ {
+ var childTag = new __Tag(name);
+ this.appendChild(childTag);
+ return childTag;
+ };
+
+ __Tag.prototype.appendChild = function(childTag)
+ {
+ this.childTags[this.childTags.length] = childTag;
+ };
+
+ __Tag.prototype.setAttribute = function(name, value)
+ {
+ this.attributes[this.attributes.length] = new __TagAttribute(name, value);
+ };
+
+ __Tag.prototype.setText = function(text)
+ {
+ this.text = text;
+ };
+
+ __Tag.prototype.getHTML = function()
+ {
+ var html = "<" + this.name;
+ for (var i = 0; i < this.attributes.length; i++)
+ {
+ var tagAttribute = this.attributes[i];
+ html += " " + tagAttribute.name + "=\"" +
tagAttribute.value + "\"";
+ }
+ html += ">" + this.text;
+
+ for (var i = 0; i < this.childTags.length; i++)
+ {
+ html += this.childTags[i].getHTML();
+ }
+
+ html += "</" + this.name + ">";
+ return html;
+ };
+};
+
+function __SliderFactory()
+{
+ this.sliders = new Array();
+
+ __SliderFactory.prototype.addSlider = function (divId)
+ {
+ var slider = new __Slider(divId);
+ this.sliders[this.sliders.length] = slider;
+ return slider;
+ };
+
+ __SliderFactory.prototype.getSliderByName = function (name)
+ {
+ for (var i = 0; i < this.sliders.length; i++)
+ {
+ if (this.sliders[i].sliderName == name)
+ return this.sliders[i];
+ }
+ return null;
+ };
+}
+
+
+function qfSliderLimits(top, right, bottom, left)
+{
+ this.top = top;
+ this.right = right;
+ this.bottom = bottom;
+ this.left = left;
+}
+
+// TODO percentage indicator
+// TODO verticial (bottom to top)
+// TODO reverse painting Top to Bottom
+// TODO snap to closest value (multiple of abs(step))
+
+var qfSlider_VERTICAL = "vertical";
+var qfSlider_HORIZONTAL = "horizontal";
+
+function __Slider(divId)
+{
+ this.sliderName = divId;
+ this.divId = "__" + divId;
+ this.divCtl = getObject(divId);
+ this.width = 0;
+ this.height = 0;
+ this.minValue = 0;
+ this.maxValue = 0;
+ this.position = 0;
+ this.stepAmt = 1;
+ this.horizontal = true;
+ this.onChange = null;
+ this.className = "";
+ this.thumbClassName = "";
+ this.showProgress = false;
+ this.progressClassName = "";
+ this.reversePaint = false;
+
+ this.showThumb = false;
+ this.thumbLimits = new qfSliderLimits(0, 0, 0, 0);
+
+ this.showUsed = true;
+ this.usedLimits = new qfSliderLimits(0, 0, 0, 0);
+ this.usedColour = "navy";
+ this.usedClassName = "";
+
+ this.showRemain = false;
+ this.remainLimits = new qfSliderLimits(0, 0, 0, 0);
+ this.remainColour = "white";
+ this.remainClassName = "";
+
+ this.innerDivId = this.divId + "_inner";
+ this.thumbDivId = this.divId + "_thumb";
+ this.usedDivId = this.divId + "_used";
+ this.remainDivId = this.divId + "_rem";
+ this.progressUsedDivId = this.divId + "p_used";
+ this.progressRemainDivId = this.divId + "p_remain";
+
+ __Slider.prototype.setWidth = function(value)
+ {
+ this.width = 1 * value;
+ };
+
+ __Slider.prototype.setHeight = function(value)
+ {
+ this.height = 1 * value;
+ };
+
+ __Slider.prototype.setMinValue = function(value)
+ {
+ this.minValue = 1 * value;
+ };
+
+ __Slider.prototype.setMaxValue = function(value)
+ {
+ this.maxValue = 1 * value;
+ };
+
+ __Slider.prototype.setStep = function(value)
+ {
+ this.stepAmt = 1 * value;
+ };
+
+ __Slider.prototype.setOrientation = function(value)
+ {
+ this.horizontal = (value == qfSlider_HORIZONTAL);
+ };
+
+ __Slider.prototype.setOnChange = function(func)
+ {
+ this.onChange = func;
+ };
+
+ __Slider.prototype.setPosition = function(value)
+ {
+ this.position = 1 * value;
+ this.step(0);
+ };
+
+ __Slider.prototype.setClassName = function(value)
+ {
+ this.className = value;
+ };
+
+ __Slider.prototype.setThumbClassName = function(value)
+ {
+ this.thumbClassName = value;
+ };
+
+ __Slider.prototype.setShowThumb = function(value)
+ {
+ this.showThumb = value;
+ };
+
+ __Slider.prototype.setThumbLimits = function(value)
+ {
+ this.thumbLimits = value;
+ };
+
+ __Slider.prototype.setShowUsed = function(value)
+ {
+ this.showUsed = value;
+ };
+
+ __Slider.prototype.setUsedLimits = function(value)
+ {
+ this.usedLimits = value;
+ };
+
+ __Slider.prototype.setUsedColour = function(value)
+ {
+ this.usedColour = value;
+ };
+
+ __Slider.prototype.setUsedClassName = function(value)
+ {
+ this.usedClassName = value;
+ };
+
+ __Slider.prototype.setShowRemain = function(value)
+ {
+ this.showRemain = value;
+ };
+
+ __Slider.prototype.setRemainLimits = function(value)
+ {
+ this.remainLimits = value;
+ };
+
+ __Slider.prototype.setRemainColour = function(value)
+ {
+ this.remainColour = value;
+ };
+
+ __Slider.prototype.setRemainClassName = function(value)
+ {
+ this.remainClassName = value;
+ };
+
+ __Slider.prototype.setShowProgress = function(value)
+ {
+ this.showProgress = value;
+ };
+
+ __Slider.prototype.setProgressClassName = function(value)
+ {
+ this.progressClassName = value;
+ };
+
+ __Slider.prototype.setReversePaint = function(value)
+ {
+ this.reversePaint = value;
+ };
+
+ __Slider.prototype.getHTML = function()
+ {
+ var html = "";
+
+ // Used for internal sizings of the div (excluding the border).
+ var innerDivTag = new __Tag("div");
+ innerDivTag.setAttribute("id", this.innerDivId);
+ innerDivTag.setAttribute("style",
"position:relative;width:100%;height:100%");
+ html += innerDivTag.getHTML();
+
+ // Used Div
+ var usedDivTag = new __Tag("div");
+ usedDivTag.setAttribute("id", this.usedDivId);
+ var usedStyle = "visibility:hidden;position:absolute;";
+
+ if (this.usedClassName != "")
+ usedDivTag.setAttribute("class", this.usedClassName);
+ else if (this.usedColor != "")
+ usedStyle += "background-color:" + this.usedColour;
+
+ usedDivTag.setAttribute("style", usedStyle);
+ html += usedDivTag.getHTML();
+
+ // Remaining Div
+ var remainDivTag = new __Tag("div");
+ remainDivTag.setAttribute("id", this.remainDivId);
+
+ var remainStyle = "visibility:hidden;position:absolute;";
+
+ if (this.remainClassName != "")
+ remainDivTag.setAttribute("class", this.remainClassName);
+ else if (this.remainColor != "")
+ remainStyle += "background-color:" + this.remainColour;
+
+ remainDivTag.setAttribute("style", remainStyle);
+ html += remainDivTag.getHTML();
+
+ // Progress Text
+ var progDivTag = new __Tag("div");
+ progDivTag.setAttribute("id", this.progressUsedDivId);
+ var progStyle = "visibility:hidden;position:absolute;";
+ if (this.progressClassName != "")
+ progDivTag.setAttribute("class", this.progressClassName);
+ progDivTag.setAttribute("style", progStyle);
+ html += progDivTag.getHTML();
+
+ progDivTag = new __Tag("div");
+ progDivTag.setAttribute("id", this.progressRemainDivId);
+ progStyle = "visibility:hidden;position:absolute;";
+ if (this.progressClassName != "")
+ progDivTag.setAttribute("class", this.progressClassName);
+ progDivTag.setAttribute("style", progStyle);
+ html += progDivTag.getHTML();
+
+ // Thumb Div
+ var thumbDivTag = new __Tag("div");
+ thumbDivTag.setAttribute("id", this.thumbDivId);
+ thumbDivTag.setAttribute("class", this.thumbClassName);
+ thumbDivTag.setAttribute("style",
"visibility:hidden;position:absolute;");
+ html += thumbDivTag.getHTML();
+
+ return html;
+ };
+
+ __Slider.prototype.getSliderProperties = function(limits)
+ {
+ var population = Math.abs(this.maxValue - this.minValue);
+ var min = Math.min(this.minValue, this.maxValue);
+ var max = Math.max(this.minValue, this.maxValue);
+
+ var percent = (this.position - min)/population;
+
+ var sliderDims = __getControlDim(getObject(this.innerDivId));
+
+ if (limits)
+ {
+ sliderDims.width = sliderDims.width - limits.right - limits.left;
+ sliderDims.height = sliderDims.height - limits.bottom - limits.top;
+ }
+
+ var sliderSize = 0;
+ if (this.horizontal)
+ sliderSize = Math.round(sliderDims.width * percent);
+ else
+ sliderSize = Math.round(sliderDims.height * percent);
+
+ if (this.minValue > this.maxValue)
+ sliderSize = sliderDims.width - sliderSize;
+
+ return ( {dims:sliderDims, size:sliderSize, population:population, percent:percent,
min:min, max:max} );
+ };
+
+ __Slider.prototype.repaint = function()
+ {
+ this.divCtl.className = this.className;
+ this.divCtl.innerHTML = this.getHTML();
+
+ this.divCtl.style.width = this.width + "px";
+
+ if (this.showThumb)
+ {
+ // Allow the thumb to be dragged.
+ var thumbObject = getObject(this.thumbDivId);
+ __browser.chainEvent(thumbObject, "mousedown", dragStart);
+
+ var props = this.getSliderProperties(this.thumbLimits);
+ var styleObject = getStyleObject(this.thumbDivId);
+
+ if (this.horizontal)
+ {
+ if (this.reversePaint)
+ styleObject.left = this.thumbLimits.left + (props.dims.width - props.size -
(styleObject.width / 2));
+ else
+ styleObject.left = this.thumbLimits.left + (props.size - (styleObject.width /
2));
+
+ styleObject.top = this.thumbLimits.top;
+ }
+ else
+ {
+ if (this.reversePaint)
+ styleObject.top = this.thumbLimits.top + (props.size - (styleObject.height /
2));
+ else
+ styleObject.top = this.thumbLimits.top + (props.dims.height - props.size -
(styleObject.height / 2));
+
+ styleObject.left = this.thumbLimits.left;
+ }
+ styleObject.visibility = "visible";
+ }
+
+ if (this.showUsed)
+ {
+ var props = this.getSliderProperties(this.usedLimits);
+ var styleObject = getStyleObject(this.usedDivId);
+
+ if (this.horizontal)
+ {
+ if (this.reversePaint)
+ styleObject.left = this.usedLimits.left + props.dims.width - props.size;
+ else
+ styleObject.left = this.usedLimits.left;
+ styleObject.top = this.usedLimits.top;
+ styleObject.height = props.dims.height + "px";
+ styleObject.fontSize = "1px"; // Hack for IE
+ styleObject.width = props.size + "px";
+ }
+ else
+ {
+ if (this.reversePaint)
+ styleObject.top = this.usedLimits.top;
+ else
+ styleObject.top = this.usedLimits.top + props.dims.height - props.size;
+ styleObject.left = this.usedLimits.left;
+ styleObject.width = props.dims.width + "px";
+ styleObject.fontSize = "1px"; // Hack for IE
+ styleObject.height = props.size + "px";
+ }
+ styleObject.visibility = "visible";
+ }
+
+ if (this.showRemain)
+ {
+ var props = this.getSliderProperties(this.remainLimits);
+ var styleObject = getStyleObject(this.remainDivId);
+
+ if (this.horizontal)
+ {
+ if (this.reversePaint)
+ styleObject.left = this.remainLimits.left;
+ else
+ styleObject.left = this.remainLimits.left + props.size;
+ styleObject.top = this.remainLimits.top;
+ styleObject.height = props.dims.height + "px";
+ styleObject.fontSize = "1px"; // Hack for IE
+ styleObject.width = (props.dims.width - props.size) + "px";
+ }
+ else
+ {
+ if (this.reversePaint)
+ styleObject.top = this.remainLimits.top + props.size;
+ else
+ styleObject.top = this.remainLimits.top;
+ styleObject.left = this.remainLimits.left;
+ styleObject.width = props.dims.width + "px";
+ styleObject.fontSize = "1px"; // Hack for IE
+ styleObject.height = (props.dims.height - props.size) + "px";
+ }
+
+ styleObject.visibility = "visible";
+ }
+
+ if (this.showProgress)
+ {
+ var props = this.getSliderProperties(this.usedLimits);
+ var usedStyleObject = getStyleObject(this.usedDivId);
+ var remainStyleObject = getStyleObject(this.remainDivId);
+ var baseStyleObject = this.divCtl.style;
+
+ // Used side
+ var styleObject = getStyleObject(this.progressUsedDivId);
+
+ styleObject.left = usedStyleObject.left;
+ styleObject.top = usedStyleObject.top;
+ styleObject.height = usedStyleObject.height;
+
+ if (this.showRemain)
+ styleObject.color = remainStyleObject.backgroundColor;
+ else
+ styleObject.color = inverseRGB(baseStyleObject.backgroundColor);
+
+ if (this.horizontal)
+ {
+ styleObject.width = props.dims.width + "px";
+ styleObject.textAlign = "center";
+ styleObject.clip = "rect(0px, " + props.size + "px, " +
props.dims.height + "px, 0px)";
+ getObject(this.progressUsedDivId).innerHTML = Math.round(props.percent * 100) +
"%";
+ }
+ else
+ {
+ // TODO vertical clipping
+ }
+ styleObject.visibility = "visible";
+
+ // Remain side
+ props = this.getSliderProperties(this.remainsLimits);
+ styleObject = getStyleObject(this.progressRemainDivId);
+
+ if (this.horizontal)
+ {
+ styleObject.left = this.remainLimits.left;
+ styleObject.top = this.remainLimits.top;
+ styleObject.height = props.dims.height + "px";
+ styleObject.width = props.dims.width + "px";
+
+ if (this.showUsed)
+ styleObject.color = usedStyleObject.backgroundColor;
+ else
+ styleObject.color = inverseRGB(baseStyleObject.backgroundColor);
+
+ styleObject.textAlign = "center";
+ styleObject.clip = "rect(0px, " + props.dims.width + "px, " +
props.dims.height + "px, " + props.size + "px)";
+ getObject(this.progressRemainDivId).innerHTML = Math.round(props.percent * 100) +
"%";
+ }
+ else
+ {
+ // TODO vertical clipping
+ }
+
+ styleObject.visibility = "visible";
+ }
+ };
+
+ __Slider.prototype.step = function(delta)
+ {
+ this.position = this.position + (delta * this.stepAmt);
+
+ var min = Math.min(this.minValue, this.maxValue);
+ var max = Math.max(this.minValue, this.maxValue);
+
+ if (this.position < min)
+ this.position = min;
+
+ if (this.position > max)
+ this.position = max;
+
+ this.repaint();
+
+ if (this.onChange)
+ this.onChange(this);
+ };
+
+ var dragDiv;
+ var dragDivId;
+ var dragStartMousePos;
+ var dragStartSliderPos;
+
+ function dragStart(event)
+ {
+ var thumbDiv = __browser.getEventTarget(event);
+ dragDiv = thumbDiv;
+ dragStartMousePos = __browser.getMousePos(event);
+
+ var slider = qfSliderFactory.getSliderByName(thumbDiv.id.split("_")[2]);
+ dragStartSliderPos = slider.position;
+
+ __browser.chainEvent(document, "mousemove", dragMove);
+ __browser.chainEvent(document, "mouseup", dragDrop);
+ __browser.stopEventBubble(event);
+ }
+
+ function dragMove(event)
+ {
+ var mousePos = __browser.getMousePos(event);
+
+ var thumbDiv = dragDiv;
+ var slider = qfSliderFactory.getSliderByName(thumbDiv.id.split("_")[2]);
+
+ var styleObject = getStyleObject(thumbDiv.id);
+ var thumbDims = __getControlDim(getObject(thumbDiv.id));
+ var props = slider.getSliderProperties(slider.thumbLimits);
+
+ // Limit movement of thumb within boundaries of the containing thumb limits
+ if (slider.horizontal)
+ {
+ var newLeft = mousePos.x - props.dims.x - thumbDims.width / 2;
+
+ if (newLeft < slider.thumbLimits.left)
+ newLeft = slider.thumbLimits.left;
+ if (newLeft > (slider.thumbLimits.left + props.dims.width))
+ newLeft = slider.thumbLimits.left + props.dims.width;
+
+ var percent = (newLeft - slider.thumbLimits.left) / props.dims.width;
+ if (this.reversePaint)
+ percent = 1 - percent;
+
+ var min = Math.min(slider.minValue, slider.maxValue);
+ var max = Math.max(slider.minValue, slider.maxValue);
+
+ var pos = ((max - min) * percent).roundedValue(slider.stepAmt);
+
+ slider.setPosition(pos);
+ slider.repaint();
+ }
+ else
+ {
+ var min = Math.min(slider.minValue, slider.maxValue);
+ var max = Math.max(slider.minValue, slider.maxValue);
+ var pos = (dragStartSliderPos - (mousePos.y - dragStartMousePos.y) /
props.dims.height * (max - min)).roundedValue(slider.stepAmt);
+
+ slider.setPosition(pos);
+ slider.repaint();
+ }
+
+ __browser.stopEventBubble(event);
+ };
+
+ function dragDrop(event)
+ {
+ __browser.unchainEvent(document, "mousemove", dragMove);
+ __browser.unchainEvent(document, "mouseup", dragDrop);
+ };
+}
+
+
+var qfSliderFactory = new __SliderFactory();
\ No newline at end of file
Added: branches/community/Seam_2_3/examples-ee6/remoting/progressbar/readme.txt
===================================================================
--- branches/community/Seam_2_3/examples-ee6/remoting/progressbar/readme.txt
(rev 0)
+++ branches/community/Seam_2_3/examples-ee6/remoting/progressbar/readme.txt 2012-04-02
06:53:18 UTC (rev 14455)
@@ -0,0 +1,29 @@
+Seam Remoting/Progressbar Example
+=================================
+
+This example shows how to create a progress bar using Seam Remoting.
+It runs on JBoss AS as an EAR and on Tomcat with JBoss Embedded as a WAR.
+
+To deploy the example to JBossAS, follow these steps:
+
+* In the example root directory run:
+
+ mvn clean package
+
+* Set JBOSS_HOME environment property.
+
+* In the progressbar-ear directory run:
+
+ mvn jboss:hard-deploy
+
+* Open this URL in a web browser:
http://localhost:8080/seam-progressbar
+
+To deploy the example to Tomcat with Embedded JBoss, follow these steps:
+
+* In the example root directory run:
+
+ mvn clean package -Ptomcat
+
+* Deploy the resulting war from progressbar-web/target directory to Tomcat manually
+
+* Open this URL in a web browser:
http://localhost:8080/jboss-seam-progressbar