You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by im...@apache.org on 2007/02/26 21:40:19 UTC

svn commit: r511994 - in /myfaces/fusion/trunk: core/src/main/java/org/apache/myfaces/fusion/conversation/ examples/ examples/src/main/java/org/ examples/src/main/java/org/apache/ examples/src/main/java/org/apache/myfaces/ examples/src/main/java/org/ap...

Author: imario
Date: Mon Feb 26 12:40:17 2007
New Revision: 511994

URL: http://svn.apache.org/viewvc?view=rev&rev=511994
Log:
added ConversationUtils.ensureConversation (which will be replaced by annotations in the future)
finished setup of examples framework, now works with "mvn jetty:run", though, the examples is by far - the most - ugly looking one, just to test the whole thing, more will follow.

Added:
    myfaces/fusion/trunk/examples/src/main/java/org/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/ConfiguratorData.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/Initialization.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/ComponentDAO.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/OrderHeadDAO.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Component.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderHead.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderItem.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/tests/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/filter/
    myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/filter/RequestEncodingFilter.java
    myfaces/fusion/trunk/examples/src/main/resources/META-INF/
    myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml
    myfaces/fusion/trunk/examples/src/main/resources/log4j.xml
    myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp   (contents, props changed)
      - copied, changed from r511943, myfaces/fusion/trunk/examples/src/main/webapp/configurator/Configurator.jsp
Removed:
    myfaces/fusion/trunk/examples/src/main/webapp/configurator/Checkout.jsp
Modified:
    myfaces/fusion/trunk/core/src/main/java/org/apache/myfaces/fusion/conversation/ConversationUtils.java
    myfaces/fusion/trunk/examples/pom.xml
    myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml
    myfaces/fusion/trunk/examples/src/main/webapp/default.css

Modified: myfaces/fusion/trunk/core/src/main/java/org/apache/myfaces/fusion/conversation/ConversationUtils.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/core/src/main/java/org/apache/myfaces/fusion/conversation/ConversationUtils.java?view=diff&rev=511994&r1=511993&r2=511994
==============================================================================
--- myfaces/fusion/trunk/core/src/main/java/org/apache/myfaces/fusion/conversation/ConversationUtils.java (original)
+++ myfaces/fusion/trunk/core/src/main/java/org/apache/myfaces/fusion/conversation/ConversationUtils.java Mon Feb 26 12:40:17 2007
@@ -23,6 +23,9 @@
 
 package org.apache.myfaces.fusion.conversation;
 
+import javax.faces.context.FacesContext;
+import java.io.IOException;
+
 /**
  * Some helpers usable for public use
  */
@@ -45,5 +48,55 @@
 		Conversation newConversation = conversation.invalidateAndRestart();
 
 		return newConversation.getAttribute(name);
+	}
+
+	/**
+	 * <p>if no conversation with name <code>conversationName</code> is active a redirect to
+	 * <code>redirectViewId</code> will be issued.</p>
+	 * <p>If <code>redirectViewId</code> starts with an slash ('/') the context path will be added</p>
+	 */
+	public static void ensureConversationRedirect(String conversationName, String redirectViewId)
+	{
+		if (!ConversationManager.getInstance().hasConversation(conversationName))
+		{
+			try
+			{
+				FacesContext context = FacesContext.getCurrentInstance();
+
+				StringBuffer redir = new StringBuffer();
+				if (redirectViewId.startsWith("/"))
+				{
+					redir.append(
+						context.getExternalContext().getRequestContextPath());
+				}
+				redir.append(redirectViewId);
+
+				context.getExternalContext().redirect(redir.toString());
+				context.responseComplete();
+			}
+			catch (IOException e)
+			{
+				throw new RuntimeException(e);
+			}
+		}
+	}
+
+	/**
+	 * <p>if no conversation with name <code>conversationName</code> is active a navigation with
+	 * the given action will be issued</p>
+	 * <p>
+	 * Notice: optionally you can use the conversationName as "fromAction" in your faces-config.xml
+	 * </p>
+	 */
+	public static void ensureConversation(String conversationName, String action)
+	{
+		if (!ConversationManager.getInstance().hasConversation(conversationName))
+		{
+			FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(
+				FacesContext.getCurrentInstance(),
+				conversationName,
+				action
+			);
+		}
 	}
 }

Modified: myfaces/fusion/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/pom.xml?view=diff&rev=511994&r1=511993&r2=511994
==============================================================================
--- myfaces/fusion/trunk/examples/pom.xml (original)
+++ myfaces/fusion/trunk/examples/pom.xml Mon Feb 26 12:40:17 2007
@@ -20,8 +20,38 @@
 		<url>http://svn.apache.org/viewcvs.cgi/myfaces/fusion/trunk/examples</url>
 	</scm>
 
