subscription.setPrecondition( precondition );
subscription.setPolicy( policy );
subscription.init(); // initialize resource properties
String id = (String) subscription.getID();
SimpleTypeResourceKey resourceKey = new SimpleTypeResourceKey( QName.valueOf( getResourceKeyName() ), id );
EndpointReference subscriptionEPR = getEndpointReference( getSubscriptionAddress( producerReference ),
resourceKey, nsSet.getAddressingNamespace() );
subscription.setEndpointReference( subscriptionEPR );
add( resourceKey, subscription );
return subscription;
}