1 |
31f1e71a
|
n.hoffmann
|
----
|
2 |
|
|
Developing with the CDM Library
|
3 |
|
|
----
|
4 |
|
|
|
5 |
|
|
|
6 |
3b8dd375
|
n.hoffmann
|
Developing with the CDM Library
|
7 |
|
|
|
8 |
2eecc314
|
n.hoffmann
|
<Table of Contents>
|
9 |
3b8dd375
|
n.hoffmann
|
|
10 |
2eecc314
|
n.hoffmann
|
%{toc|section=0|fromDepth=2|toDepth=3}
|
11 |
3b8dd375
|
n.hoffmann
|
|
12 |
|
|
|
13 |
31f1e71a
|
n.hoffmann
|
<<Note:>> The CDM Library uses Apache Maven for dependency management. If you are not familiar with that please take a look at the {{{https://dev.e-taxonomy.eu/trac/wiki/GeneralDev#Maven}developer resources on the wiki}}. In case you run into problems, you might want to check {{{./troubleshooting.html}Troubleshooting}} or contact {{{mailto:editsupport@bgbm.org}editsupport@bgbm.org}} directly.
|
14 |
3b8dd375
|
n.hoffmann
|
|
15 |
|
|
* Integrating the CDM Library into a maven project
|
16 |
|
|
|
17 |
31f1e71a
|
n.hoffmann
|
To integrate the CDM Library into your personal maven project pelase add our maven repository to your POM:
|
18 |
|
|
{{http://wp5.e-taxonomy.eu/cdmlib/mavenrepo/}}. To use the <cdmlib-service> package add the following
|
19 |
|
|
dependency to you POM (adapt the right version number !!):
|
20 |
3b8dd375
|
n.hoffmann
|
|
21 |
|
|
---
|
22 |
|
|
<dependency>
|
23 |
|
|
<groupId>eu.etaxonomy</groupId>
|
24 |
|
|
<artifactId>cdmlib-service</artifactId>
|
25 |
|
|
<version>x.x</version>
|
26 |
|
|
</dependency>
|
27 |
|
|
---
|
28 |
|
|
|
29 |
|
|
|
30 |
|
|
* Spring applications with the CDM Library
|
31 |
|
|
|
32 |
31f1e71a
|
n.hoffmann
|
In your own applicationContext.xml you can simply import the cdm service spring beans from the library.
|
33 |
|
|
In addition it also needs a datasource bean and a hibernateProperties bean specific for that datasource.
|
34 |
|
|
The CDM Library comes with an embedded hypersonic database that is super easy to use. All you need to do
|
35 |
|
|
is to import that hsql specific spring configuration like this:
|
36 |
3b8dd375
|
n.hoffmann
|
|
37 |
|
|
---
|
38 |
|
|
applicationContext.xml
|
39 |
|
|
|
40 |
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
41 |
|
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
42 |
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
43 |
|
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
44 |
|
|
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
45 |
|
|
|
46 |
|
|
<import resource="classpath:/eu/etaxonomy/cdm/services.xml" />
|
47 |
|
|
<import resource="classpath:/eu/etaxonomy/cdm/hsql-datasource.xml" />
|
48 |
|
|
|
49 |
|
|
</beans>
|
50 |
|
|
---
|
51 |
|
|
|
52 |
31f1e71a
|
n.hoffmann
|
In case you want to define the datasource within your own applicationContext you can surely do so.
|
53 |
|
|
For a typical mysql database it looks like this:
|
54 |
3b8dd375
|
n.hoffmann
|
|
55 |
|
|
---
|
56 |
|
|
applicationContext.xml
|
57 |
|
|
|
58 |
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
59 |
|
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
60 |
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
61 |
|
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
62 |
|
|
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
63 |
|
|
|
64 |
|
|
<import resource="classpath:/eu/etaxonomy/cdm/services.xml" />
|
65 |
|
|
|
66 |
|
|
<bean id="dataSource"
|
67 |
|
|
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
|
68 |
|
|
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
|
69 |
|
|
<property name="url" value="jdbc:mysql://192.168.2.10/cdm_build"/>
|
70 |
|
|
<property name="username" value="cdm_user"/>
|
71 |
|
|
<property name="password" value="why_do_i_need_this"/>
|
72 |
|
|
</bean>
|
73 |
|
|
|
74 |
|
|
<bean id="hibernateProperties"
|
75 |
|
|
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
|
76 |
|
|
<property name="properties">
|
77 |
|
|
<props>
|
78 |
|
|
<prop key="hibernate.hbm2ddl.auto">validate</prop>
|
79 |
|
|
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
|
80 |
|
|
<prop key="hibernate.cache.provider_class">
|
81 |
|
|
org.hibernate.cache.NoCacheProvider
|
82 |
|
|
</prop>
|
83 |
|
|
<prop key="hibernate.show_sql">false</prop>
|
84 |
|
|
<prop key="hibernate.format_sql">false</prop>
|
85 |
|
|
</props>
|
86 |
|
|
</property>
|
87 |
|
|
</bean>
|
88 |
|
|
</beans>
|
89 |
|
|
---
|
90 |
|
|
|
91 |
|
|
|
92 |
31f1e71a
|
n.hoffmann
|
* Developing the CDM Library with Eclipse
|
93 |
3b8dd375
|
n.hoffmann
|
|
94 |
31f1e71a
|
n.hoffmann
|
To use the entire CDM Library with {{{http://www.eclipse.org/} Eclipse}}, you must meet the following prerequisites:
|
95 |
3b8dd375
|
n.hoffmann
|
|
96 |
31f1e71a
|
n.hoffmann
|
* Maven 2.2.1 commandline tools. Follow the instruction to install maven on your local machine. See {{{https://dev.e-taxonomy.eu/trac/wiki/GeneralDev#Maven}}} for installation instructions.
|
97 |
3b8dd375
|
n.hoffmann
|
|
98 |
31f1e71a
|
n.hoffmann
|
* Subclipse 1.6.x (for convenient subversion access from Eclipse). {{{http://subclipse.tigris.org/}}}
|
99 |
3b8dd375
|
n.hoffmann
|
|
100 |
31f1e71a
|
n.hoffmann
|
* Java JDK >= 1.6 (JRE is not enough) and JAVA_HOME is set to JDK path
|
101 |
3b8dd375
|
n.hoffmann
|
|
102 |
31f1e71a
|
n.hoffmann
|
[]
|
103 |
|
|
|
104 |
|
|
** Preparing the CDM Library
|
105 |
|
|
|
106 |
|
|
Start by checking out the source code from the subversion repository:
|
107 |
3b8dd375
|
n.hoffmann
|
|
108 |
|
|
---
|
109 |
|
|
$ svn co http://dev.e-taxonomy.eu/svn/trunk/cdmlib/ .
|
110 |
|
|
---
|
111 |
|
|
|
112 |
31f1e71a
|
n.hoffmann
|
Change into the cdmlib directory, compile and install the cdmlib packages in your local repository. This will also download the dependencies into your local repository.
|
113 |
3b8dd375
|
n.hoffmann
|
|
114 |
|
|
---
|
115 |
31f1e71a
|
n.hoffmann
|
$ cd cdmlib
|
116 |
3b8dd375
|
n.hoffmann
|
$ mvn install
|
117 |
|
|
---
|
118 |
31f1e71a
|
n.hoffmann
|
|
119 |
|
|
Let maven create project dependencies and Eclipse metafiles (.project s.o.)
|
120 |
3b8dd375
|
n.hoffmann
|
|
121 |
|
|
---
|
122 |
|
|
$ mvn eclipse:eclipse
|
123 |
|
|
---
|
124 |
|
|
|
125 |
31f1e71a
|
n.hoffmann
|
** Configuring Eclipse
|
126 |
|
|
|
127 |
|
|
* Setup a new Eclipse workspace (where ever you want but using the cdmlib folder may be comfortable)
|
128 |
3b8dd375
|
n.hoffmann
|
|
129 |
31f1e71a
|
n.hoffmann
|
* In Eclipse preferences (not project properties) set a java class variable called <<<M2_REPO>>>, pointing to your local repository.
|
130 |
3b8dd375
|
n.hoffmann
|
|
131 |
31f1e71a
|
n.hoffmann
|
* Eclipse Preferences: Java -> Build Path -> Classpath
|
132 |
|
|
|
133 |
|
|
* Click <<<New>>>. In the upcoming dialog, enter <<<M2_REPO>>> as the variables name and browse the filesystem for the location of the maven repository
|
134 |
|
|
|
135 |
|
|
* In OSX for example <<</Users/USERNAME/.m2/repository>>>
|
136 |
|
|
|
137 |
|
|
* In WinXP for example <<<C:\Documents and Settings\USERNAME\.m2\repository>>>
|
138 |
3b8dd375
|
n.hoffmann
|
|
139 |
31f1e71a
|
n.hoffmann
|
* Import the cdmlib projects:
|
140 |
3b8dd375
|
n.hoffmann
|
|
141 |
31f1e71a
|
n.hoffmann
|
* In Eclipse open the Import Wizard: File -> Import -> General -> Existing Projects into Workspace
|
142 |
3b8dd375
|
n.hoffmann
|
|
143 |
31f1e71a
|
n.hoffmann
|
* Choose "Select root directory". Click "Browse" and navigate to your cdmlib folder and confirm the file dialog.
|
144 |
3b8dd375
|
n.hoffmann
|
|
145 |
31f1e71a
|
n.hoffmann
|
* The projects should now show in the Import Wizard window. Select the projects you want wo work on (usually all) and hit OK.
|
146 |
3b8dd375
|
n.hoffmann
|
|
147 |
|
|
|
148 |
|
|
* Where do I go from here?
|
149 |
|
|
|
150 |
31f1e71a
|
n.hoffmann
|
Now that you have integrated or installed the CDM Library you are probably looking for documentation
|
151 |
|
|
on how to develop with it. A good start is to read the {{{./reference.html}reference documentation}}
|
152 |
|
|
of the CDM Library. The {{{./cdm-uml}UML diagrams}} are also a good starting point to get familiar
|
153 |
|
|
with the structure of the Common Data Model itself or consult the {{{./apidocs}javadoc}} for the API documentation.
|
154 |
|
|
Please also have a look at the {{{http://dev.e-taxonomy.eu/trac/wiki/GeneralDev} general information}} and
|
155 |
|
|
{{{http://dev.e-taxonomy.eu/trac/wiki/CdmLibraryDev} further information about coding with the CDM Library}} in the development wiki.
|
156 |
3b8dd375
|
n.hoffmann
|
|
157 |
|
|
|