throws SequenceFault {
CreateSequenceResponseType csr = RMUtils.getWSRMFactory().createCreateSequenceResponseType();
csr.setIdentifier(destination.generateSequenceIdentifier());
DestinationPolicyType dp = destination.getDestinationPolicies();
Duration supportedDuration = dp.getSequenceExpiration();
if (null == supportedDuration) {
supportedDuration = SourceSequence.PT0S;
}
Expires ex = cs.getExpires();
LOG.info("supported duration: " + supportedDuration);
if (null != ex || supportedDuration.isShorterThan(SourceSequence.PT0S)) {
Duration effectiveDuration = supportedDuration;
if (null != ex && supportedDuration.isLongerThan(ex.getValue())) {
effectiveDuration = supportedDuration;
}
ex = RMUtils.getWSRMFactory().createExpires();
ex.setValue(effectiveDuration);
csr.setExpires(ex);
}
OfferType offer = cs.getOffer();
if (null != offer) {
AcceptType accept = RMUtils.getWSRMFactory().createAcceptType();
if (dp.isAcceptOffers()) {
RMSource source = destination.getHandler().getSource();
LOG.fine("Accepting inbound sequence offer");
AttributedURI to = VersionTransformer.convert(maps.getTo());
accept.setAcksTo(RMUtils.createReference(to.getValue()));
SourceSequence seq = new SourceSequence(offer.getIdentifier(),