[savara-commits] savara SVN: r676 - branches/experimental/2.0.x/integration/jboss/common/src/main/java/org/savara/validator/service.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Feb 15 18:29:24 EST 2011
Author: objectiser
Date: 2011-02-15 18:29:24 -0500 (Tue, 15 Feb 2011)
New Revision: 676
Modified:
branches/experimental/2.0.x/integration/jboss/common/src/main/java/org/savara/validator/service/ServiceValidatorService.java
Log:
Hook existing ServiceValidationManager as an ActivityValidator implementation.
Modified: branches/experimental/2.0.x/integration/jboss/common/src/main/java/org/savara/validator/service/ServiceValidatorService.java
===================================================================
--- branches/experimental/2.0.x/integration/jboss/common/src/main/java/org/savara/validator/service/ServiceValidatorService.java 2011-02-15 18:57:28 UTC (rev 675)
+++ branches/experimental/2.0.x/integration/jboss/common/src/main/java/org/savara/validator/service/ServiceValidatorService.java 2011-02-15 23:29:24 UTC (rev 676)
@@ -22,12 +22,16 @@
import org.savara.activity.ActivityNotifier;
import org.savara.activity.ActivityProcessor;
import org.savara.activity.ActivityProcessorFactory;
+import org.savara.activity.ActivityValidator;
import org.savara.activity.DefaultActivityProcessor;
import org.savara.activity.model.Activity;
+import org.savara.activity.model.InteractionActivity;
+import org.savara.activity.model.ProtocolAnalysis;
import org.savara.activity.notifier.jms.JMSActivityNotifier;
import org.savara.activity.util.ActivityModelUtil;
import org.savara.common.config.Configuration;
import org.savara.common.config.file.FileConfiguration;
+import org.savara.validator.Endpoint;
import org.savara.validator.ServiceValidator;
import org.savara.validator.ServiceValidatorManager;
import org.jboss.util.naming.NonSerializableFactory;
@@ -99,6 +103,10 @@
});
+ ActivityValidator validator=new SavaraActivityValidator();
+
+ dap.addActivityValidator(validator);
+
ActivityProcessorFactory.setActivityProcessor(dap);
}
@@ -164,4 +172,56 @@
logger.severe("Failed to unbind map: "+e);
}
}
+
+ public class SavaraActivityValidator implements ActivityValidator {
+
+ public void validate(Activity activity) {
+
+ if (activity instanceof InteractionActivity) {
+ InteractionActivity ia=(InteractionActivity)activity;
+ java.util.List<ServiceValidator> validators=null;
+ Endpoint endpoint=new Endpoint(ia.getDestinationType() != null ?
+ ia.getDestinationType() : ia.getDestinationAddress());
+
+ if (ia.isOutbound() == ia.isRequest()) {
+ validators = m_serviceValidatorManager.getOutputServiceValidators(endpoint);
+ } else {
+ validators = m_serviceValidatorManager.getInputServiceValidators(endpoint);
+ }
+
+ process(validators, ia);
+ }
+ }
+
+ public void process(java.util.List<ServiceValidator> validators, InteractionActivity ia) {
+
+ if (validators != null && validators.size() > 0 && ia.getParameter().size() == 1) {
+
+ for (int i=0; validators != null &&
+ i < validators.size(); i++) {
+ boolean validated=false;
+
+ try {
+ if (ia.isOutbound()) {
+ validators.get(i).messageSent(ia.getParameter().get(0).getType(),
+ ia.getParameter().get(0).getValue());
+ } else {
+ validators.get(i).messageReceived(ia.getParameter().get(0).getType(),
+ ia.getParameter().get(0).getValue());
+ }
+ validated = true;
+ } catch(Exception t) {
+ // Ignore
+ }
+
+ ProtocolAnalysis pa=new ProtocolAnalysis();
+ pa.setProtocol(validators.get(i).getValidatorName().getModelName());
+ pa.setRole(validators.get(i).getValidatorName().getRole());
+ pa.setExpected(validated);
+
+ ia.getAnalysis().add(pa);
+ }
+ }
+ }
+ }
}
More information about the savara-commits
mailing list