Hi Alexey,
I'm trying exactly that.
final DbAttribute attr = new DbAttribute("id");
attr.setType(Types.INTEGER);
attr.setPrimaryKey(true);
attr.setMandatory(true);
final DbEntity entity = new DbEntity("TEST");
entity.addAttribute(attr);
final DataMap map = new DataMap("AppMap");
map.addDbEntity(entity);
final DataDomain domain = new DataDomain("App");
domain.addMap(map);
final DataNode node = new DataNode("AppNode");
node.setDataSourceLocation("dbcp.properties");
node.setDataSourceFactory(org.apache.cayenne.conf.DBCPDataSourceFactory.class.getName());
node.setSchemaUpdateStrategy(new
org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy());
node.addDataMap(map);
node.setDataSource(new
org.apache.cayenne.conf.DBCPDataSourceFactory().getDataSource(node.getDataSourceLocation()));
node.setAdapter(new MySQLAdapter());
domain.addNode(node);
final Configuration c = Configuration.getSharedConfiguration();
c.addDomain(domain);
final ObjectContext context = DataContext.createDataContext("App");
In this implementation I need to figure out how to "inject" the DataSource into
the Node in a more "clean" way, in this example it is, at least, weird.
As the line Configuration.getSharedConfiguration() will instantiate a
DefaultConfiguration class, this implementation will look for a cayenne.xml, so
you need this file "empty":
<?xml version="1.0" encoding="utf-8"?>
<domains project-version="3.0.0.1">
</domains>
My next step is to implement a DynamicConfiguration to allow a initialization
without any configuration file.
Currently my example is not ideal, but it's a kick-off.
By the way, I'm using DBCP as connection pool.
Regards,
--
Att.
Tercio Gaudencio Filho
On Monday, November 14, 2011 at 7:28 AM, Alexey Shakov wrote:
> Hi *,
>
> I would like to know, how to configure Cayenne and map generic object
> programmatically from scratch without using of XML?
>
> Most likely, I need to define a DataSource (Factory), create DataDomain,
> some DataMaps, containing my generic Entities, etc.
>
> Are there some examples, how to do this using last Cayenne milestone
> release?
>
> Many thanks in advance for any help!
>
> Greetings,
>
> Alexey