Author: sshyrkov
Date: Mon Sep 24 14:40:22 2007
New Revision: 18629

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18629&repname=
=3Djahia
Log:
JAHIA-2353: NStep Worflow : Impossible to select it anymore
http://www.jahia.net/jira/browse/JAHIA-2353
Resolution: thread-safe localization implemented for External workflow

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/M=
anageWorkflow.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/W=
orkflowHelper.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
ExternalWorkflow.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowEventListener.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/workflow/nstep/NSt=
epWorkflow.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/work=
flow/AdvancedWorkflowEngine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/workflow/AdvancedWorkflowEngine.jav=
a&rev=3D18629&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/A=
dvancedWorkflowEngine.java Mon Sep 24 14:40:22 2007
@@ -480,7 +480,7 @@
                         while (iterator.hasNext()) {
                             final String option =3D (String) iterator.next=
();
                             String key =3D entry.getWorkflowName() + "." +=
 entry.getProcessId() + "." + option;
-                            availableOptions.add(new ActionEntry(key, work=
flow.getActionName(processId, option), processId, workflow.getProcessName(p=
rocessId), key));
+                            availableOptions.add(new ActionEntry(key, work=
flow.getActionName(processId, option, jParams.getLocale()), processId, work=
flow.getProcessName(processId, jParams.getLocale()), key));
                         }
                     }
                 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/work=
flow/ManageWorkflow.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/workflow/ManageWorkflow.java&rev=3D=
18629&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/M=
anageWorkflow.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/M=
anageWorkflow.java Mon Sep 24 14:40:22 2007
@@ -125,7 +125,7 @@
 =

         int workflowMode;
 =

-        Map workflowNames =3D service.getExternalWorkflowNames();
+        Map workflowNames =3D service.getExternalWorkflowNames(jParams.get=
Locale());
 =

         engineMap.put("workflowNames", workflowNames);
 =

@@ -162,16 +162,13 @@
             }
 =

             final ExternalWorkflow workflow =3D service.getExternalWorkflo=
w(workflowName);
-            if (workflow !=3D null) {
-                workflow.startSession(jParams.getLocale());
-            }
             String process =3D null;
             if (workflowName !=3D null && workflow !=3D null) {
                 final Collection availableProcesses =3D workflow.getAvaila=
bleProcesses();
                 final Map processesWithNames =3D new LinkedHashMap();
                 for (final Iterator iterator =3D availableProcesses.iterat=
or(); iterator.hasNext();) {
                     final String s =3D (String) iterator.next();
-                    processesWithNames.put(s, workflow.getProcessName(s));
+                    processesWithNames.put(s, workflow.getProcessName(s, j=
Params.getLocale()));
                 }
                 engineMap.put("processes", processesWithNames);
 =

@@ -213,7 +210,7 @@
                     } else {
                         roleMembersList.add(Collections.EMPTY_SET);
                     }
-                    rolesWithNames.put(role, workflow.getActionName(proces=
s, role));
+                    rolesWithNames.put(role, workflow.getActionName(proces=
s, role, jParams.getLocale()));
                 }
 =

                 List unlockMembersList =3D new ArrayList();
@@ -253,9 +250,6 @@
                 engineMap.put("unlockRoles", unlockMembersList);
             }
 =

