subscribe.getConsumerReference(), "consumer");
protected static String AddSubscription(Subscribe subscribeRequest) { String s = UUID.randomUUID().toString(); SubscriptionInfo info = new SubscriptionInfo(); info.data = subscribeRequest; info.callback = WSNUtility.getWSAAddress(subscribeRequest.getConsumerReference()); info.subid = s; info.topics = new ArrayList<String>(); for (int i = 0; i < subscribeRequest.getFilter().getAny().size(); i++) { if ((subscribeRequest.getFilter().getAny().get(i) instanceof JAXBElement)) { JAXBElement<TopicExpressionType> te = (JAXBElement<TopicExpressionType>) subscribeRequest.getFilter().getAny().get(i); info.topics = WSNUtility.topicExpressionToList(te.getValue()); } } currentSubscriptions.put(s, info); log.log(Level.INFO, "adding subscription " + info.subid + " topics " + WSNUtility.listStringtoString(info.topics) + " to address " + info.callback); return s; }
@Override protected void validateSubscription(Subscribe subscribeRequest) //CHECKSTYLE:OFF - WS-Notification spec throws a lot of faults throws InvalidFilterFault, InvalidMessageContentExpressionFault, InvalidProducerPropertiesExpressionFault, InvalidTopicExpressionFault, SubscribeCreationFailedFault, TopicExpressionDialectUnknownFault, TopicNotSupportedFault, UnacceptableInitialTerminationTimeFault, UnsupportedPolicyRequestFault, UnrecognizedPolicyRequestFault { //CHECKSTYLE:ON super.validateSubscription(subscribeRequest); // TODO: implement raw notifications if (useRaw) { SubscribeCreationFailedFaultType fault = new SubscribeCreationFailedFaultType(); throw new SubscribeCreationFailedFault("Raw notifications are not supported", fault); } try { consumer = WSNHelper.getInstance().getPort(subscribeRequest.getConsumerReference(), NotificationConsumer.class); } catch (Exception e) { SubscribeCreationFailedFaultType fault = new SubscribeCreationFailedFaultType(); throw new SubscribeCreationFailedFault("Unable to resolve consumer reference endpoint", fault, e); } }
if (subscribeRequest.getConsumerReference() == null) { SubscribeCreationFailedFault iff = new SubscribeCreationFailedFault("Invalid callback address.", new SubscribeCreationFailedFaultType()); throw iff;
consumerReference = subscribeRequest.getConsumerReference();