+	<repositories>
+		<repository>
+			<id>central</id>
+			<url>http://www.ibiblio.org/maven2</url>
+		</repository>
+		<repository>
+			<id>java-net</id>
+			<url>https://maven-repository.dev.java.net/nonav/repository</url>
+			<layout>legacy</layout>
+		</repository>
+	</repositories>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>mortbay-repo</id>
+			<name>mortbay-repo</name>
+			<url>http://www.mortbay.org/maven2/snapshot</url>
+		</pluginRepository>
+	</pluginRepositories>
+
 	<dependencies>
 		<dependency>
+			<groupId>org.apache.myfaces.fusion</groupId>
+			<artifactId>myfaces-fusion-core</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.myfaces.fusion</groupId>
+			<artifactId>myfaces-fusion-core15</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
 			<groupId>org.apache.myfaces.core</groupId>
 			<artifactId>myfaces-api</artifactId>
 			<version>1.1.6-SNAPSHOT</version>
@@ -36,62 +66,89 @@
 			<artifactId>tomahawk</artifactId>
 			<version>1.1.5-SNAPSHOT</version>
 		</dependency>
-	</dependencies>
-	
-	<profiles>
-		<!-- Profile to run jetty, so the tomcat jars are included in the bundle. They are not included by default -->
-		<profile>
-			<id>jettyConfig</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.mortbay.jetty</groupId>
-						<artifactId>maven-jetty-plugin</artifactId>
-						<configuration>
-							<scanIntervalSeconds>10</scanIntervalSeconds>
-						</configuration>
-					</plugin>
-				</plugins>
-			</build>
-
-			<dependencies>
-				<dependency>
-					<groupId>javax.servlet</groupId>
-					<artifactId>jsp-api</artifactId>
-					<version>2.0</version>
-					<scope>compile</scope>
-				</dependency>
-				<dependency>
-					<groupId>tomcat</groupId>
-					<artifactId>jasper-compiler</artifactId>
-					<version>5.5.9</version>
-					<scope>compile</scope>
-				</dependency>
-				<dependency>
-					<groupId>tomcat</groupId>
-					<artifactId>jasper-runtime</artifactId>
-					<version>5.5.9</version>
-					<scope>compile</scope>
-				</dependency>
-				<dependency>
-					<groupId>tomcat</groupId>
-					<artifactId>jasper-compiler-jdt</artifactId>
-					<version>5.5.9</version>
-					<scope>compile</scope>
-				</dependency>
-			</dependencies>
-
-			<pluginRepositories>
-				<!-- Repository to get the jetty plugin -->
-				<pluginRepository>
-					<id>mortbay-repo</id>
-					<name>mortbay-repo</name>
-					<url>http://www.mortbay.org/maven2/snapshot</url>
-				</pluginRepository>
-			</pluginRepositories>
+		<dependency>
+			<groupId>org.apache.myfaces.tomahawk</groupId>
+			<artifactId>tomahawk-sandbox</artifactId>
+			<version>1.1.5-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring</artifactId>
+			<version>2.0.2</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.3</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>cglib</groupId>
+			<artifactId>cglib</artifactId>
+			<version>2.1_3</version>
+		</dependency>
+<!--
+		<dependency>
+			<groupId>toplink.essentials</groupId>
+			<artifactId>toplink-essentials</artifactId>
+			<version>2.0-36</version>
+			<scope>provided</scope>
+		</dependency>
+-->
+		<dependency>
+		  <groupId>javax.persistence</groupId>
+		  <artifactId>toplink-essentials</artifactId>
+		  <version>1.0</version>
+		</dependency>
 
-		</profile>
-	</profiles>
+		<dependency>
+			<groupId>org.apache.derby</groupId>
+			<artifactId>derby</artifactId>
+			<version>10.2.2.0</version>
+		</dependency>
+
+		<!-- jetty -->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jsp-api</artifactId>
+			<version>2.0</version>
+			<scope>compile</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>tomcat</groupId>
+			<artifactId>jasper-compiler</artifactId>
+			<version>5.5.9</version>
+			<scope>compile</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>tomcat</groupId>
+			<artifactId>jasper-runtime</artifactId>
+			<version>5.5.9</version>
+			<scope>compile</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>tomcat</groupId>
+			<artifactId>jasper-compiler-jdt</artifactId>
+			<version>5.5.9</version>
+			<scope>compile</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>javax.el</groupId>
+			<artifactId>el-api</artifactId>
+			<version>1.0</version>
+		</dependency>
+
+		<dependency>
+			<groupId>el-impl</groupId>
+			<artifactId>el-impl</artifactId>
+			<version>1.0</version>
+		</dependency>
+	</dependencies>
 
 	<build>
 		<finalName>${artifactId}</finalName>
@@ -104,6 +161,14 @@
 		</resources>
 
 		<plugins>
