Author: mdisabatino
Date: Fri Jul 19 14:14:57 2013
New Revision: 1504884

URL: http://svn.apache.org/r1504884
Log:
Merge from 1_1_X

Added:
    
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/FailureMessageModalPage.java
      - copied unchanged from r1504873, 
syncope/branches/1_1_X/console/src/main/java/org/apache/syncope/console/pages/FailureMessageModalPage.java
    
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/FailureMessageModalPage.html
      - copied unchanged from r1504873, 
syncope/branches/1_1_X/console/src/main/resources/org/apache/syncope/console/pages/FailureMessageModalPage.html
Modified:
    syncope/trunk/   (props changed)
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
    
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
    
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ResultStatusModalPage.html
    
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/PropagationHandler.java
    
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/AbstractPropagationTaskExecutor.java
    
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/DefaultPropagationHandler.java
    
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java

Propchange: syncope/trunk/
------------------------------------------------------------------------------
  Merged /syncope/branches/1_1_X:r1504417-1504873

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java?rev=1504884&r1=1504883&r2=1504884&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
 Fri Jul 19 14:14:57 2013
@@ -57,9 +57,9 @@ public class PropagationStatusTO extends
     private PropagationTaskExecStatus status;
     
     /**
-     * Propagation task execution message.
+     * Propagation task execution failure message.
      */
-    private String executionMessage;
+    private String failureReason;
 
     /**
      * After object getter.
@@ -136,18 +136,18 @@ public class PropagationStatusTO extends
     /**
      * Propagation execution message getter.
      *
-     * @return executionMessage.
+     * @return failureReason.
      */
-    public String getExecutionMessage() {
-        return executionMessage;
+    public String getFailureReason() {
+        return failureReason;
     }
 
     /**
-     * Propagation execution message setter.
+     * Propagation execution failure message setter.
      *
-     * @param executionMessage
+     * @param failureReason
      */
-    public void setExecutionMessage(final String executionMessage) {
-        this.executionMessage = executionMessage;
+    public void setFailureReason(final String failureReason) {
+        this.failureReason = failureReason;
     }
 }

Modified: 
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java?rev=1504884&r1=1504883&r2=1504884&view=diff
==============================================================================
--- 
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
 (original)
+++ 
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
 Fri Jul 19 14:14:57 2013
@@ -29,6 +29,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.to.AbstractAttributableTO;
 import org.apache.syncope.common.to.AttributeTO;
 import org.apache.syncope.common.to.ConnObjectTO;
@@ -40,6 +41,7 @@ import org.apache.syncope.console.common
 import org.apache.syncope.console.commons.Constants;
 import org.apache.syncope.console.commons.StatusUtils;
 import org.apache.wicket.Component;
+import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.behavior.Behavior;
@@ -164,6 +166,17 @@ public class ResultStatusModalPage exten
 
                     final Image image;
                     final String alt, title;
+                    final ModalWindow failureWindow = new 
ModalWindow("failureWindow");
+                    final AjaxLink<?> failureWindowLink = new 
AjaxLink<Void>("showFailureWindow") {
+
+                        private static final long serialVersionUID = 
-7978723352517770644L;
+
+                        @Override
+                        public void onClick(AjaxRequestTarget target) {
+                            failureWindow.show(target);
+                        }
+                    };
+
                     switch (propTO.getStatus()) {
 
                         case SUCCESS:
@@ -173,6 +186,8 @@ public class ResultStatusModalPage exten
                                     + Constants.PNG_EXT);
                             alt = "success icon";
                             title = "success";
+                            failureWindow.setVisible(false);
+                            failureWindowLink.setEnabled(false);
                             break;
 
                         default:
@@ -192,8 +207,30 @@ public class ResultStatusModalPage exten
                             tag.put("title", title);
                         }
                     });
+                    final FailureMessageModalPage executionFailureMessagePage;
+                    if (propTO.getFailureReason() != null) {
+                        executionFailureMessagePage = new 
FailureMessageModalPage(failureWindow.getContentId(), propTO.
+                                getFailureReason());
+                    } else {
+                        executionFailureMessagePage = new 
FailureMessageModalPage(failureWindow.getContentId(),
+                                StringUtils.EMPTY);
+                    }
+
+                    failureWindow.setPageCreator(new ModalWindow.PageCreator() 
{
+
+                        private static final long serialVersionUID = 
-7834632442532690940L;
 
-                    attrhead.add(image);
+                        @Override
+                        public Page createPage() {
+                            return executionFailureMessagePage;
+                        }
+                    });
+                    failureWindow.setCookieName("failureWindow");
+                    failureWindow.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
+                    //attrhead.add(image);
+                    failureWindowLink.add(image);
+                    attrhead.add(failureWindowLink);
+                    attrhead.add(failureWindow);
                 }
             };
             fragment.add(propRes);

