There were 5 steps to generate the xmi file:
1. Generate an AndroMDA project using Maven v1.
2. Add the SQL Mappings file.
3. Modify the project properties.
4. Add dependency to mssql jdbc drivers.
5. Copy the SQL Server JDBC jars to Maven repository.
6. Run schema2xmi.
1. Generate a standard J2EE project. Nothing fancy here.
- Code: Select all
maven andromdapp:generate
2. The following should be copied to the file: ${maven.conf.dir}/mappings/MSSQLMappings.xml
- Code: Select all
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
This is used to map SQL Types to
model datatypes for Schema2XMI
-->
<mappings name="MSSQL">
<mapping>
<from>DECIMAL</from>
<to>datatype::Decimal</to>
</mapping>
<mapping>
<from>FLOAT</from>
<to>datatype::Float</to>
</mapping>
<mapping>
<from>REAL</from>
<to>datatype::Float</to>
</mapping>
<mapping>
<from>NUMERIC(19,0)</from>
<to>datatype::Long</to>
</mapping>
<mapping>
<from>BIGINT</from>
<to>datatype::Long</to>
</mapping>
<mapping>
<from>INTEGER</from>
<to>datatype::Integer</to>
</mapping>
<mapping>
<from>SMALLINT</from>
<to>datatype::Short</to>
</mapping>
<mapping>
<from>TINYINT</from>
<to>datatype::Byte</to>
</mapping>
<mapping>
<from>TIMESTAMP</from>
<to>datatype::Timestamp</to>
</mapping>
<mapping>
<from>BIT</from>
<to>datatype::Boolean</to>
</mapping>
<mapping>
<from>DATE</from>
<to>datatype::Date</to>
</mapping>
<mapping>
<from>DATETIME</from>
<to>datatype::DateTime</to>
</mapping>
<mapping>
<from>VARCHAR</from>
<to>datatype::String</to>
</mapping>
<mapping>
<from>CHAR</from>
<to>datatype::Character</to>
</mapping>
<mapping>
<from>LONGVARBINARY</from>
<to>datatype::Blob</to>
</mapping>
<mapping>
<from>TEXT</from>
<to>datatype::Clob</to>
</mapping>
<mapping>
<from>IMAGE</from>
<to>datatype::Blob</to>
</mapping>
<mapping>
<from>UNIQUEIDENTIFIER</from>
<to>datatype::Guid</to>
</mapping>
</mappings>
3. Add the following properties to the ${project.home}/mda/project.properties file. Make sure to replace everything in square brackets with your own values.
- Code: Select all
# Items related to schema2xmi
maven.andromda.schema2xmi.user=[user name]
maven.andromda.schema2xmi.password=[password]
maven.andromda.schema2xmi.driverClass=com.microsoft.jdbc.sqlserver.SQLServerDriver
maven.andromda.schema2xmi.connectionUrl=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=[databasename];SelectMethod=cursor
maven.andromda.schema2xmi.mappingsUri=file:${maven.conf.dir}/mappings/MSSQLMappings.xml
maven.andromda.schema2xmi.classStereotype=Entity
maven.andromda.schema2xmi.identifierStereotypes=Identifier
maven.andromda.schema2xmi.package=[com.package]
4. Add the following dependencies to the ${project.home}/mda/project.xml
Code:
- Code: Select all
<dependency>
<groupId>com.microsoft.jdbcdriver</groupId>
<artifactId>msbase</artifactId>
<version>2000.3</version>
<jar>msbase.jar</jar>
</dependency>
<dependency>
<groupId>com.microsoft.jdbcdriver</groupId>
<artifactId>msutil</artifactId>
<version>2000.3</version>
<jar>msutil.jar</jar>
</dependency>
<dependency>
<groupId>com.microsoft.jdbcdriver</groupId>
<artifactId>mssqlserver</artifactId>
<version>2000.3</version>
<jar>mssqlserver.jar</jar>
</dependency>
5. Copy the SQL Server jdbc drivers to {maven1.repository}/com.microsoft.jdbcdriver/jars
6. And finally, run schema2xmi from inside the mda subproject: ${project.home}/mda
- Code: Select all
maven andromda:schema2xmi
I hope this helps someone else.
Cheers,
Eric