+                        <plugin>
+                                <artifactId>maven-compiler-plugin</artifactId>
+                                <configuration>
+                                        <source>1.5</source>
+                                        <target>1.5</target>
+                                </configuration>
+                        </plugin>
+
 			<plugin>
 				<artifactId>maven-source-plugin</artifactId>
 				<executions>
@@ -115,24 +180,19 @@
 					</execution>
 				</executions>
 			</plugin>
+
 			<plugin>
-				<groupId>org.codehaus.cargo</groupId>
-				<artifactId>cargo-maven2-plugin</artifactId>
-				<version>0.2</version>
+				<groupId>org.mortbay.jetty</groupId>
+				<artifactId>maven-jetty-plugin</artifactId>
+				<version>6.1.1</version>				
 				<configuration>
-					<container>
-						<containerId>tomcat5x</containerId>
-						<home>${cargo.tomcat5x.home}</home>
-						<log>${project.build.directory}/tomcat5x.log</log>
-						<output>${project.build.directory}/tomcat5x.out</output>
-					</container>
-					<configuration>
-						<home>${project.build.directory}/tomcat5x</home>
-						<properties>
-							<cargo.jvmargs>-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
-							</cargo.jvmargs>
-						</properties>
-					</configuration>
+					<connectors>
+						<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+							<port>9090</port>
+							<maxIdleTime>60000</maxIdleTime>
+						</connector>
+					</connectors>
+					<scanIntervalSeconds>10</scanIntervalSeconds>
 				</configuration>
 			</plugin>
 		</plugins>

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/Checkout.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.examples.configurator.backings;
+
+import org.apache.myfaces.fusion.conversation.ConversationUtils;
+
+public class Checkout
+{
+	public void initView()
+	{
+		ConversationUtils.ensureConversationRedirect("configuratorData", "/configurator/ComponentSelection.faces");
+	}
+}

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/ConfiguratorData.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/ConfiguratorData.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/ConfiguratorData.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/backings/ConfiguratorData.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,185 @@
+package org.apache.myfaces.examples.configurator.backings;
+
+import org.apache.myfaces.examples.configurator.model.dao.ComponentDAO;
+import org.apache.myfaces.examples.configurator.model.dao.OrderHeadDAO;
+import org.apache.myfaces.examples.configurator.model.dao.PieceDAO;
+import org.apache.myfaces.examples.configurator.model.po.Component;
+import org.apache.myfaces.examples.configurator.model.po.OrderHead;
+import org.apache.myfaces.examples.configurator.model.po.OrderItem;
+import org.apache.myfaces.examples.configurator.model.po.Piece;
+import org.apache.myfaces.examples.configurator.model.Initialization;
+import org.apache.myfaces.fusion.conversation.Conversation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.faces.model.SelectItem;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ConfiguratorData
+{
+	private Long selectedComponent;
+	private Long selectedPiece;
+
+	// echte conversation scoped daten
+	private ComponentDAO componentDao;
+	private PieceDAO pieceDao;
+	private OrderHeadDAO orderHeadDao;
+	private Initialization initialization;
+
+	private OrderHead orderHead;
+
+	public Long getSelectedComponent()
+	{
+		return selectedComponent;
+	}
+
+	public void setSelectedComponent(Long selectedComponent)
+	{
+		this.selectedComponent = selectedComponent;
+	}
+
+	public Long getSelectedPiece()
+	{
+		return selectedPiece;
+	}
+
+	public void setSelectedPiece(Long selectedPiece)
+	{
+		this.selectedPiece = selectedPiece;
+	}
+	
+	public ComponentDAO getComponentDao()
+	{
+		return componentDao;
+	}
+
+	public void setComponentDao(ComponentDAO componentDao)
+	{
+		this.componentDao = componentDao;
+	}
+
+	public Initialization getInitialization()
+	{
+		return initialization;
+	}
+
+	public void setInitialization(Initialization initialization)
+	{
+		this.initialization = initialization;
+	}
+
+	public PieceDAO getPieceDao()
+	{
+		return pieceDao;
+	}
+
+	public void setPieceDao(PieceDAO pieceDao)
+	{
+		this.pieceDao = pieceDao;
+	}
+
+	public OrderHeadDAO getOrderHeadDao()
+	{
+		return orderHeadDao;
+	}
+
+	public void setOrderHeadDao(OrderHeadDAO orderHeadDao)
+	{
+		this.orderHeadDao = orderHeadDao;
+	}
+
+	@Transactional(readOnly = true)
+	public List<SelectItem> getComponents()
+	{
+		List<SelectItem> ret = new ArrayList<SelectItem>();
+		for (Component component : componentDao.getComponents())
+		{
+			ret.add(new SelectItem(component.getId(), component.getDescription()));
+		}
+		return ret;
+	}
+
+	@Transactional(readOnly = true)
+	public List<Piece> getPieces()
+	{
+		// XXX: Workaround
+		Long cmp = getSelectedComponent();
+		if (cmp == null && getComponents().size() > 0)
+		{
+			cmp = (Long) getComponents().get(0).getValue();
+		}
+		if (cmp == null)
+		{
+			return null;
+		}
+
+		Component component = componentDao.getByKey(cmp);
+		return new ArrayList<Piece>(component.getPieces());
+	}
+
+	public OrderHead getOrder()
+	{
+		return orderHead;
+	}
+
+	@Transactional(readOnly = true)
+	public List<OrderItem> getOrderItems()
+	{
+		if (orderHead == null || orderHead.getOrderItems() == null)
+		{
+			return null;
+		}
+
+		return new ArrayList<OrderItem>(orderHead.getOrderItems());
+	}
+
+	@Transactional(readOnly = true)
+	public String orderItemAction()
+	{
+		if (orderHead == null)
+		{
+			orderHead = new OrderHead();
+		}
+
+		Piece piece = pieceDao.getByKey(getSelectedPiece());
+
+		OrderItem orderItem = new OrderItem();
+		orderItem.setPiece(piece);
+		orderItem.setAmount(1);
+
+		orderHead.addOrderItem(orderItem);
+
+		return null;
+	}
+
+	@Transactional()
+	public String buyAction()
+	{
+		orderHeadDao.save(orderHead);
+
+		Conversation.getCurrentInstance()
+			.invalidate();
+
+		return "success";
+	}
+
+	@Transactional()
+	public String setupDatabaseAction()
+	{
+		getInitialization().populateDatabase();
+		return null;
+	}
+
+	public String cancelAction()
+	{
+		Conversation.getCurrentInstance()
+			.invalidate();
+
+		return "success";
+	}
+
+	public String checkoutAction()
+	{
+		return "success";
+	}
+}

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/Initialization.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/Initialization.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/Initialization.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/Initialization.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,55 @@
+package org.apache.myfaces.examples.configurator.model;
+
+import org.apache.myfaces.examples.configurator.model.po.Component;
+import org.apache.myfaces.examples.configurator.model.po.Piece;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+public class Initialization
+{
+	@PersistenceContext
+	private EntityManager entityManager;
+
+	public void populateDatabase()
+	{
+		// check if we have to initialize
+		Query q = entityManager.createQuery("select component from Component component order by component.description");
+		q.setMaxResults(1);
+		if (q.getResultList().size() > 0)
+		{
+			// nope, return
+			return;
+		}
+
+
+		Component cmpCase = new Component();
+		cmpCase.setDescription("case");
+		cmpCase.addPiece(createPiece("silent-lq", "low quality, not really silent, midi tower", 5));
+		cmpCase.addPiece(createPiece("silent-hq", "high quality, super silent, tower", 50));
+		cmpCase.addPiece(createPiece("desktop", "desktop, slim-sized, gray", 25));
+		cmpCase.addPiece(createPiece("midi", "midi tower", 30));
+		cmpCase.addPiece(createPiece("tower", "tower, plastic cover", 50));
+		cmpCase.addPiece(createPiece("premium", "black tiger", 60));
+		cmpCase.addPiece(createPiece("modder", "transparent door", 120));
+		entityManager.persist(cmpCase);
+
+		Component cmpMonitor = new Component();
+		cmpMonitor.setDescription("monitor");
+		cmpMonitor.addPiece(createPiece("lcd8", "high end pos 8\" lcd", 700));
+		cmpMonitor.addPiece(createPiece("monitor", "old crt", 100));
+		cmpMonitor.addPiece(createPiece("lcd19", "19\" lcd", 560));
+		cmpMonitor.addPiece(createPiece("lcdWide", "21\" 16:9 video lcd", 1299));
+		entityManager.persist(cmpMonitor);
+	}
+
+	private Piece createPiece(String name, String description, double price)
+	{
+		Piece piece = new Piece();
+		piece.setNumber(name);
+		piece.setDescription(description);
+		piece.setPrice(price);
+		return piece;
+	}
+}
\ No newline at end of file

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/ComponentDAO.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/ComponentDAO.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/ComponentDAO.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/ComponentDAO.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,35 @@
+package org.apache.myfaces.examples.configurator.model.dao;
+
+import org.apache.myfaces.examples.configurator.model.po.Component;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import java.util.List;
+
+public class ComponentDAO
+{
+	@PersistenceContext
+	private EntityManager entityManager;
+
+	public void setEntityManager(EntityManager entityManager)
+	{
+		this.entityManager = entityManager;
+	}
+
+	public EntityManager getEntityManager()
+	{
+		return entityManager;
+	}
+
+	public List<Component> getComponents()
+	{
+		Query query = entityManager.createQuery("select component from Component component order by component.description");
+		return (List<Component>) query.getResultList();
+	}
+
+	public Component getByKey(Long selectedComponent)
+	{
+		return entityManager.find(Component.class, selectedComponent);
+	}
+}

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/OrderHeadDAO.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/OrderHeadDAO.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/OrderHeadDAO.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/OrderHeadDAO.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,17 @@
+package org.apache.myfaces.examples.configurator.model.dao;
+
+import org.apache.myfaces.examples.configurator.model.po.OrderHead;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+public class OrderHeadDAO
+{
+	@PersistenceContext
+	private EntityManager entityManager;
+
+	public void save(OrderHead orderHead)
+	{
+		entityManager.persist(orderHead);
+	}
+}
\ No newline at end of file

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/dao/PieceDAO.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,17 @@
+package org.apache.myfaces.examples.configurator.model.dao;
+
+import org.apache.myfaces.examples.configurator.model.po.Piece;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+public class PieceDAO
+{
+	@PersistenceContext
+	private EntityManager entityManager;
+
+	public Piece getByKey(Long pieceId)
+	{
+		return entityManager.find(Piece.class, pieceId);
+	}
+}
\ No newline at end of file

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Component.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Component.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Component.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Component.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,76 @@
+package org.apache.myfaces.examples.configurator.model.po;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Version;
+import javax.persistence.OneToMany;
+import javax.persistence.FetchType;
+import javax.persistence.CascadeType;
+import javax.persistence.OrderBy;
+import java.util.Set;
+import java.util.HashSet;
+
+@Entity
+public class Component
+{
+	@Id
+	@GeneratedValue(strategy= GenerationType.TABLE)
+	private Long id;
+
+	private String description;
+
+	@OneToMany(fetch = FetchType.LAZY, cascade=CascadeType.ALL, mappedBy = "component")
+	@OrderBy(value="description")
+	private Set<Piece> pieces;
+
+	@Version
+	private Long version;
+
+	public Long getId()
+	{
+		return id;
+	}
+
+	public void setId(Long id)
+	{
+		this.id = id;
+	}
+
+	public String getDescription()
+	{
+		return description;
+	}
+
+	public void setDescription(String description)
+	{
+		this.description = description;
+	}
+
+	public Set<Piece> getPieces()
+	{
+		return pieces;
+	}
+
+	public void addPiece(Piece piece)
+	{
+		if (this.pieces == null)
+		{
+			this.pieces = new HashSet<Piece>();
+		}
+		
+		piece.setComponent(this);
+		this.pieces.add(piece);
+	}
+
+	public Long getVersion()
+	{
+		return version;
+	}
+
+	public void setVersion(Long version)
+	{
+		this.version = version;
+	}
+}

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderHead.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderHead.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderHead.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderHead.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,69 @@
+package org.apache.myfaces.examples.configurator.model.po;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Version;
+import java.util.HashSet;
+import java.util.Set;
+
+@Entity
+public class OrderHead
+{
+	private Long id;
+
+	private Set<OrderItem> orderItems;
+
+	private Long version;
+
+	@Id
+	@GeneratedValue(strategy= GenerationType.TABLE)
+	public Long getId()
+	{
+		return id;
+	}
+
+	public void setId(Long id)
+	{
+		this.id = id;
+	}
+
+	@OneToMany(fetch = FetchType.LAZY, cascade= CascadeType.ALL, mappedBy="orderHead")
+	public Set<OrderItem> getOrderItems()
+	{
+		return orderItems;
+	}
+
+	public void setOrderItems(Set<OrderItem> orderItems)
+	{
+		this.orderItems = orderItems;
+	}
+
+	public void addOrderItem(OrderItem orderItem)
+	{
+		if (this.orderItems == null)
+		{
+			this.orderItems = new HashSet<OrderItem>();
+		}
+		
+		orderItem.setOrderHead(this);
+		orderItem.setPosnr(orderItems.size()+10);
+
+		this.orderItems.add(orderItem);
+	}
+
+	@Version
+	public Long getVersion()
+	{
+		return version;
+	}
+
+	public void setVersion(Long version)
+	{
+		this.version = version;
+	}
+}
\ No newline at end of file

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderItem.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderItem.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderItem.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/OrderItem.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,95 @@
+package org.apache.myfaces.examples.configurator.model.po;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Version;
+
+@Entity
+public class OrderItem
+{
+	private Long id;
+
+	private OrderHead orderHead;
+
+	private int posnr;
+
+	private int amount;
+
+	private Piece piece;
+
+	private Long version;
+
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.TABLE)
+	public Long getId()
+	{
+		return id;
+	}
+
+	public void setId(Long id)
+	{
+		this.id = id;
+	}
+
+	@Version
+	public Long getVersion()
+	{
+		return version;
+	}
+
+	public void setVersion(Long version)
+	{
+		this.version = version;
+	}
+
+	@ManyToOne()
+	public OrderHead getOrderHead()
+	{
+		return orderHead;
+	}
+
+	public void setOrderHead(OrderHead orderHead)
+	{
+		this.orderHead = orderHead;
+	}
+
+	@Column(nullable = false)
+	public int getPosnr()
+	{
+		return posnr;
+	}
+
+	public void setPosnr(int posnr)
+	{
+		this.posnr = posnr;
+	}
+
+	@Column(nullable = false)
+	public int getAmount()
+	{
+		return amount;
+	}
+
+	public void setAmount(int amount)
+	{
+		this.amount = amount;
+	}
+
+	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional=false)
+	public Piece getPiece()
+	{
+		return piece;
+	}
+
+	public void setPiece(Piece piece)
+	{
+		this.piece = piece;
+	}
+}
\ No newline at end of file

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/examples/configurator/model/po/Piece.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,92 @@
+package org.apache.myfaces.examples.configurator.model.po;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Version;
+import javax.persistence.Column;
+
+@Entity
+public class Piece
+{
+	@Id
+	@GeneratedValue(strategy = GenerationType.TABLE)
+	private Long id;
+
+	@ManyToOne
+	private Component component;
+
+	// business key
+	@Column(nullable = false)
+	private String number;
+
+	@Column(nullable = false)
+	private String description;
+
+	private double price;
+
+	@Version
+	private Long version;
+
+	public Long getId()
+	{
+		return id;
+	}
+
+	public void setId(Long id)
+	{
+		this.id = id;
+	}
+
+	public Component getComponent()
+	{
+		return component;
+	}
+
+	public void setComponent(Component component)
+	{
+		this.component = component;
+	}
+
+	public String getNumber()
+	{
+		return number;
+	}
+
+	public void setNumber(String number)
+	{
+		this.number = number;
+	}
+
+	public String getDescription()
+	{
+		return description;
+	}
+
+	public void setDescription(String description)
+	{
+		this.description = description;
+	}
+
+	public double getPrice()
+	{
+		return price;
+	}
+
+	public void setPrice(double price)
+	{
+		this.price = price;
+	}
+
+	public Long getVersion()
+	{
+		return version;
+	}
+
+	public void setVersion(Long version)
+	{
+		this.version = version;
+	}
+}
\ No newline at end of file

