Commit f40f1e3207f45771bec5858afabb8f09544ab511

Authored by Dancovich
1 parent 911c265c
Exists in master

Convertidas exceções do demoiselle em exceções do padrão JMX, para

evitar erros de ClassNotFoundException quando um cliente remoto tenta
exibir uma exceção personalizada.
impl/extension/jmx/src/main/java/br/gov/frameworkdemoiselle/internal/DynamicMBeanProxy.java
@@ -58,6 +58,8 @@ import br.gov.frameworkdemoiselle.internal.management.ManagedType.FieldDetail; @@ -58,6 +58,8 @@ import br.gov.frameworkdemoiselle.internal.management.ManagedType.FieldDetail;
58 import br.gov.frameworkdemoiselle.internal.management.ManagedType.MethodDetail; 58 import br.gov.frameworkdemoiselle.internal.management.ManagedType.MethodDetail;
59 import br.gov.frameworkdemoiselle.internal.management.ManagedType.ParameterDetail; 59 import br.gov.frameworkdemoiselle.internal.management.ManagedType.ParameterDetail;
60 import br.gov.frameworkdemoiselle.internal.management.Management; 60 import br.gov.frameworkdemoiselle.internal.management.Management;
  61 +import br.gov.frameworkdemoiselle.management.ManagedAttributeNotFoundException;
  62 +import br.gov.frameworkdemoiselle.management.ManagedInvokationException;
61 import br.gov.frameworkdemoiselle.stereotype.ManagementController; 63 import br.gov.frameworkdemoiselle.stereotype.ManagementController;
62 import br.gov.frameworkdemoiselle.util.Beans; 64 import br.gov.frameworkdemoiselle.util.Beans;
63 import br.gov.frameworkdemoiselle.util.ResourceBundle; 65 import br.gov.frameworkdemoiselle.util.ResourceBundle;
@@ -95,7 +97,21 @@ public class DynamicMBeanProxy implements DynamicMBean { @@ -95,7 +97,21 @@ public class DynamicMBeanProxy implements DynamicMBean {
95 } 97 }
96 98
97 Management manager = Beans.getReference(Management.class); 99 Management manager = Beans.getReference(Management.class);
98 - return manager.getProperty(managedType, attribute); 100 +
  101 + try{
  102 + return manager.getProperty(managedType, attribute);
  103 + }
  104 + catch(DemoiselleException de){
  105 + if (ManagedAttributeNotFoundException.class.isInstance(de)){
  106 + throw new AttributeNotFoundException(de.getMessage());
  107 + }
  108 + else if (ManagedInvokationException.class.isInstance(de)){
  109 + throw new MBeanException(new Exception(de.getMessage()));
  110 + }
  111 + else{
  112 + throw de;
  113 + }
  114 + }
99 } 115 }
100 116
101 @Override 117 @Override
@@ -108,7 +124,21 @@ public class DynamicMBeanProxy implements DynamicMBean { @@ -108,7 +124,21 @@ public class DynamicMBeanProxy implements DynamicMBean {
108 } 124 }
109 125
110 Management manager = Beans.getReference(Management.class); 126 Management manager = Beans.getReference(Management.class);
111 - manager.setProperty(managedType, attribute.getName(), attribute.getValue()); 127 +
  128 + try{
  129 + manager.setProperty(managedType, attribute.getName(), attribute.getValue());
  130 + }
  131 + catch(DemoiselleException de){
  132 + if (ManagedAttributeNotFoundException.class.isInstance(de)){
  133 + throw new AttributeNotFoundException(de.getMessage());
  134 + }
  135 + else if (ManagedInvokationException.class.isInstance(de)){
  136 + throw new MBeanException(new Exception(de.getMessage()));
  137 + }
  138 + else{
  139 + throw de;
  140 + }
  141 + }
112 } 142 }
113 143
114 @Override 144 @Override
@@ -161,7 +191,13 @@ public class DynamicMBeanProxy implements DynamicMBean { @@ -161,7 +191,13 @@ public class DynamicMBeanProxy implements DynamicMBean {
161 } 191 }
162 192
163 Management manager = Beans.getReference(Management.class); 193 Management manager = Beans.getReference(Management.class);
164 - return manager.invoke(managedType, actionName, params); 194 +
  195 + try{
  196 + return manager.invoke(managedType, actionName, params);
  197 + }
  198 + catch(DemoiselleException de){
  199 + throw new MBeanException(new Exception(de.getMessage()));
  200 + }
165 } 201 }
166 202
167 /** 203 /**