Modified: 
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ResultStatusModalPage.html
URL: 
http://svn.apache.org/viewvc/syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ResultStatusModalPage.html?rev=1504884&r1=1504883&r2=1504884&view=diff
==============================================================================
--- 
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ResultStatusModalPage.html
 (original)
+++ 
syncope/trunk/console/src/main/resources/org/apache/syncope/console/pages/ResultStatusModalPage.html
 Fri Jul 19 14:14:57 2013
@@ -91,12 +91,16 @@ under the License.
       display: table-cell;
       width: 220px;
       height: 30px;
-      padding: 3px 0px 5px 0px;
+      padding: 10px 0px 5px 0px;
     }
 
     div#resource img{
       width: 12px;
       height: 12px;
+      position: relative;
+      left: 3px;
+      top: 1px;
+      opacity: 1;
     }
 
     div#attrhead {
@@ -106,8 +110,8 @@ under the License.
       height: 30px;
       padding: 3px 0px 5px 0px;
       text-align: center;
-      vertical-align: bottom;
-      font-size: 8px;
+      vertical-align: middle;
+      font-size: 11px;
     }
   </style>
 </wicket:head>
@@ -159,13 +163,18 @@ under the License.
       <div id="resource">
         <div>
           <span wicket:id="resource">[resource name]</span>
-          <img wicket:id="icon"/>
-        </div>
+          <a wicket:id="showFailureWindow" href="#">
+            <img wicket:id="icon"/>
+          </a>
+         
+          <div id="propagation">
+            <wicket:message key="propresult">[propagation result 
message]</wicket:message>
+            &nbsp;
+            <span wicket:id="propagation">[propagation result]</span>
+          </div>
+         
+          <div wicket:id="failureWindow"></div>
 
-        <div id="propagation">
-          <wicket:message key="propresult">[propagation result 
message]</wicket:message>
-          &nbsp;
-          <span wicket:id="propagation">[propagation result]</span>
         </div>
       </div>
 
@@ -184,13 +193,18 @@ under the License.
       <div id="resource">
         <div>
           <span wicket:id="resource">[resource name]</span>
-          <img wicket:id="icon"/>
-        </div>
+          <a wicket:id="showFailureWindow" href="#">
+            <img wicket:id="icon"/>
+          </a>
+
+          <div id="propagation">
+            <wicket:message key="propresult">[propagation result 
message]</wicket:message>
+            &nbsp;
+            <span wicket:id="propagation">[propagation result]</span>
+            <div wicket:id="failureWindow"></div>
 
-        <div id="propagation">
-          <wicket:message key="propresult">[propagation result 
message]</wicket:message>
-          &nbsp;
-          <span wicket:id="propagation">[propagation result]</span>
+          </div>
+         
         </div>
       </div>
     </div>

Modified: 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/PropagationHandler.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/PropagationHandler.java?rev=1504884&r1=1504883&r2=1504884&view=diff
==============================================================================
--- 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/PropagationHandler.java
 (original)
+++ 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/PropagationHandler.java
 Fri Jul 19 14:14:57 2013
@@ -32,9 +32,10 @@ public interface PropagationHandler {
      *
      * @param resourceName resource name.
      * @param execStatus propagation execution status.
+     * @param failureReason propagation execution failure message.
      * @param beforeObj retrieved connector object before operation execution.
      * @param afterObj retrieved connector object after operation execution.
      */
     void handle(String resourceName, PropagationTaskExecStatus execStatus,
-            String taskExecutionMessage, ConnectorObject beforeObj, 
ConnectorObject afterObj);
+            String failureReason, ConnectorObject beforeObj, ConnectorObject 
afterObj);
 }

Modified: 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/AbstractPropagationTaskExecutor.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/AbstractPropagationTaskExecutor.java?rev=1504884&r1=1504883&r2=1504884&view=diff
==============================================================================
--- 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/AbstractPropagationTaskExecutor.java
 (original)
+++ 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/AbstractPropagationTaskExecutor.java
 Fri Jul 19 14:14:57 2013
@@ -275,6 +275,7 @@ public abstract class AbstractPropagatio
         execution.setStatus(PropagationTaskExecStatus.CREATED.name());
 
         String taskExecutionMessage = null;
+        String failureReason = null;
 
         // Flag to state whether any propagation has been attempted
         Set<String> propagationAttempted = new HashSet<String>();
@@ -314,11 +315,17 @@ public abstract class AbstractPropagatio
 
             if (e instanceof ConnectorException && e.getCause() != null) {
                 taskExecutionMessage = e.getCause().getMessage();
+                failureReason = e.getMessage() + "\n\n Cause: " + 
e.getCause().getMessage().split("\n")[0];
             } else {
                 StringWriter exceptionWriter = new StringWriter();
                 exceptionWriter.write(e.getMessage() + "\n\n");
                 e.printStackTrace(new PrintWriter(exceptionWriter));
                 taskExecutionMessage = exceptionWriter.toString();
+                if (e.getCause() != null) {
+                    failureReason = e.getMessage() + "\n\n Cause: " + 
e.getCause().getMessage().split("\n")[0];
+                } else {
+                    failureReason = e.getMessage();
+                }
             }
 
             try {
@@ -362,12 +369,12 @@ public abstract class AbstractPropagatio
                 // this flush call is needed to generate a value for the 
execution id
                 taskDAO.flush();
             }