Added: myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/filter/RequestEncodingFilter.java
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/filter/RequestEncodingFilter.java?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/filter/RequestEncodingFilter.java (added)
+++ myfaces/fusion/trunk/examples/src/main/java/org/apache/myfaces/filter/RequestEncodingFilter.java Mon Feb 26 12:40:17 2007
@@ -0,0 +1,27 @@
+package org.apache.myfaces.filter;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.FilterChain;
+import java.io.IOException;
+
+public class RequestEncodingFilter implements Filter
+{
+	public void init(FilterConfig filterConfig) throws ServletException
+	{
+	}
+
+	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
+	{
+		servletRequest.setCharacterEncoding("UTF-8");
+		
+		filterChain.doFilter(servletRequest, servletResponse);
+	}
+
+	public void destroy()
+	{
+	}
+}

Added: myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml (added)
+++ myfaces/fusion/trunk/examples/src/main/resources/META-INF/persistence.xml Mon Feb 26 12:40:17 2007
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+<persistence version="1.0"
+        xmlns="http://java.sun.com/xml/ns/persistence"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+
+		<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
+			<class>org.apache.myfaces.examples.configurator.model.po.Component</class>
+			<class>org.apache.myfaces.examples.configurator.model.po.OrderHead</class>
+			<class>org.apache.myfaces.examples.configurator.model.po.OrderItem</class>
+			<class>org.apache.myfaces.examples.configurator.model.po.Piece</class>
+		</persistence-unit>
+</persistence>
\ No newline at end of file

