stephan 2004/03/31 02:20:01
Modified: src/blocks/javaflow/java/org/apache/cocoon/components/flow/java
JavaInterpreter.java
src/blocks/javaflow/java/org/apache/cocoon/samples/flow/java
PersistenceFlow.java
Log:
Make continuation context also available for the constructor.
Note: the contructor cannot supend the continuation.
Revision Changes Path
1.3 +8 -9
cocoon-2.1/src/blocks/javaflow/java/org/apache/cocoon/components/flow/java/JavaInterpreter.java
Index: JavaInterpreter.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/javaflow/java/org/apache/cocoon/components/flow/java/JavaInterpreter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JavaInterpreter.java 30 Mar 2004 11:10:53 -0000 1.2
+++ JavaInterpreter.java 31 Mar 2004 10:20:00 -0000 1.3
@@ -135,14 +135,6 @@
Continuable flow = (Continuable)
userScopes.get(method.getDeclaringClass());
- if (flow == null) {
- if (getLogger().isDebugEnabled())
- getLogger().debug("create new instance of
\""+method.getDeclaringClass()+"\"");
-
- flow = (Continuable) method.getDeclaringClass().newInstance();
- userScopes.put(method.getDeclaringClass(), flow);
- }
-
ContinuationContext context = new ContinuationContext();
context.setObject(flow);
context.setMethod(method);
@@ -159,6 +151,13 @@
continuation.registerThread();
try {
+ if (flow == null) {
+ if (getLogger().isDebugEnabled())
+ getLogger().debug("create new instance of
\""+method.getDeclaringClass()+"\"");
+
+ flow = (Continuable)
method.getDeclaringClass().newInstance();
+ context.setObject(flow);
+ }
method.invoke(flow, new Object[0]);
1.5 +8 -12
cocoon-2.1/src/blocks/javaflow/java/org/apache/cocoon/samples/flow/java/PersistenceFlow.java
Index: PersistenceFlow.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/javaflow/java/org/apache/cocoon/samples/flow/java/PersistenceFlow.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PersistenceFlow.java 30 Mar 2004 11:10:53 -0000 1.4
+++ PersistenceFlow.java 31 Mar 2004 10:20:00 -0000 1.5
@@ -31,9 +31,15 @@
public class PersistenceFlow extends AbstractFormFlow {
- public void doInsertEmployee() throws BindingException {
+ private transient PersistenceBroker broker = null;
+
+ public PersistenceFlow() {
+ PBFactory factory = (PBFactory)getComponent(PBFactory.ROLE);
+ broker = factory.defaultPersistenceBroker();
+ releaseComponent(factory);
+ }
- PersistenceBroker broker = getPersistenceBroker();
+ public void doInsertEmployee() throws BindingException {
// Create a empty Bean
Employee employee = new Employee();
@@ -64,8 +70,6 @@
else
throw new IllegalStateException("No parameter 'id'");
- PersistenceBroker broker = getPersistenceBroker();
-
// Create a empty Bean
Employee employee = new Employee();
// Fill some initial data to the bean
@@ -99,8 +103,6 @@
else
throw new IllegalStateException("No parameter 'id'");
- PersistenceBroker broker = getPersistenceBroker();
-
// Create a empty Bean
Employee employee = new Employee();
// Fill some initial data to the bean
@@ -115,8 +117,6 @@
public void doShowEmployee() {
- PersistenceBroker broker = getPersistenceBroker();
-
// Query all objects
ArrayList results = new ArrayList();
QueryByCriteria query = new QueryByCriteria(Employee.class, new
Criteria());
@@ -127,10 +127,6 @@
Collections.sort(results, new EmployeeComparator());
// Send response to the user
sendPage("page/employee-result", new VarMap().add("employee",
results));
- }
-
- public PersistenceBroker getPersistenceBroker() {
- return
((PBFactory)getComponent(PBFactory.ROLE)).defaultPersistenceBroker();
}
public class EmployeeComparator implements Comparator, Continuable {