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.
CDO/Spring
< CDO
Revision as of 14:46, 13 January 2010 by Assen.sharlandjiev.gmail.com (Talk | contribs) (→Spring context beans)
Spring context beans
- ContextFactoryRegistrar - is a bean post processor that is responsible to register factory beans of a specified product group with the managed container. The factory beans are defined in the spring context.
- ContextManagedContainer - extends the ManagedContainer class, and implements ApplicationListener interface. This bean is acts upon ContextRefreshEvent and activates the ManagedContainer, after the spring context has been initialized or refreshed - after all of the factories are registered with the ManagedContainer.
- ContextRepositoryProvider - provides repositories defined as beans in the Spring context.
- CommonsLogger - delegates the OMPlatform logging to Apache's commons logging engine
Source files archive - CDO_Spring.zip
CDO server context
- file name cdo-server.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <util:map id="props" key-type="java.lang.String" value-type="java.lang.String"> <entry key="overrideUUID" value="1ff5d226-b1f0-40fb-aba2-0c31b38c764f" /> <entry key="supportingAudits" value="true" /> <entry key="verifyingRevisions" value="false" /> <entry key="currentLRUCapacity" value="10000" /> <entry key="revisedLRUCapacity" value="100" /> </util:map> <bean id="dataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"> <property name="user" value="cdo"/> <property name="password" value="cdo"/> <property name="serverName" value="d510"/> <property name="port" value="3306"/> <property name="databaseName" value="cdo"/> </bean> <bean id="dbStore" class="org.eclipse.emf.cdo.server.internal.db.DBStore"> <property name="dataSource" ref="dataSource"/> <property name="DBAdapter"> <bean id="dbAdapter" class="org.eclipse.net4j.db.mysql.MYSQLAdapter"/> </property> <property name="mappingStrategy"> <bean id="mappingStrategy" class="org.eclipse.emf.cdo.server.internal.db.mapping.horizontal.HorizontalAuditMappingStrategy"/> </property> </bean> <bean id="repo1" class="org.eclipse.emf.cdo.internal.server.Repository" init-method="activate" destroy-method="deactivate"> <property name="name" value="repo1"/> <property name="store" ref="dbStore"/> <property name="properties" ref="props"/> <property name="packageRegistry"><bean class="org.eclipse.emf.cdo.internal.common.model.CDOPackageRegistryImpl"/></property> <property name="sessionManager"><bean class="org.eclipse.emf.cdo.internal.server.SessionManager"/></property> <property name="revisionManager"><bean class="org.eclipse.emf.cdo.internal.common.revision.CDORevisionManagerImpl"/></property> <property name="queryManager"><bean class="org.eclipse.emf.cdo.internal.server.QueryManager"/></property> <property name="notificationManager"><bean class="org.eclipse.emf.cdo.internal.server.NotificationManager"/></property> <property name="commitManager"><bean class="org.eclipse.emf.cdo.internal.server.CommitManager"/></property> <property name="lockManager"><bean class="org.eclipse.emf.cdo.internal.server.LockManager"/></property> </bean> <!-- container factories & post processors--> <bean id="serverProtocolFactory" class="org.eclipse.emf.cdo.server.internal.net4j.protocol.CDOServerProtocolFactory"> <constructor-arg><bean id="contextRepositoryProvider" class="org.eclipse.emf.cdo.server.spring.ContextRepositoryProvider"/></constructor-arg> </bean> <!-- ContainerUtil --> <bean id="executorServiceFactory" class="org.eclipse.net4j.util.concurrent.ExecutorServiceFactory"/> <bean id="timerLifecycle.DaemonFactory" class="org.eclipse.net4j.util.concurrent.TimerLifecycle$DaemonFactory"/> <bean id="randomizerFactory" class="org.eclipse.net4j.util.security.RandomizerFactory"/> <bean id="fileUserManagerFactory" class="org.eclipse.net4j.util.security.FileUserManagerFactory"/> <!-- Net4JUtil --> <bean id="bufferProviderFactory" class="org.eclipse.internal.net4j.buffer.BufferProviderFactory"/> <bean id="transportInjector" class="org.eclipse.net4j.TransportInjector"/> <bean id="heartBeatProtocol.Server.Factory" class="org.eclipse.net4j.signal.heartbeat.HeartBeatProtocol$Server$Factory"/> <!-- TCPUtil --> <bean id="tcpSelectorFactory" class="org.eclipse.net4j.internal.tcp.TCPSelectorFactory"/> <bean id="tcpAcceptorFactory" class="org.eclipse.net4j.internal.tcp.TCPAcceptorFactory"/> <bean id="tcpConnectorFactory" class="org.eclipse.net4j.internal.tcp.TCPConnectorFactory"/> <bean id="tcpSelectorInjector" class="org.eclipse.net4j.internal.tcp.TCPSelectorInjector"/> <bean id="container" class="org.eclipse.emf.cdo.server.spring.ContextManagedContainer" destroy-method="deactivate"/> <bean id="serverProtocolFactoryRegistrar" class="org.eclipse.emf.cdo.server.spring.ContextFactoryRegistrar"> <property name="container" ref="container"/> <property name="productGroup" value="org.eclipse.net4j.serverProtocols"/> </bean> <!-- Ne4j --> <bean id="serverProtocolProvider" class="org.eclipse.net4j.FactoriesProtocolProvider"> <constructor-arg ref="serverProtocolFactory"/> </bean> <bean id="serverConfig" class="org.eclipse.internal.net4j.TransportConfig"> <property name="bufferProvider"> <bean factory-bean="bufferProviderFactory" factory-method="create"> <constructor-arg value=""/> </bean> </property> <property name="protocolProvider" ref="serverProtocolProvider"/> <property name="receiveExecutor"> <bean factory-bean="executorServiceFactory" factory-method="create"> <constructor-arg value="net4j"/> </bean> </property> </bean> <bean id="accpetor" class="org.eclipse.net4j.internal.tcp.TCPAcceptor" init-method="activate" destroy-method="deactivate"> <property name="address" value="localhost"/> <property name="port" value="2036"/> <property name="selector"> <bean id="selector" class="org.eclipse.net4j.internal.tcp.TCPSelector" init-method="activate" destroy-method="deactivate"/> </property> <property name="config" ref="serverConfig"/> </bean> </beans>
CDO client context
- file name cdo-client.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd" default-init-method="activate" default-destroy-method="deactivate" > <bean id="threadFactory" class="org.springframework.scheduling.concurrent.CustomizableThreadFactory" p:daemon="true" p:threadGroupName="net4j"/> <bean id="threadPool" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="staticMethod" value="java.util.concurrent.Executors.newCachedThreadPool"/> <property name="arguments"> <list><ref bean="threadFactory"/></list> </property> </bean> <bean id="bufferFactory" class="org.eclipse.internal.net4j.buffer.BufferFactory"> <constructor-arg value="4096"/> </bean> <bean id="bufferPool" class="org.eclipse.internal.net4j.buffer.BufferPool"> <constructor-arg ref="bufferFactory"/> </bean> <bean id="clientProtocolFactory" class="org.eclipse.emf.cdo.internal.net4j.protocol.CDOClientProtocolFactory"/> <bean id="clientProtocolProvider" class="org.eclipse.net4j.FactoriesProtocolProvider"> <constructor-arg ref="clientProtocolFactory"/> </bean> <bean id="selector" class="org.eclipse.net4j.internal.tcp.TCPSelector"/> <bean id="clientConfig" class="org.eclipse.internal.net4j.TransportConfig"> <property name="bufferProvider" ref="bufferPool"/> <property name="protocolProvider" ref="clientProtocolProvider"/> <property name="receiveExecutor" ref="threadPool"/> </bean> <bean id="connector" class="org.eclipse.net4j.internal.tcp.TCPClientConnector"> <property name="host" value="localhost"/> <property name="port" value="2036"/> <property name="selector" ref="selector"/> <property name="config" ref="clientConfig"/> </bean> <bean id="sessionConfiguration" class="org.eclipse.emf.cdo.internal.net4j.CDONet4jSessionConfigurationImpl"> <property name="activateOnOpen" value="true"/> <property name="repositoryName" value="repo1"/> <property name="connector" ref="connector"/> </bean> </beans>