Added: myfaces/fusion/trunk/examples/src/main/resources/log4j.xml
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/resources/log4j.xml?view=auto&rev=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/resources/log4j.xml (added)
+++ myfaces/fusion/trunk/examples/src/main/resources/log4j.xml Mon Feb 26 12:40:17 2007
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2007, Your Corporation. All Rights Reserved.
+  -->
+
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+	<appender name="console" class="org.apache.log4j.ConsoleAppender">
+		<param name="Target" value="System.Err"/>
+		<layout class="org.apache.log4j.PatternLayout">
+			<!--
+			d date
+			p prioirty
+			X MDC Value
+			t threadname
+			c category-name
+			m message
+			-->
+			<param name="ConversionPattern" value="%d %-5p [%t] %c{2} - %m\n"/>
+		</layout>
+	</appender>
+
+	<root>
+		<priority value="debug"/>
+
+		<appender-ref ref="console"/>
+	</root>
+
+</log4j:configuration>
\ No newline at end of file

Modified: myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml?view=diff&rev=511994&r1=511993&r2=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/WEB-INF/applicationContext.xml Mon Feb 26 12:40:17 2007
@@ -35,7 +35,7 @@
 					<bean class="org.apache.myfaces.fusion.conversation.spring.SpringConversationScope">
 						<property name="advices">
 							<list>
