[Yanel-commits] rev 24549 - in public/yanel/trunk/src: core/java/org/wyona/yanel/core/api/attributes core/java/org/wyona/yanel/core/workflow resources/xml/src/java/org/wyona/yanel/impl/resources webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Wed May 16 16:42:02 CEST 2007


Author: michi
Date: 2007-05-16 16:42:01 +0200 (Wed, 16 May 2007)
New Revision: 24549

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/api/attributes/WorkflowableV1.java
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java
   public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
workflow neutron response according no new Neutron spec

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/api/attributes/WorkflowableV1.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/api/attributes/WorkflowableV1.java	2007-05-16 14:39:05 UTC (rev 24548)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/api/attributes/WorkflowableV1.java	2007-05-16 14:42:01 UTC (rev 24549)
@@ -42,6 +42,8 @@
     void setWorkflowVariable(String name, String value) throws WorkflowException;
     void removeWorkflowVariable(String name) throws WorkflowException;
     
+    String getWorkflowIntrospection() throws WorkflowException;
+    
     //boolean canDoTransition(String transitionID) throws WorkflowException;
     //String[] getPossibleTransitions() throws WorkflowException;
 }

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java	2007-05-16 14:39:05 UTC (rev 24548)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java	2007-05-16 14:42:01 UTC (rev 24549)
@@ -154,7 +154,7 @@
             WorkflowableV1 workflowable = (WorkflowableV1)resource;
             String liveRevision = getLiveRevision(resource);
             if (revisions != null && revisions.length > 0) {
-                sb.append("<versions>");
+                sb.append("<versions xmlns=\"http://www.wyona.org/neutron/2.0\">");
                 for (int i = revisions.length - 1; i >= 0; i--) {
                     
                     sb.append("<version url=\"?yanel.resource.revision=" + revisions[i].getName() + "\">");
@@ -214,46 +214,6 @@
         }
     }
 
-    public static String getWorkflowIntrospectionAnswer(Resource resource, String revision) throws WorkflowException {
-        try {
-            StringBuffer sb = new StringBuffer();
-            WorkflowableV1 workflowable = (WorkflowableV1)resource;
-
-            Workflow workflow = getWorkflow(resource);
-            String state = workflowable.getWorkflowState(revision);
-            if (state == null) {
-                state = workflow.getInitialState();
-            }
-            String date = "";
-            
-            sb.append("<workflow xmlns=\"http://www.wyona.org/neutron/2.0\">");
-            sb.append("  <state date=\"" + date + "\">" + state + "</state>");
-            
-            Transition[] transitions = workflow.getLeavingTransitions(state);
-                
-            sb.append("<transitions>");
-transitions: for (int j = 0; j < transitions.length; j++) {
-                Condition[] conditions = transitions[j].getConditions();
-                for (int k = 0; k < conditions.length; k++) {
-                    if (!conditions[k].isComplied(workflowable, workflow, revision)) {
-                        continue transitions; // jump to next transition
-                    }
-                }
-                sb.append("<transition id=\""+transitions[j].getID()+"\" to=\""+transitions[j].getDestinationState()+"\" url=\"?yanel.resource.workflow.transition="+transitions[j].getID()+"\" method=\"POST\">");
-                sb.append("<description>"+transitions[j].getID()+"</description>");
-                sb.append("</transition>");
-            }
-            sb.append("</transitions>");
-            sb.append("<history/>");
-            sb.append("</workflow>");
-                    
-            return sb.toString();
-        } catch (Exception e) {
-            log.error(e, e);
-            throw new WorkflowException(e.getMessage(), e);
-        }
-    }
-    
     public static String getWorkflowVariable(Resource resource, String name) throws WorkflowException {
         try {
             Node node = resource.getRealm().getRepository().getNode(resource.getPath());

Modified: public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
===================================================================
--- public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-05-16 14:39:05 UTC (rev 24548)
+++ public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-05-16 14:42:01 UTC (rev 24549)
@@ -658,5 +658,9 @@
     public Date getWorkflowDate(String revision) throws WorkflowException {
         return WorkflowHelper.getWorkflowDate(this, revision);
     }
+    
+    public String getWorkflowIntrospection() throws WorkflowException {
+        return WorkflowHelper.getWorkflowIntrospection(this);
+    }
 
 }

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2007-05-16 14:39:05 UTC (rev 24548)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2007-05-16 14:42:01 UTC (rev 24549)
@@ -577,9 +577,7 @@
                     
                     response.setStatus(javax.servlet.http.HttpServletResponse.SC_OK);
                     StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?>");
-                    //sb.append(WorkflowHelper.getWorkflowIntrospection(resource));
-                    // TODO: don't use WorkflowHelper here, it's implementation specific!
-                    sb.append(WorkflowHelper.getWorkflowIntrospectionAnswer(resource, revision));
+                    sb.append(workflowable.getWorkflowIntrospection());
                     PrintWriter w = response.getWriter();
                     w.print(sb);
                     return;




More information about the Yanel-commits mailing list