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 {
  
  
  

Reply via email to