-								<ref bean="persistentContextConversationInterceptor" />
+								<ref bean="persistentContextConversationInterceptor"/>
 							</list>
 						</property>
 					</bean>
@@ -44,85 +44,105 @@
 		</property>
 	</bean>
 
-	<bean id="persistentContextConversationInterceptor" class="org.apache.myfaces.fusion.conversation.spring.PersistenceContextConversationInterceptor">
-		<property name="persistenceContextFactory" ref="hibernatePersistentContextFactory" />
+	<bean id="persistentContextConversationInterceptor"
+		  class="org.apache.myfaces.fusion.conversation.spring.PersistenceContextConversationInterceptor">
+		<property name="persistenceContextFactory" ref="persistentContextFactory"/>
 	</bean>
 
-	<bean id="hibernatePersistentContextFactory" class="org.apache.myfaces.fusion.conversation.spring.HibernatePersistenceContextFactory">
-		<property name="sessionFactory" ref="sessionFactory" />
+	<bean id="persistentContextFactory"
+		  class="org.apache.myfaces.fusion.conversation.persistenceContexts.JpaPersistenceContextFactory">
+		<property name="entityManagerFactory" ref="entityManagerFactory"/>
 	</bean>
 
 	<!-- persistence -->
+	<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
+
 	<tx:annotation-driven />
 
