|
|
(18 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | == DBRS Use Cases ==
| + | ignore |
− | The DBRS utility starts by reading some initial configuration information:
| + | |
− | <source lang="text" enclose="div">
| + | |
− | prompt > DBRSBuilder [-builderFile {path to dbrsbuilder.properties}] -stageDir {path to stageDir}
| + | |
− | (if command-line arg -builderFile not present, default to look in current working directory)
| + | |
− | prompt > DBRSBuilder running, connected to port 8884 ... Press <Return> to finish
| + | |
− | | + | |
− | dbrsbuilder.properties:
| + | |
− | | + | |
− | # builder properties
| + | |
− | builder.port=8884
| + | |
− | #builder.mode=production
| + | |
− | builder.mode=test
| + | |
− | builder.test.port=8885
| + | |
− | | + | |
− | # project properties
| + | |
− | project.name=projectname
| + | |
− | project.entities=employee, other entities ...
| + | |
− | | + | |
− | # database properties
| + | |
− | db.driver=com.mysql.jdbc.Driver
| + | |
− | db.url=jdbc:mysql://localhost:3306/db
| + | |
− | db.user=user
| + | |
− | db.pwd=password
| + | |
− | db.platform=org.eclipse.persistence.platform.database.MySQLPlatform
| + | |
− | logging.level=info
| + | |
− | </source>
| + | |
− | | + | |
− | There are three scenarios to consider:
| + | |
− | # (<b>Existing Entities<b>) the database contains the specified entities: the typical scenario where the Project's entities are exposed via a RESTful CRUD application.
| + | |
− | # (<b>Greenfield Entities</b>) the database does <b>not</b> contain the specified entities: the so-called <i>greenfield</i> scenario where the Project's entities do not yet exist on the database.
| + | |
− | # (<b>JPA Meta-data</b>) meta-data describing the specified entities is provided through an alternative mechanism: the scenario where the Project's entities are described via a JPA <tt>.orm</tt> file.
| + | |
− | | + | |
− | === Existing Entities ===
| + | |
− | The DBRS utility will login in to the database using the given database credentials and 'scrape' the meta-data for the employee table: column names and datatypes, PKs, foreign-key relationships, etc. If the table name does not match the entity name, the user may specify an alias:
| + | |
− | <source lang="text" enclose="div">
| + | |
− | # project properties
| + | |
− | alias.employee.tablename=EMP
| + | |
− | </source>
| + | |
− | If the built-in pluralization does not generate acceptible URIs, the user can alias that as well - e.g. if the entity is <i>person</i>, the plural should be <i>people</i>, not <i>persons</i>:
| + | |
− | <source lang="text" enclose="div">
| + | |
− | # project properties
| + | |
− | alias.person.plural=people
| + | |
− | </source>
| + | |
− | | + | |
− | The DBRS utility builds an in-memory representation of the required meta-data for the employee entity to be mapped to
| + | |
− | the database via a JPA entity and mapped to any REST-ful clients via JAXB (supporting both XML and JSON media
| + | |
− | representations). Initially the back-end generation will target EclipseLink JPA/JAXB + Jersey (1.9.1 at the time of this writing).
| + | |
− | | + | |
− | === Greenfield Entities ===
| + | |
− | TBD
| + | |
− | | + | |
− | === JPA Meta-data ===
| + | |
− | TBD
| + | |