-            if (workflow !=3D null) {
-                workflow.endSession();
-            }
         } else {
             if (!LicenseActionChecker.isAuthorizedByLicense("org.jahia.eng=
ines.workflow.ExternalWorkflows", 0)) {
                 workflowNames =3D new HashMap();
@@ -430,7 +424,6 @@
                 if (workflowName !=3D null) {
                     engineMap.put("workflowName", workflowName);
                     final ExternalWorkflow workflow =3D service.getExterna=
lWorkflow(workflowName);
-                    workflow.startSession(jParams.getLocale());
                     final Collection names =3D workflow.getAvailableProces=
ses();
                     if (process !=3D null && names.contains(process)) {
                         if (service.hasChanged((ContentObjectKey) object.g=
etObjectKey(),
@@ -446,7 +439,6 @@
                             result =3D true;
                         }
                     }
-                    workflow.endSession();
                 }
             } catch (Throwable e) {
                 logger.error("Error during add operation of a new element =
we must flush all caches to ensure integrity between database and viewing");

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/work=
flow/WorkflowHelper.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/workflow/WorkflowHelper.java&rev=3D=
18629&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/W=
orkflowHelper.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/workflow/W=
orkflowHelper.java Mon Sep 24 14:40:22 2007
@@ -18,12 +18,10 @@
 =

 import org.jahia.content.ObjectKey;
 import org.jahia.services.workflow.ExternalWorkflow;
-import org.jahia.services.workflow.WorkflowService;
 import org.jahia.params.ProcessingContext;
 import org.jahia.registries.ServicesRegistry;
 =

 import java.util.*;
-import java.lang.reflect.Array;
 =

 /**
  * Created by IntelliJ IDEA.
@@ -37,13 +35,11 @@
     private Map entries;
     private List allOptions =3D null;
     private Set engines;
-    private ProcessingContext jParams;
     private List orderedKeys;
 =

     public WorkflowHelper(ProcessingContext jParams) {
         this.entries =3D new HashMap();
         this.engines =3D new HashSet();
-        this.jParams =3D jParams;
         this.orderedKeys =3D new ArrayList();
     }
 =

@@ -151,7 +147,6 @@
     private void addEngine(ExternalWorkflow engine, ProcessingContext jPar=
ams) {
         if (!engines.contains(engine)) {
             engines.add(engine);
-            engine.startSession(jParams.getLocale());
         }
     }
 =

@@ -160,10 +155,7 @@
     }
 =

     public void release() {
-        for (Iterator iterator =3D engines.iterator(); iterator.hasNext();=
) {
-            ExternalWorkflow externalWorkflow =3D (ExternalWorkflow) itera=
tor.next();
-            externalWorkflow.endSession();
-        }
+        // do nothing
     }
 =

     public String toString() {

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/wor=
kflow/ExternalWorkflow.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/workflow/ExternalWorkflow.java&rev=
=3D18629&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
ExternalWorkflow.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
ExternalWorkflow.java Mon Sep 24 14:40:22 2007
@@ -36,16 +36,25 @@
 public interface ExternalWorkflow {
 =

 =

-    void startSession();
-
-    void startSession(Locale locale);
-
-    void endSession();
+    /**
+     * Returns localized message using the specified locale and the workfl=
ow's
+     * resource bundle.
+     * =

+     * @param messageKey
+     *            the message key
+     * @param locale
+     *            current locale
+     * @return localized message using the specified locale and the workfl=
ow's
+     *         resource bundle
+     */
+    String localize(String messageKey, Locale locale);
 =

     /**
-     * Get the name of the workflow engine, as it will be displayed in jah=
ia engine
+     * Get the name of the workflow engine, as it will be displayed in jah=
ia engine.
+     * @param locale current locale
+     * @return localized  workflow name
      */
-    String getDisplayName();
+    String getDisplayName(Locale locale);
 =

     /**
      * Get a list of all processes that can be applied to jahia workflow
@@ -55,9 +64,12 @@
     Collection getAvailableProcesses();
 =

     /**
-     * Get the name of the process
+     * Get the name of the process.
+     * @param processName the name of the process
+     * @param locale current locale
+     * @return localized process name
      */
-    String getProcessName(String processName);
+    String getProcessName(String processName, Locale locale);
 =

     /**
      * Start a new instance of a process. This is called on the first modi=
fication of a jahia object.
@@ -97,7 +109,7 @@
 =

     Collection getAvailableActions(String processName, String objectKey, S=
tring languageCode, ProcessingContext jParams);
 =

-    String getActionName(String processName, String actionName);
+    String getActionName(String processName, String actionName, Locale loc=
ale);
 =

     String getParameterForm(String processName, String actionName, Process=
ingContext jParams);
 =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/wor=
kflow/WorkflowEventListener.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/workflow/WorkflowEventListener.jav=
a&rev=3D18629&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowEventListener.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowEventListener.java Mon Sep 24 14:40:22 2007
@@ -192,7 +192,6 @@
                     String name =3D service.getInheritedExternalWorkflowNa=
me(mainObject);
                     String processId =3D service.getInheritedExternalWorkf=
lowProcessId(mainObject);
                     ExternalWorkflow workflow =3D service.getExternalWorkf=
low(name);
-                    workflow.startSession(jParams.getLocale());
                     synchronized(this) {
                         if (languageCode.equals(ContentObject.SHARED_LANGU=
AGE)) {
                             Vector allSiteLangs =3D ServicesRegistry.getIn=
stance().getJahiaSitesService().getSite(object.getSiteID()).getLanguageSett=
ings();
@@ -211,7 +210,6 @@
                             }
                         }
                     }
-                    workflow.endSession();
                     break;
             }
         } catch(JahiaPageNotFoundException e) {

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/wor=
kflow/WorkflowService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/workflow/WorkflowService.java&rev=
=3D18629&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/workflow/=
WorkflowService.java Mon Sep 24 14:40:22 2007
@@ -933,13 +933,14 @@
     /**
      * Get the list of all available external workflow
      *
+     * @param locale current display locale
      * @return map
      */
-    public Map getExternalWorkflowNames() {
+    public Map getExternalWorkflowNames(Locale locale) {
         Map results =3D new HashMap();
         for (Iterator iterator =3D externals.keySet().iterator(); iterator=
.hasNext();) {
             String name =3D (String) iterator.next();
-            String displayName =3D getExternalWorkflow(name).getDisplayNam=
e();
+            String displayName =3D getExternalWorkflow(name).getDisplayNam=
e(locale);
             results.put(name, displayName);
         }
         return results;
@@ -1445,4 +1446,56 @@
         return externalWorkflowStep > 0 ? languageState * 100
                 + externalWorkflowStep : languageState;
     }
+
+    /**
+     * Returns the string representation of the extended workflow status, =
in the form <code>xyz</code>, where <code>x</code> is the workflow mode,
+     * <code>y</code> - the language state or a next step number in case o=
f N-Step worklfow and <code>z</code> is <code>"1"</code> in case the conten=
t object can be edited, or <code>"0"</code> otherwise. =

+     * @param contentObject the content object
+     * @param jParams current processing context
+     * @return the string representation of the extended workflow status, =
in the form <code>xyz</code>, where <code>x</code> is the workflow mode,
+     * <code>y</code> - the language state or a next step number in case o=
f N-Step worklfow and <code>z</code> is <code>"1"</code> in case the conten=
t object can be edited, or <code>"0"</code> otherwise
+     * @throws Exception in case of an error
+     */
+    public String getExtendedWorkflowState(ContentObject contentObject,
+            ProcessingContext jParams) throws Exception {
+
+        int workflowMode =3D getInheritedMode(contentObject);
+
+        final Map languagesStates =3D getLanguagesStates(contentObject);
+        String language =3D jParams.getLocale().toString();
+        Integer languageState =3D (Integer) languagesStates.get(language);
+        final Integer sharedLanguageState =3D (Integer) languagesStates
+                .get(ContentObject.SHARED_LANGUAGE);
+        if (languageState !=3D null && languageState.intValue() !=3D -1) {
+            if (sharedLanguageState !=3D null
+                    && languageState.intValue() < sharedLanguageState
+                            .intValue()) {
+                languageState =3D sharedLanguageState;
+            }
+        } else if (languageState =3D=3D null) {
+            languageState =3D sharedLanguageState;
+        }
+
+        int workflowState =3D (languageState !=3D null) ? languageState.in=
tValue()
+                : 1;
+
+        boolean isEditable =3D EntryLoadRequest.WAITING_WORKFLOW_STATE !=
=3D workflowState;
+
+        if (WorkflowService.EXTERNAL =3D=3D workflowMode) {
+            if (workflowState >=3D EntryLoadRequest.STAGING_WORKFLOW_STATE=
) {
+                workflowState =3D getExternalWorkflowNextStep(contentObjec=
t,
+                        language);
+
+            } else {
+                workflowState =3D 0;
+            }
+        }
+
+        if (isEditable) {
+            // TODO additionally check for other languages
+        }
+
+        return new StringBuffer(3).append(workflowMode).append(workflowSta=
te)
+                .append(isEditable ? "1" : "0").toString();
+    }
 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/workflow/nst=
ep/NStepWorkflow.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/workflow/nstep/NStepWorkflow.java&rev=3D186=
29&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/workflow/nstep/NSt=
epWorkflow.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/workflow/nstep/NSt=
epWorkflow.java Mon Sep 24 14:40:22 2007
@@ -144,11 +144,10 @@
 // ------------------------------ FIELDS ------------------------------
 =

     private final Log log =3D LogFactory.getLog(NStepWorkflow.class);
-    private org.jahia.workflow.nstep.service.WorkflowHistoryManager histor=
yManager =3D null;
-    private org.jahia.workflow.nstep.service.WorkflowInstanceManager insta=
nceManager =3D null;
-    private org.jahia.workflow.nstep.service.WorkflowManager workflowManag=
er =3D null;
+    private WorkflowHistoryManager historyManager =3D null;
+    private WorkflowInstanceManager instanceManager =3D null;
+    private WorkflowManager workflowManager =3D null;
     private Properties properties =3D null;
-    private ResourceBundle resourceBundle;
     private String propertiesRelativePath =3D "/WEB-INF/etc/services/workf=
low/nstep.properties";
     private static final String ROLLBACK_ACTION_NAME =3D "Rollback to prev=
ious step";
     private static final String ROLLBACK_AUTHOR_ACTION_NAME =3D "Rollback =
to author";
@@ -233,13 +232,11 @@
     /**
      * Get the name of the workflow engine, as it will be displayed in jah=
ia engine
      *
+     * @param locale current locale
      * @return localized name of the workflow engine
      */
-    public String getDisplayName() {
-        if (resourceBundle =3D=3D null) {
-            this.resourceBundle =3D ResourceBundle.getBundle("nstep-workfl=
owResources", Locale.getDefault());
-        }
-        return resourceBundle.getString("worklow.name");
+    public String getDisplayName(Locale locale) {
+        return localize("worklow.name", locale);
     }
 =

 // ------------------------ INTERFACE METHODS ------------------------
@@ -247,33 +244,13 @@
 // --------------------- Interface ExternalWorkflow ---------------------
 =

     /**
-     * [EMAIL PROTECTED]
-     */
-    public void startSession() {
-        startSession(Locale.getDefault());
-    }
-
-    /**
-     * [EMAIL PROTECTED]
-     */
-    public void startSession(Locale locale) {
-        this.resourceBundle =3D ResourceBundle.getBundle("nstep-workflowRe=
sources", locale);
-    }
-
-    /**
-     * [EMAIL PROTECTED]
-     */
-    public void endSession() {
-    }
-
-    /**
      * Get the name of the process
      *
+     * @param locale current locale
      * @return the localized name of the process
      */
-    public String getProcessName(String processName) {
-        String procName =3D resourceBundle.getString(
-                "process." + trimActionName(processName).toLowerCase() + "=
.display.name");
+    public String getProcessName(String processName, Locale locale) {
+        String procName =3D localize("process." + trimActionName(processNa=
me).toLowerCase() + ".display.name", locale);
         if (procName =3D=3D null) {
             procName =3D processName;
         }
@@ -483,9 +460,9 @@
     /**
      * [EMAIL PROTECTED]
      */
-    public String getActionName(String processName, String actionName) {
-        return resourceBundle.getString("process." + trimActionName(proces=
sName.toLowerCase()) + ".step." +
-                trimActionName(actionName.toLowerCase()));
+    public String getActionName(String processName, String actionName, Loc=
ale locale) {
+        return localize("process." + trimActionName(processName.toLowerCas=
e()) + ".step." +
+                trimActionName(actionName.toLowerCase()), locale);
     }
 =

     /**
@@ -496,7 +473,7 @@
      */
     public String getParameterForm(String processName, String actionName, =
ProcessingContext jParams) {
         // We don't need extra information
-        String comment =3D resourceBundle.getString("comment.form.label");
+        String comment =3D localize("comment.form.label", jParams.getLocal=
e());
         if (comment =3D=3D null) {
             comment =3D "comment";
         }
@@ -505,7 +482,7 @@
                 "<textarea class=3D\"input\" name=3D\"nstepcomment\" cols=
=3D\"80\" rows=3D\"4\"></textarea>");
         String productionPresence;
         try {
-            productionPresence =3D resourceBundle.getString("process." + t=
rimActionName(processName).toLowerCase() + ".last.step.production.present");
+            productionPresence =3D localize("process." + trimActionName(pr=
ocessName).toLowerCase() + ".last.step.production.present", jParams.getLoca=
le());
         } catch (MissingResourceException e) {
             productionPresence =3D Boolean.FALSE.toString();
         }
@@ -523,18 +500,18 @@
                     // ensure we only show the site job
                     String jobNamePrefix =3D ProductionJob.JOB_NAME_PREFIX=
 + jParams.getSiteID();
                     StringBuffer options =3D new StringBuffer();
-                    options.append("<option value=3D\"none\" selected>").a=
ppend(resourceBundle.getString("workflow.last.step.production.no")).append(=
"</option>");
+                    options.append("<option value=3D\"none\" selected>").a=
ppend(localize("workflow.last.step.production.no", jParams.getLocale())).ap=
pend("</option>");
                     int nbOptions =3D 0;
                     for (int i =3D 0; i < jobNames.length; i++) {
                         String jobName =3D jobNames[i];
                         if (jobName.startsWith(jobNamePrefix)) {
                             nbOptions++;
                             JobDetail jobDetail =3D schedulerServ.getJobDe=
tail(jobName, BackgroundJob.getGroupName(ProductionJob.class));
-                            options.append("<option value=3D\"").append(jo=
bName).append("\">").append(resourceBundle.getString("workflow.last.step.pr=
oduction.job").replaceAll("\\$\\{jobName\\}", (String) jobDetail.getJobData=
Map().get(ProductionJob.ALIAS_NAME))).append("</option>");
+                            options.append("<option value=3D\"").append(jo=
bName).append("\">").append(localize("workflow.last.step.production.job", j=
Params.getLocale()).replaceAll("\\$\\{jobName\\}", (String) jobDetail.getJo=
bDataMap().get(ProductionJob.ALIAS_NAME))).append("</option>");
                         }
                     }
                     if (nbOptions > 0) {
-                        s.append("<p>").append(resourceBundle.getString("w=
orkflow.last.step.production.label")).append("</p>");
+                        s.append("<p>").append(localize("workflow.last.ste=
p.production.label", jParams.getLocale())).append("</p>");
                         s.append("<select name=3D\"nstepJobNamesToActivate=
\" multiple size=3D\"").append(nbOptions < 5 ? nbOptions + 1 : 6).append("\=
">");
                         s.append(options.toString());
                         s.append("</select>");
@@ -1216,5 +1193,11 @@
         // we return false in order to prevent updated object to go back t=
o the first workflow step.
         return false;
     }
-    =

+
+    public String localize(String messageKey, Locale locale) {
+        ResourceBundle resourceBundle =3D ResourceBundle.getBundle(
+                "nstep-workflowResources", locale);
+        return resourceBundle !=3D null ? resourceBundle.getString(message=
Key)
+                : null;
+    }
 }

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to