SynapseSubscription subscription = new SynapseSubscription(); subscription.setAddressUrl(mc.getTo().getAddress()); OMElement elem = mc.getEnvelope().getHeader().getFirstChildWithName(IDENTIFIER); String id = elem.getText(); subscription.setId(id); return subscription;
if (log.isDebugEnabled()) { log.debug("ReNew request recived for SynapseSubscription ID : " + subscription.getId()); String subID = subscription.getId(); if (subID != null) { if (subscriptionManager.renew(subscription)) { subscription.getId()); subscription.getErrorCode(), subscription.getErrorSubCode(), subscription.getErrorReason(), ""); dispatchResponse(soapEnvelope, EventingConstants.WSA_FAULT, mc, true);
private static void setExpirationFault(SynapseSubscription subscription) { subscription.setErrorCode(EventingConstants.WSE_FAULT_CODE_SENDER); subscription.setErrorSubCode("InvalidExpirationTime"); subscription.setErrorReason("The expiration time requested is invalid"); subscription.setId(null); }
public SynapseSubscription(String deliveryMode) { this.setId(UIDGenerator.generateURNString()); this.setDeliveryMode(deliveryMode); }
public SynapseSubscription() { this.setId(UIDGenerator.generateURNString()); this.setDeliveryMode(EventingConstants.WSE_DEFAULT_DELIVERY_MODE); SubscriptionData subscriptionData = new SubscriptionData(); subscriptionData.setProperty(SynapseEventingConstants.STATIC_ENTRY, "false"); this.setSubscriptionData(subscriptionData); }
for (Iterator iterator = elem.getChildrenWithName(SUBSCRIPTION_QNAME); iterator.hasNext();) { SynapseSubscription synapseSubscription = new SynapseSubscription(); OMElement elmSubscription = (OMElement) iterator.next(); synapseSubscription.setId(elmSubscription.getAttribute(ID_QNAME).getAttributeValue()); synapseSubscription.setFilterDialect(dialectAttr.getAttributeValue()); synapseSubscription.setFilterValue(sourceAttr.getAttributeValue()); } else { handleException( OMAttribute uriAttr = elmAddress.getAttribute(EP_URI_QNAME); if (uriAttr != null) { synapseSubscription.setEndpointUrl(uriAttr.getAttributeValue()); synapseSubscription.setAddressUrl(uriAttr.getAttributeValue()); } else { handleException("Error in creating static subscription. URI not defined"); try { if (elmExpires.getText().startsWith("P")) { synapseSubscription.setExpires(ConverterUtil .convertToDuration(elmExpires.getText()).getAsCalendar()); } else { synapseSubscription .setExpires(ConverterUtil.convertToDateTime(elmExpires.getText())); synapseSubscription.setExpires(null); synapseSubscription.setStaticEntry(true);
notifyToElem = deliveryElem.getFirstChildWithName(NOTIFY_TO_QNAME); if (notifyToElem != null) { subscription = new SynapseSubscription( EventingConstants.WSE_DEFAULT_DELIVERY_MODE); subscription.setAddressUrl(notifyToElem.getFirstElement().getText()); subscription.setEndpointUrl(notifyToElem.getFirstElement().getText()); subscription.setSubManUrl(mc.getTo().getAddress()); OMAttribute dialectAttr = filterElem.getAttribute(ATT_DIALECT); if (dialectAttr != null && dialectAttr.getAttributeValue() != null) { subscription.setFilterDialect(dialectAttr.getAttributeValue()); subscription.setFilterValue(filterElem.getText()); } else { handleException("Error in creating subscription. Filter dialect not defined"); if ((isValidDate(expiryElem.getText(), calendarExpires)) && (calendarNow.before(calendarExpires))) { subscription.setExpires(calendarExpires); } else { setExpirationFault(subscription);
public void renewTest() { Date date = new Date(System.currentTimeMillis() + 3600000 * 2); Calendar cal = Calendar.getInstance(); cal.setTime(date); String message = "<wse:Renew xmlns:wse=\"http://schemas.xmlsoap.org/ws/2004/08/eventing\">\n" + " <wse:Expires>" + ConverterUtil.convertToString(cal) + "</wse:Expires>\n" + "</wse:Renew>"; try { MessageContext msgCtx = createMessageContext(message, EventingConstants.WSE_RENEW); QName qname = new QName(EventingConstants.WSE_EVENTING_NS, EventingConstants.WSE_EN_IDENTIFIER, "wse"); TestUtils.addSOAPHeaderBlock(msgCtx, qname, id); source.receive(msgCtx); } catch (Exception ignored) { } try { assertEquals(1, subMan.getSubscriptions().size()); SynapseSubscription s = (SynapseSubscription) subMan.getSubscription(this.id); assertEquals(SUB_MAN_URL, s.getSubManUrl()); assertEquals(ADDR_URL, s.getAddressUrl()); assertEquals(FILTER_DIALECT, s.getFilterDialect()); assertEquals(FILTER, s.getFilterValue()); assertEquals(date, s.getExpires().getTime()); } catch (EventException e) { fail("Eventing exception occured while accessing the subscription manager"); } }
public void testRenewResponse() { String id = UIDGenerator.generateURNString(); String addressUrl = "http://synapse.test.com/eventing/sunscriptions"; Date date = new Date(System.currentTimeMillis() + 3600000); Calendar cal = Calendar.getInstance(); cal.setTime(date); SynapseSubscription sub = new SynapseSubscription(); sub.setId(id); sub.setSubManUrl(addressUrl); sub.setExpires(cal); String expected = "<wse:RenewResponse xmlns:wse=\"http://schemas.xmlsoap.org/ws/2004/08/eventing\">" + "<wse:Expires>" + ConverterUtil.convertToString(cal) + "</wse:Expires>" + "</wse:RenewResponse>"; try { MessageContext msgCtx = TestUtils.getAxis2MessageContext("<empty/>", null). getAxis2MessageContext(); ResponseMessageBuilder builder = new ResponseMessageBuilder(msgCtx); SOAPEnvelope env = builder.genRenewSubscriptionResponse(sub); OMElement resultOm = env.getBody().getFirstElement(); OMElement expectedOm = AXIOMUtil.stringToOM(expected); assertTrue(compare(expectedOm, resultOm)); } catch (Exception e) { fail("Error while constructing the test message context: " + e.getMessage()); } }
SynapseSubscription subscription = new SynapseSubscription(); OMElement elem = mc.getEnvelope().getHeader().getFirstChildWithName(IDENTIFIER); String id = elem.getText(); subscription.setId(id); subscription.setAddressUrl(mc.getTo().getAddress()); OMElement renewElem = mc.getEnvelope().getBody().getFirstChildWithName(RENEW); if (renewElem != null) { if ((isValidDate(expiryElem.getText(), calendarExpires)) && (calendarNow.before(calendarExpires))) { subscription.setExpires(calendarExpires); } else { setExpirationFault(subscription); subscription.setExpires(calendarExpires); } else { setExpirationFault(subscription);
public void testUnsubscriptionResponse() { String id = UIDGenerator.generateURNString(); String addressUrl = "http://synapse.test.com/eventing/sunscriptions"; SynapseSubscription sub = new SynapseSubscription(); sub.setId(id); sub.setSubManUrl(addressUrl); String expected = "<wse:UnsubscribeResponse xmlns:wse=\"http://schemas.xmlsoap.org/ws/2004/08/eventing\"/>"; try { MessageContext msgCtx = TestUtils.getAxis2MessageContext("<empty/>", null). getAxis2MessageContext(); ResponseMessageBuilder builder = new ResponseMessageBuilder(msgCtx); SOAPEnvelope env = builder.genUnSubscribeResponse(sub); OMElement resultOm = env.getBody().getFirstElement(); OMElement expectedOm = AXIOMUtil.stringToOM(expected); assertTrue(compare(expectedOm, resultOm)); } catch (Exception e) { fail("Error while constructing the test message context: " + e.getMessage()); } }
SubscriptionManager subscriptionManager = new DefaultInMemorySubscriptionManager(); subscriptionManager.addProperty("Name", "Test"); SynapseSubscription synapseSubscription = new SynapseSubscription(); synapseSubscription.setStaticEntry(true); Date date = new Date(System.currentTimeMillis() + 3600000); Calendar cal = Calendar.getInstance(); cal.setTime(date); synapseSubscription.setExpires(cal); subscriptionManager.subscribe(synapseSubscription); synapseEventSource.setSubscriptionManager(subscriptionManager);
SOAPEnvelope message = factory.getDefaultEnvelope(); EndpointReference subscriptionManagerEPR = new EndpointReference(subscription.getSubManUrl()); subscriptionManagerEPR.addReferenceParameter(new QName(EventingConstants.WSE_EVENTING_NS, EventingConstants.WSE_EN_IDENTIFIER, EventingConstants.WSE_EVENTING_PREFIX), subscription.getId()); OMNamespace eventingNamespace = factory.createOMNamespace(EventingConstants.WSE_EVENTING_NS, EventingConstants.WSE_EVENTING_PREFIX);
public void testSubscriptionMessageBuilderScenarioTwo() { String addressUrl = "http://synapse.test.com/eventing/subscriptions"; String message = "<wse:Unsubscribe xmlns:wse=\"http://schemas.xmlsoap.org/ws/2004/08/eventing\"/>"; try { MessageContext msgCtx = TestUtils.getAxis2MessageContext(message, null). getAxis2MessageContext(); msgCtx.setTo(new EndpointReference(addressUrl)); String id = addIdentifierHeader(msgCtx); SubscriptionMessageBuilder.resetErrorInfo(); SynapseSubscription sub = SubscriptionMessageBuilder.createUnSubscribeMessage(msgCtx); assertEquals(id, sub.getId()); assertEquals(addressUrl, sub.getAddressUrl()); assertNull(SubscriptionMessageBuilder.getErrorCode()); assertNull(SubscriptionMessageBuilder.getErrorReason()); assertNull(SubscriptionMessageBuilder.getErrorSubCode()); } catch (Exception e) { e.printStackTrace(); fail("Error while constructing the sample subscription request: " + e.getMessage()); } }
public void testSubscriptionMessageBuilderScenarioThree() { String addressUrl = "http://synapse.test.com/eventing/subscriptions"; Date date = new Date(System.currentTimeMillis() + 3600000); Calendar cal = Calendar.getInstance(); cal.setTime(date); String message = "<wse:Renew xmlns:wse=\"http://schemas.xmlsoap.org/ws/2004/08/eventing\">\n" + " <wse:Expires>" + ConverterUtil.convertToString(cal) + "</wse:Expires>\n" + "</wse:Renew>"; try { MessageContext msgCtx = TestUtils.getAxis2MessageContext(message, null). getAxis2MessageContext(); msgCtx.setTo(new EndpointReference(addressUrl)); String id = addIdentifierHeader(msgCtx); SubscriptionMessageBuilder.resetErrorInfo(); SynapseSubscription sub = SubscriptionMessageBuilder. createRenewSubscribeMessage(msgCtx); assertEquals(id, sub.getId()); assertEquals(addressUrl, sub.getAddressUrl()); assertEquals(date, sub.getExpires().getTime()); assertNull(SubscriptionMessageBuilder.getErrorCode()); assertNull(SubscriptionMessageBuilder.getErrorReason()); assertNull(SubscriptionMessageBuilder.getErrorSubCode()); } catch (Exception e) { e.printStackTrace(); fail("Error while constructing the sample subscription request: " + e.getMessage()); } }
factory.createOMElement(EventingConstants.WSE_EN_EXPIRES, eventingNamespace); factory.createOMText(expiresElement, ConverterUtil.convertToString(subscription.getExpires())); renewResponseElement.addChild(expiresElement); message.getBody().addChild(renewResponseElement);
private static void setExpirationFault(SynapseSubscription subscription) { setErrorCode(EventingConstants.WSE_FAULT_CODE_SENDER); setErrorSubCode("InvalidExpirationTime"); setErrorReason("The expiration time requested is invalid"); subscription.setId(null); }
for (Iterator iterator = elem.getChildrenWithName(SUBSCRIPTION_QNAME); iterator.hasNext();) { SynapseSubscription synapseSubscription = new SynapseSubscription(); OMElement elmSubscription = (OMElement) iterator.next(); synapseSubscription.setId(elmSubscription.getAttribute(ID_QNAME).getAttributeValue()); synapseSubscription.setFilterDialect(dialectAttr.getAttributeValue()); synapseSubscription.setFilterValue(sourceAttr.getAttributeValue()); } else { handleException( OMAttribute uriAttr = elmAddress.getAttribute(EP_URI_QNAME); if (uriAttr != null) { synapseSubscription.setEndpointUrl(uriAttr.getAttributeValue()); synapseSubscription.setAddressUrl(uriAttr.getAttributeValue()); } else { handleException("Error in creating static subscription. URI not defined"); try { if (elmExpires.getText().startsWith("P")) { synapseSubscription.setExpires(ConverterUtil .convertToDuration(elmExpires.getText()).getAsCalendar()); } else { synapseSubscription .setExpires(ConverterUtil.convertToDateTime(elmExpires.getText())); synapseSubscription.setExpires(null); synapseSubscription.setStaticEntry(true);
notifyToElem = deliveryElem.getFirstChildWithName(NOTIFY_TO_QNAME); if (notifyToElem != null) { subscription = new SynapseSubscription( EventingConstants.WSE_DEFAULT_DELIVERY_MODE); subscription.setAddressUrl(notifyToElem.getFirstElement().getText()); subscription.setEndpointUrl(notifyToElem.getFirstElement().getText()); subscription.setSubManUrl(mc.getTo().getAddress()); OMAttribute dialectAttr = filterElem.getAttribute(ATT_DIALECT); if (dialectAttr != null && dialectAttr.getAttributeValue() != null) { subscription.setFilterDialect(dialectAttr.getAttributeValue()); subscription.setFilterValue(filterElem.getText()); } else { handleException("Error in creating subscription. Filter dialect not defined"); if ((isValidDate(expiryElem.getText(), calendarExpires)) && (calendarNow.before(calendarExpires))) { subscription.setExpires(calendarExpires); } else { setExpirationFault(subscription);