public static URI convertMALInteractionToURI(final MALInteraction interaction) { if (interaction != null) { if (interaction.getMessageHeader() != null) { return interaction.getMessageHeader().getURITo(); } } return new URI(""); }
/** * Stores an Event in the Archive */ private Long storeEventOnArchive(final ObjectDetailsList objectDetailsList, final IdentifierList domain, final ObjectType objType, final ElementList events, final MALInteraction interaction) { if (interaction != null) { return this.storeEventOnArchive(objectDetailsList, domain, objType, events, interaction.getMessageHeader().getURIFrom(), interaction.getMessageHeader().getNetworkZone()); } else { return this.storeEventOnArchive(objectDetailsList, domain, objType, events, null, null); } }
/** * This method is deprecated! The sourceURI should be explicitly stated. The * extraction of it from the interaction object should happen on the layers * above. The broker won't publish the event if the source is not correct. * Publishes an Event through the Event service. * * @param interaction Interaction object * @param objId Object instance identifier * @param objType Object type * @param related Related link * @param source Source link * @param eventBodies Bodies of the event * @throws java.io.IOException if it cannot publish the Event */ @Deprecated public void publishEvent(final MALInteraction interaction, final Long objId, final ObjectType objType, final Long related, final ObjectId source, final ElementList eventBodies) throws IOException { URI sourceURI = new URI(""); if (interaction != null) { if (interaction.getMessageHeader() != null) { sourceURI = interaction.getMessageHeader().getURITo(); } } // requirement: 3.3.2.1 this.publishEvent(sourceURI, objId, objType, related, source, eventBodies); }
private void generateAndPublishEvents(final ObjectType objType, final ObjectIdList sourceList, final MALInteraction interaction) { if (eventService == null) { return; } if (sourceList.isEmpty()) { // Don't store anything if the list is empty... return; } /* Just use it for debugging Logger.getLogger(ArchiveManager.class.getName()).log(Level.FINE, "\nobjType: " + objType.toString() + "\nDomain: " + ConfigurationProviderSingleton.getDomain().toString() + "\nSourceList: " + sourceList.toString()); */ // requirement: 3.4.2.4 final LongList eventObjIds = eventService.generateAndStoreEvents(objType, ConfigurationProviderSingleton.getDomain(), null, sourceList, interaction); /* Just use it for debugging Logger.getLogger(ArchiveManager.class.getName()).log(Level.FINE, "The eventObjIds are: " + eventObjIds.toString()); */ URI sourceURI = new URI(""); if (interaction != null) { if (interaction.getMessageHeader() != null) { sourceURI = interaction.getMessageHeader().getURITo(); } } try { eventService.publishEvents(sourceURI, eventObjIds, objType, null, sourceList, null); } catch (IOException ex) { Logger.getLogger(ArchiveManager.class.getName()).log(Level.SEVERE, null, ex); } }
@Override public void run() { try { archiveService.store( false, ActivityTrackingHelper.OPERATIONACTIVITY_OBJECT_TYPE, interaction.getMessageHeader().getDomain(), archiveDetails, opActivityList, interaction); // requirement: 3.5.2.3 & 3.5.2.5 } catch (MALException ex) { Logger.getLogger(ActivityTrackingProviderServiceImpl.class.getName()).log(Level.SEVERE, null, ex); } catch (MALInteractionException ex) { // A duplicate might happen if the the consumer stored the Operation Activity object if(ex.getStandardError().getErrorNumber().getValue() != COMHelper.DUPLICATE_ERROR_NUMBER.getValue()){ Logger.getLogger(ActivityTrackingProviderServiceImpl.class.getName()).log(Level.SEVERE, null, ex); }else{ // It's a Duplicate error, the object already exists... Do nothing! } } } });
@Override public synchronized void handlePublishDeregister(final MALInteraction interaction) throws MALInteractionException, MALException { final MALMessageHeader hdr = interaction.getMessageHeader(); final BrokerKey key = new BrokerKey(hdr); report(key); final Map<StringPair, PublisherSource> rv = getProviderMap(key); if (null != rv.remove(new StringPair(hdr.getURIFrom().getValue(), createProviderKey(hdr)))) { MALBrokerImpl.LOGGER.log(Level.FINE, "Removing publisher details: {0}", hdr); } if (rv.isEmpty()) { providerMap.remove(key); } report(key); }
public Long publishAcceptanceEventOperation(MALInteraction interaction, final URI uri, final Identifier network, boolean success, final Long related, final ObjectId source) throws MALInteractionException, MALException { // Create ActivityAcceptanceList ActivityAcceptanceList aal = new ActivityAcceptanceList(); aal.add(new ActivityAcceptance(success)); final Long objId; URI sourceURI = uri; if (interaction != null) { objId = eventService.generateAndStoreEvent(ActivityTrackingHelper.ACCEPTANCE_OBJECT_TYPE, ConfigurationProviderSingleton.getDomain(), aal, related, source, interaction); sourceURI = (interaction.getMessageHeader() != null) ? interaction.getMessageHeader().getURITo() : new URI(""); } else { objId = eventService.generateAndStoreEvent(ActivityTrackingHelper.ACCEPTANCE_OBJECT_TYPE, ConfigurationProviderSingleton.getDomain(), aal, related, source, uri, network); } try { eventService.publishEvent(sourceURI, objId, ActivityTrackingHelper.ACCEPTANCE_OBJECT_TYPE, null, source, aal); } catch (IOException ex) { Logger.getLogger(ActivityTrackingProviderServiceImpl.class.getName()).log(Level.SEVERE, null, "Could not publish the Event!"); } return objId; }
private Long publishTransferEventOperation(MALInteraction interaction, final URI uri, final Identifier network, final ObjectType objType, final boolean success, final Duration duration, final URI nextDestination, final ObjectId source) throws MALInteractionException, MALException { // Produce ActivityTransferList ActivityTransferList atl = new ActivityTransferList(); ActivityTransfer at = new ActivityTransfer(success, duration, nextDestination); atl.add(at); final Long objId; URI sourceURI = uri; if (interaction != null) { objId = eventService.generateAndStoreEvent(objType, ConfigurationProviderSingleton.getDomain(), atl, null, source, interaction); sourceURI = (interaction.getMessageHeader() != null) ? interaction.getMessageHeader().getURITo() : new URI(""); } else { objId = eventService.generateAndStoreEvent(objType, ConfigurationProviderSingleton.getDomain(), atl, null, source, uri, network); } try { eventService.publishEvent(sourceURI, objId, objType, null, source, atl); } catch (IOException ex) { Logger.getLogger(ActivityTrackingProviderServiceImpl.class.getName()).log(Level.SEVERE, null, "Could not publish the Event!"); } return objId; }
final ObjectKey key = new ObjectKey(ConfigurationProviderSingleton.getDomain(), actionInstId); URI uriTo = interaction.getMessageHeader().getURITo(); URI uriNextDestination = null; String[] nodes = uriTo.toString().split("@"); interaction.getMessageHeader().getNetworkZone(), true, null, uriNextDestination, sourceRec); interaction.getMessageHeader().getNetworkZone(), (errorNumber == null), null, uriNextDestination, sourceFor); } catch (MALInteractionException ex) {
opActivityList.add(new OperationActivity(interaction.getMessageHeader().getInteractionType())); final Long objId = interaction.getMessageHeader().getTransactionId(); archiveDetails.get(0).setInstId(objId); // requirement: 3.5.2.4 archiveDetails.get(0).setNetwork(interaction.getMessageHeader().getNetworkZone()); // RID raised to create this requirement! archiveDetails.get(0).setProvider(interaction.getMessageHeader().getURIFrom()); // RID raised to create this requirement! final ObjectKey key = new ObjectKey(interaction.getMessageHeader().getDomain(), objId); return new ObjectId(ActivityTrackingHelper.OPERATIONACTIVITY_OBJECT_TYPE, key);
@Override public synchronized void handleRegister(final MALInteraction interaction, final MALRegisterBody body) throws MALInteractionException, MALException { final MALMessageHeader hdr = interaction.getMessageHeader(); final Subscription lst = body.getSubscription(); final BrokerKey key = new BrokerKey(hdr); report(key); if ((null != hdr) && (null != lst)) { getConsumerEntry(key, hdr, true).addSubscription(hdr, lst); } report(key); }
@Override public synchronized void handlePublishRegister(final MALInteraction interaction, final MALPublishRegisterBody body) throws MALInteractionException, MALException { final MALMessageHeader hdr = interaction.getMessageHeader(); final EntityKeyList providerKeyList = body.getEntityKeyList(); final BrokerKey key = new BrokerKey(hdr); report(key); if ((null != hdr) && (null != providerKeyList)) { getProviderEntry(key, hdr, true).setKeyList(hdr, providerKeyList); } report(key); }
throws MALInteractionException, MALException final MALMessageHeader hdr = interaction.getMessageHeader(); final BrokerKey key = new BrokerKey(hdr); final java.util.List<NotifyMessageSet> notifyList = createNotify(key, hdr, body);
/** * Generates a ArchiveDetailsList structure with one ArchiveDetails object. * The object instance identifier will be set as 0. The operation will use * the submitted related, source and interaction fields to fill-in the * object. * * @param related Related field * @param source Source field * @param interaction Interaction * @return The ArchiveDetailsList object */ public static ArchiveDetailsList generateArchiveDetailsList(final Long related, final ObjectId source, final MALInteraction interaction) { final ArchiveDetails archiveDetails = new ArchiveDetails(); archiveDetails.setInstId(new Long(0)); archiveDetails.setDetails(new ObjectDetails(related, source)); archiveDetails.setNetwork(interaction.getMessageHeader().getNetworkZone()); archiveDetails.setTimestamp(HelperTime.getTimestamp()); archiveDetails.setProvider(interaction.getMessageHeader().getURIFrom()); final ArchiveDetailsList archiveDetailsList = new ArchiveDetailsList(); archiveDetailsList.add(archiveDetails); return archiveDetailsList; }
private ObjectId publishExecutionEventOperation(final MALInteraction interaction, final URI uri, final Identifier network, boolean success, int currentStageCount, int totalStageCount, final Long related, ObjectId source) throws MALInteractionException, MALException { // Produce ActivityExecutionList ActivityExecutionList ael = new ActivityExecutionList(1); ActivityExecution activityExecutionInstance = new ActivityExecution( success, new UInteger(currentStageCount), new UInteger(totalStageCount)); ael.add(activityExecutionInstance); final Long objId; URI sourceURI = uri; if (interaction != null) { objId = eventService.generateAndStoreEvent(ActivityTrackingHelper.EXECUTION_OBJECT_TYPE, ConfigurationProviderSingleton.getDomain(), ael, related, source, interaction); sourceURI = (interaction.getMessageHeader() != null) ? interaction.getMessageHeader().getURITo() : new URI(""); } else { objId = eventService.generateAndStoreEvent(ActivityTrackingHelper.EXECUTION_OBJECT_TYPE, ConfigurationProviderSingleton.getDomain(), ael, related, source, uri, network); } final ObjectKey key = new ObjectKey(ConfigurationProviderSingleton.getDomain(), objId); try { eventService.publishEvent(sourceURI, objId, ActivityTrackingHelper.EXECUTION_OBJECT_TYPE, related, source, ael); } catch (IOException ex) { Logger.getLogger(ActivityTrackingProviderServiceImpl.class.getName()).log(Level.SEVERE, null, ex); } return new ObjectId(ActivityTrackingHelper.EXECUTION_OBJECT_TYPE, key); }
@Override public synchronized void handleDeregister(final MALInteraction interaction, final MALDeregisterBody body) throws MALInteractionException, MALException { final MALMessageHeader hdr = interaction.getMessageHeader(); final IdentifierList lst = body.getIdentifierList(); final BrokerKey key = new BrokerKey(hdr); report(key); if ((null != hdr) && (null != lst) && !lst.isEmpty()) { internalDeregisterSubscriptions(key, getConsumerEntry(key, hdr, false), lst); } report(key); }
network = interaction.getMessageHeader().getNetworkZone(); uri = interaction.getMessageHeader().getURIFrom();