-	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
-		<property name="sessionFactory" ref="sessionFactory" />
+	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
+		<property name="entityManagerFactory" ref="entityManagerFactory"/>
 	</bean>
 
-	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
-			<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
-			<property name="url" value="jdbc:hsqldb:file:/home/im/tmp/myfacesFusion/db;shutdown=true"/>
-			<property name="username" value="sa"/>
-			<property name="password" value=""/>
-	</bean>
-
-	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
-		<property name="dataSource" ref="dataSource"/>
-		<property name="annotatedClasses">
-			<list>
-				<value>org.apache.myfaces.examples.configurator.model.po.Component</value>
-				<value>org.apache.myfaces.examples.configurator.model.po.Piece</value>
-				<value>org.apache.myfaces.examples.configurator.model.po.OrderHead</value>
-				<value>org.apache.myfaces.examples.configurator.model.po.OrderItem</value>
-			</list>
-		</property>
-		<property name="hibernateProperties">
+	<bean id="entityManagerFactory"
+		  class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
+		<property name="jpaProperties">
 			<props>
-				<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
-				<prop key="hibernate.show_sql">true</prop>
-				<prop key="hibernate.generate_statistics">true</prop>
-				<prop key="hibernate.hbm2ddl.auto">update</prop>
-				<prop key="hibernate.jdbc.batch_size">0</prop>
-				<prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
-				<prop key="hibernate.cache.use_second_level_cache">true</prop>
-				<prop key="hibernate.cache.use_query_cache">true</prop>
+				<prop key="toplink.logging.level">FINE</prop>
+				<prop key="toplink.jdbc.driver">org.apache.derby.jdbc.EmbeddedDriver</prop>
+				<prop key="toplink.jdbc.url">jdbc:derby:myfacesFusionDB;create=true</prop>
+				<prop key="toplink.jdbc.user">sa</prop>
+				<prop key="toplink.jdbc.password">foobar</prop>
+				<prop key="toplink.target-database">oracle.toplink.essentials.platform.database.DerbyPlatform</prop>
+				<prop key="toplink.ddl-generation">create-tables</prop>
 			</props>
 		</property>
+		<property name="persistenceUnitName" value="default"/>
+	</bean>
+
+<!--
+	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
+		<property name="sessionFactory" ref="sessionFactory" />
 	</bean>
+	
+	 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
+		 <property name="dataSource" ref="dataSource"/>
+		 <property name="annotatedClasses">
+			 <list>
+				 <value>org.apache.myfaces.examples.configurator.model.po.Component</value>
+				 <value>org.apache.myfaces.examples.configurator.model.po.Piece</value>
+				 <value>org.apache.myfaces.examples.configurator.model.po.OrderHead</value>
+				 <value>org.apache.myfaces.examples.configurator.model.po.OrderItem</value>
+			 </list>
+		 </property>
+		 <property name="hibernateProperties">
+			 <props>
+				 <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
+				 <prop key="hibernate.show_sql">true</prop>
+				 <prop key="hibernate.generate_statistics">true</prop>
+				 <prop key="hibernate.hbm2ddl.auto">update</prop>
+				 <prop key="hibernate.jdbc.batch_size">0</prop>
+				 <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
+				 <prop key="hibernate.cache.use_second_level_cache">true</prop>
+				 <prop key="hibernate.cache.use_query_cache">true</prop>
+			 </props>
+		 </property>
+	 </bean>
+ -->
 
 	<!-- dao -->
 	<bean
 		name="componentDao"
 		class="org.apache.myfaces.examples.configurator.model.dao.ComponentDAO">
