Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

CDO QuickStart

On this page how to quickly setup and run a CDO server

Workspace Setup

  • create a new project named "cdo.serverConfig"
  • create a new folder named "configuration"
  • create a new xml-file cdo-server.xml in new folder and put the following content into the file
<?xml version="1.0" encoding="UTF-8"?>
<cdoServer>
 
	<!--acceptor type="http"/ -->
 
	<acceptor type="tcp" listenAddr="0.0.0.0" port="2036">
		<!-- negotiator type="challenge" description="/temp/users.db"/ -->
	</acceptor>
 
	<repository name="repo1">
		<property name="overrideUUID" value="1ff5d226-b1f0-40fb-aba2-0c31b38c764f"/>
		<property name="supportingAudits" value="true"/>
		<property name="verifyingRevisions" value="false"/>
		<property name="currentLRUCapacity" value="10000"/>
		<property name="revisedLRUCapacity" value="100"/>
 
		<store type="db">
			<mappingStrategy type="horizontal">
				<property name="qualifiedNames" value="false"/>
				<property name="toManyReferences" value="ONE_TABLE_PER_REFERENCE"/>
				<property name="toOneReferences" value="LIKE_ATTRIBUTES"/>
			</mappingStrategy>
 
			<!-- Old setting <jdbcDelegate type="statement" />
			     is now replaced by preparedStatement: --> 
			<jdbcDelegate type="preparedStatement" > 			
			    <!-- to explicitly force prepared statement caching (e.g., if statement pooling is not supported 
			         by the JDBC driver, use
			   <property name="cacheStatements" value="enabled" /> 
			         Else, the implicit default is:
			   <property name="cacheStatements" value="guess" />
			         Which guesses the correct setting based on the JDBC driver's metadata.
			         Also supported is the third setting "disabled".
			   -->
			</jdbcDelegate>
			<dbAdapter name="derby-embedded"/>
			<dataSource class="org.apache.derby.jdbc.EmbeddedDataSource"
				databaseName="/temp/cdodb1"
				createDatabase="create"/>
 
			<!--
			<dbAdapter name="hsqldb"/>
			<dataSource class="org.eclipse.net4j.db.hsqldb.HSQLDBDataSource" 
				database="jdbc:hsqldb:mem:cdodb1"
				user="sa"/>
                        -->
 
			<!--
			<dbAdapter name="mysql"/>
			<dataSource class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" 
				url="jdbc:mysql://localhost/cdodb1"
				user="sa"/>
                        -->
 
			<!--
			<dbAdapter name="postgresql"/>
			<dataSource class="org.postgresql.ds.PGSimpleDataSource"
				url="jdbc:postgresql://localhost:5432/cdo"
				databaseName="cdo"
				user="cdo"
				password="cdo"/>
                        -->
		</store>
	</repository>
 
</cdoServer>

Create launch config

  • Create a new Eclipse Application launch configuration
  • On the main tab in the 'Program to Run' section set the radio button to 'Run an application' and select 'org.eclipse.emf.cdo.server.app'
  • Switch to the Arguments tab and
    • set
      -os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -debug -console
      as program argument
    • set
      -Xms40m -Xmx1024m -Ddebug=true -Dnet4j.config=${resource_loc:/cdo.serverConfig/configuration} -Dorg.osgi.service.http.port=8080
      as VM arguments

Starting the server

Now go and fire up the newly created launch configuration

On the console you should get something similar to

Configuration location:
    file:/C:/eclipse/3.5M4/eclipse/ws/.metadata/.plugins/org.eclipse.pde.core/cdo-server/
Configuration file:
    file:/C:/eclipse/3.5M4/eclipse/ws/.metadata/.plugins/org.eclipse.pde.core/cdo-server/config.ini loaded
Install location:
    file:/C:/eclipse/3.5M4/eclipse/
Framework located:
    file:/C:/eclipse/3.5M4/eclipse/plugins/org.eclipse.osgi_3.5.0.v20081201-1815.jar
Framework classpath:
    file:/C:/eclipse/3.5M4/eclipse/plugins/org.eclipse.osgi_3.5.0.v20081201-1815.jar
Splash location:
    null
Debug options:
    file:/C:/eclipse/3.5M4/eclipse/.options not found
 
osgi> Time to load bundles: 0
Starting application: 1888
[INFO] CDO Server starting
[INFO] CDO Server started
Application Started: 10363

According to the config file from above, derby is used to store the data. The database can be found in the temp folder of your harddrive

Testing the server configuration

  • Open the 'CDO Sessions' view
  • Create a new session using the '+' icon from the views toolbar
    • use
      tcp://localhost:2036
      as server description
    • repo1
      has to be used as repository name
    • Hit finish
  • Using the context menu on the session, you can register new ecore packages
  • Select the session and open a new transaction from the context menu
  • Open the context menu on the transaction an hit 'Create Resource...', choose a name and hit finish
  • The resource editor opens and you can create new model elements in it using the context menu

Back to the top