}
if ( !exists ) {
try {
// Doesn't exist in deployment descriptor -- add new
MessageDestinationRefType messageDestinationRef = webApp.addNewMessageDestinationRef();
//------------------------------------------------------------------------------
// <message-destination-ref> required elements:
//------------------------------------------------------------------------------
// message-destination-ref-name
JndiNameType messageDestinationRefName = JndiNameType.Factory.newInstance();
messageDestinationRefName.setStringValue( resourceName );
messageDestinationRef.setMessageDestinationRefName( messageDestinationRefName );
if ( !resourceType.equals("") ) {
// message-destination-ref-type
MessageDestinationTypeType msgDestType = MessageDestinationTypeType.Factory.newInstance();
msgDestType.setStringValue( resourceType );
messageDestinationRef.setMessageDestinationType( msgDestType );
}
else if ( !injectionJavaType.equals("") ) {
// injectionTarget
InjectionTargetType injectionTarget = InjectionTargetType.Factory.newInstance();
FullyQualifiedClassType qualifiedClass = FullyQualifiedClassType.Factory.newInstance();
JavaIdentifierType javaType = JavaIdentifierType.Factory.newInstance();
qualifiedClass.setStringValue( injectionClass );
javaType.setStringValue( injectionJavaType );
injectionTarget.setInjectionTargetClass( qualifiedClass );
injectionTarget.setInjectionTargetName( javaType );
int arraySize = messageDestinationRef.sizeOfInjectionTargetArray();
messageDestinationRef.insertNewInjectionTarget( arraySize );
messageDestinationRef.setInjectionTargetArray( arraySize, injectionTarget );
}
//------------------------------------------------------------------------------
// <message-destination-ref> optional elements:
//------------------------------------------------------------------------------
// description
String descriptionAnnotation = annotation.description();
if ( descriptionAnnotation.length() > 0 ) {
DescriptionType description = DescriptionType.Factory.newInstance();
description.setStringValue( descriptionAnnotation );
int arraySize = messageDestinationRef.sizeOfDescriptionArray();
messageDestinationRef.insertNewDescription( arraySize );
messageDestinationRef.setDescriptionArray( arraySize,description );
}
// mappedName
String mappdedNameAnnotation = annotation.mappedName();
if ( mappdedNameAnnotation.length() > 0 ) {
XsdStringType mappedName = XsdStringType.Factory.newInstance();
mappedName.setStringValue( mappdedNameAnnotation );
messageDestinationRef.setMappedName( mappedName );
}
}
catch ( Exception anyException ) {
log.debug( "ResourceAnnotationHelper: Exception caught while processing <message-destination-ref>" );