-            
+
             if (handler != null) {
                 handler.handle(
                         task.getResource().getName(),
                         
PropagationTaskExecStatus.valueOf(execution.getStatus()),
-                        taskExecutionMessage,
+                        failureReason,
                         beforeObj,
                         afterObj);
             }

Modified: 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/DefaultPropagationHandler.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/DefaultPropagationHandler.java?rev=1504884&r1=1504883&r2=1504884&view=diff
==============================================================================
--- 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/DefaultPropagationHandler.java
 (original)
+++ 
syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/DefaultPropagationHandler.java
 Fri Jul 19 14:14:57 2013
@@ -45,12 +45,12 @@ public class DefaultPropagationHandler i
 
     @Override
     public void handle(final String resource, final PropagationTaskExecStatus 
executionStatus,
-            final String taskExecutionMessage, final ConnectorObject 
beforeObj, final ConnectorObject afterObj) {
+            final String failureReason, final ConnectorObject beforeObj, final 
ConnectorObject afterObj) {
 
         final PropagationStatusTO propagation = new PropagationStatusTO();
         propagation.setResource(resource);
         propagation.setStatus(executionStatus);
-        propagation.setExecutionMessage(taskExecutionMessage);
+        propagation.setFailureReason(failureReason);
 
         if (beforeObj != null) {
             
propagation.setBeforeObj(connObjectUtil.getConnObjectTO(beforeObj));
@@ -75,7 +75,7 @@ public class DefaultPropagationHandler i
                 final PropagationStatusTO propagationStatusTO = new 
PropagationStatusTO();
                 
propagationStatusTO.setResource(propagationTask.getResource().getName());
                 
propagationStatusTO.setStatus(PropagationTaskExecStatus.FAILURE);
-                propagationStatusTO.setExecutionMessage(
+                propagationStatusTO.setFailureReason(
                         "Propagation error: " + failedResource + " primary 
resource failed to propagate.");
                 propagations.add(propagationStatusTO);
             }

Modified: 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java?rev=1504884&r1=1504883&r2=1504884&view=diff
==============================================================================
--- 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
 (original)
+++ 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
 Fri Jul 19 14:14:57 2013
@@ -242,7 +242,7 @@ public class UserTestITCase extends Abst
         userMod.addResourceToBeAdded("ws-target-resource-1");
 
         userTO = userService.update(userMod.getId(), userMod);
-        
assertNotNull(userTO.getPropagationStatusTOs().get(0).getExecutionMessage());
+        
assertNotNull(userTO.getPropagationStatusTOs().get(0).getFailureReason());
 
         // 4. update assigning a resource NOT forcing mandatory constraints
         // BUT not primary: must succeed
@@ -1817,7 +1817,7 @@ public class UserTestITCase extends Abst
         userTO.addResource("ws-target-resource-timeout");
         userTO = createUser(userTO);
         assertEquals("ws-target-resource-timeout", 
userTO.getPropagationStatusTOs().get(0).getResource());
-        
assertNotNull(userTO.getPropagationStatusTOs().get(0).getExecutionMessage());
+        
assertNotNull(userTO.getPropagationStatusTOs().get(0).getFailureReason());
         assertEquals(PropagationTaskExecStatus.UNSUBMITTED, 
userTO.getPropagationStatusTOs().get(0).getStatus());
     }
 
@@ -2213,7 +2213,7 @@ public class UserTestITCase extends Abst
         userTO = userService.update(userMod.getId(), userMod);
         assertEquals(RESOURCE_NAME_TESTDB, 
userTO.getResources().iterator().next());
         
assertFalse(userTO.getPropagationStatusTOs().get(0).getStatus().isSuccessful());
-        
assertNotNull(userTO.getPropagationStatusTOs().get(0).getExecutionMessage());
+        
assertNotNull(userTO.getPropagationStatusTOs().get(0).getFailureReason());
 
         // 3. request to change password only on testdb
         userMod = new UserMod();
@@ -2325,7 +2325,7 @@ public class UserTestITCase extends Abst
         userMod.addResourceToBeAdded("resource-testdb");
         userTO = userService.update(userMod.getId(), userMod);
         assertEquals("ws-target-resource-1", 
userTO.getPropagationStatusTOs().get(1).getResource());
-        
assertNotNull(userTO.getPropagationStatusTOs().get(1).getExecutionMessage());
+        
assertNotNull(userTO.getPropagationStatusTOs().get(1).getFailureReason());
         assertEquals(PropagationTaskExecStatus.UNSUBMITTED, 
userTO.getPropagationStatusTOs().get(1).getStatus());
     }
 


Reply via email to