I am trying to dynamically connect to a datasource. I'm using the AEM archetype.
public class mystuff implements WorkflowProcess {
private static final Logger log = LoggerFactory.getLogger(mystuff.class);
@reference
private DataSourcePool dsp;
@Override
public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {
String dataSourceName = "MYDB";
DataSource ds = null;
Connection connection = null;
try {
if (dsp == null ) {
log.info("DataSourcePool is null");
} else {
for(Iterator<String> it = dsp.getAllJndiDataSourceNames().iterator(); it.hasNext();) {
String dsname = it.next();
log.info("Found datasource " + dsname);
}
log.info("Using DataSourcePool service lookup to get connection pool " + dataSourceName);
ds = (DataSource) dsp.getDataSource(dataSourceName);
No datasources are being found and no connection made.
I have the MYDB configured just fine. I am using it in a Servlet by doing this annotation.
@reference(target = "(&(objectclass=javax.sql.DataSource)(datasource.name=MYDB))")
private DataSource ds;
However, i do not want to hard-code the datasource.name. Any ideas!!??