-		<property name="sessionFactory" ref="sessionFactory" />
 	</bean>
 	<bean
 		name="orderHeadDao"
 		class="org.apache.myfaces.examples.configurator.model.dao.OrderHeadDAO">
-		<property name="sessionFactory" ref="sessionFactory" />
 	</bean>
 	<bean
 		name="pieceDao"
 		class="org.apache.myfaces.examples.configurator.model.dao.PieceDAO">
-		<property name="sessionFactory" ref="sessionFactory" />
+	</bean>
+	<bean
+		name="initialization"
+		class="org.apache.myfaces.examples.configurator.model.Initialization">
 	</bean>
 
 	<!-- the beans -->
 	<bean
-		name="configuratorState"
-		class="org.apache.myfaces.examples.configurator.backings.ConfiguratorState"
+		name="configuratorData"
+		class="org.apache.myfaces.examples.configurator.backings.ConfiguratorData"
 		scope="conversation"
 		autowire="byName">
 
-		<aop:scoped-proxy />
+		<aop:scoped-proxy/>
 	</bean>
 
+	<!-- just a simple view controller -->
 	<bean
-		name="configurator"
-		class="org.apache.myfaces.examples.configurator.backings.Configurator"
+		name="configuratorCheckout"
+		class="org.apache.myfaces.examples.configurator.backings.Checkout"
 		scope="request">
 
-		<property name="configuratorState" ref="configuratorState"/>
 	</bean>
 
 </beans>

Copied: myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp (from r511943, myfaces/fusion/trunk/examples/src/main/webapp/configurator/Configurator.jsp)
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp?view=diff&rev=511994&p1=myfaces/fusion/trunk/examples/src/main/webapp/configurator/Configurator.jsp&r1=511943&p2=myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp&r2=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/configurator/Configurator.jsp (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp Mon Feb 26 12:40:17 2007
@@ -34,7 +34,7 @@
 
 	<t:panelGrid
 			columns="2"
-			columnClasses="TR1,TR2">
+			columnClasses="fixtext,selection">
 
 		<h:outputLabel
 				for="component"
@@ -42,9 +42,9 @@
 
 		<h:selectOneMenu
 				id="component"
-				value="#{configuratorState.selectedComponent}">
+				value="#{configuratorData.selectedComponent}">
 			<f:selectItems
-					value="#{configuratorState.components}" />
+					value="#{configuratorData.components}" />
 			<s:submitOnEvent
 					event="change"
 					for="showPieces" />
@@ -60,10 +60,14 @@
 
 		<t:dataTable
 				var="piece"
-				value="#{configuratorState.pieces}">
+				value="#{configuratorData.pieces}"
+				rowClasses="TR1,TR2">
 
 			<f:facet name="footer">
-				<h:commandButton value="Checkout" action="#{configuratorState.checkoutAction}" />
+				<h:panelGroup>
+					<h:commandButton value="Setup Database" action="#{configuratorData.setupDatabaseAction}" />
+					<h:commandButton value="Checkout" action="#{configuratorData.checkoutAction}" />
+				</h:panelGroup>
 			</f:facet>
 
 			<h:column>
@@ -93,9 +97,9 @@
 				</f:facet>
 				<h:commandLink
 					value="order"
-					action="#{configuratorState.orderItemAction}">
+					action="#{configuratorData.orderItemAction}">
 
-					<t:updateActionListener property="#{configuratorState.selectedPiece}" value="#{piece.id}" />
+					<t:updateActionListener property="#{configuratorData.selectedPiece}" value="#{piece.id}" />
 
 				</h:commandLink>
 			</h:column>

Propchange: myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: myfaces/fusion/trunk/examples/src/main/webapp/configurator/ComponentSelection.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: myfaces/fusion/trunk/examples/src/main/webapp/default.css
URL: http://svn.apache.org/viewvc/myfaces/fusion/trunk/examples/src/main/webapp/default.css?view=diff&rev=511994&r1=511993&r2=511994
==============================================================================
--- myfaces/fusion/trunk/examples/src/main/webapp/default.css (original)
+++ myfaces/fusion/trunk/examples/src/main/webapp/default.css Mon Feb 26 12:40:17 2007
@@ -49,4 +49,32 @@
 {
 	list-style-type: none;
 	display: inline;
+}
+
+table thead
+{
+	background-color: #9999ff;
+	color: white;
+}
+
+.TR1
+{
+	background-color: #ffff99;
+}
+
+.TR2
+{
+	background-color: #cccccc;
+}
+
+.fixtext
+{
+	font-weight: bold;
+	vertical-align: top;
+}
+
+.selection
+{
+	font-weight: normal;
+	vertical-align: top;
 }