@Override
public Resource provide(DeploymentUnit unit, JBossResourceRefType resRef)
{
String lookupName = resRef.getLookupName();
if (lookupName != null && !lookupName.trim().isEmpty())
{
return new LinkRefResource(lookupName, null, resRef.isIgnoreDependency());
}
String mappedName = resRef.getMappedName();
if (mappedName != null && !mappedName.trim().isEmpty())
{
return new LinkRefResource(mappedName, null, resRef.isIgnoreDependency());
}
String jndiName = resRef.getJNDIName();
if (jndiName != null && !jndiName.trim().isEmpty())
{
return new LinkRefResource(jndiName, null, resRef.isIgnoreDependency());
}
String internalJndiNameWithoutNamespace = DataSourceDeployerHelper.normalizeJndiName(resRef.getName(), unit, informer);
String targetJndiName = "java:/" + internalJndiNameWithoutNamespace;
String binderName = "jboss.jca:name=" + internalJndiNameWithoutNamespace + ",service=DataSourceBinding";
logger.debug("No jndi-name/mapped-name/lookup specified for res-ref: " + resRef.getName() + " of type datasource. Will return a Resource which depends on datasource binder: " + binderName);
return new DataSourceResource(targetJndiName, binderName);
}