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 58 import br.gov.frameworkdemoiselle.internal.management.ManagedType.MethodDetail;
59 59 import br.gov.frameworkdemoiselle.internal.management.ManagedType.ParameterDetail;
60 60 import br.gov.frameworkdemoiselle.internal.management.Management;
  61 +import br.gov.frameworkdemoiselle.management.ManagedAttributeNotFoundException;
  62 +import br.gov.frameworkdemoiselle.management.ManagedInvokationException;
61 63 import br.gov.frameworkdemoiselle.stereotype.ManagementController;
62 64 import br.gov.frameworkdemoiselle.util.Beans;
63 65 import br.gov.frameworkdemoiselle.util.ResourceBundle;
... ... @@ -95,7 +97,21 @@ public class DynamicMBeanProxy implements DynamicMBean {
95 97 }
96 98  
97 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 117 @Override
... ... @@ -108,7 +124,21 @@ public class DynamicMBeanProxy implements DynamicMBean {
108 124 }
109 125  
110 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 144 @Override
... ... @@ -161,7 +191,13 @@ public class DynamicMBeanProxy implements DynamicMBean {
161 191 }
162 192  
163 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 /**
... ...