Start Apache Derby Network Server usng Spring

March 31, 2013 Leave a comment

Get System properties from java.lang.System and add “derby.system.home” location into it

<bean id="systemProp" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
	<property name="targetObject">
		<!-- System.getProperties() -->
		<bean
			class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
			<property name="targetClass" value="java.lang.System" />
			<property name="targetMethod" value="getProperties" />
		</bean>
	</property>
	<property name="targetMethod" value="putAll" />
	<property name="arguments">
		<!-- The new Properties -->
		<util:properties>
			<prop key="derby.system.home">d:\\wp-admin</prop>
		</util:properties>
	</property>
</bean>

Get localhost InetAddress to start Derby network server on it.

<bean id="derbyServerIP"
	class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
	<property name="targetObject">
		<bean class="java.net.InetAddress" />
	</property>
	<property name="targetMethod">
		<value>getByName</value>
	</property>
	<property name="arguments" value="localhost" />
</bean>

Create bean of Derby org.apache.derby.drda.NetworkServerControl class

<bean id="derbyServer" class="org.apache.derby.drda.NetworkServerControl"
	destroy-method="shutdown" depends-on="systemProp">
	<constructor-arg ref="derbyServerIP" />
	<constructor-arg value="1527" />
</bean>

Create Printwriter object to use as log output reader for derby network server

<bean id="pw" class="java.io.PrintWriter">
	<constructor-arg>
		<util:constant static-field="java.lang.System.out" />
	</constructor-arg>
	<constructor-arg value="true" />
</bean>

Finaly start derby network server

<bean id="startDerby"
	class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
	depends-on="derbyServer">
	<property name="targetObject">
		<ref local="derbyServer" />
	</property>
	<property name="targetMethod">
		<value>start</value>
	</property>
	<property name="arguments" ref="pw" />
</bean>

created datasource to connect to derby server

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
	depends-on="startDerby">
	<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver" />
	<property name="url" value="jdbc:derby:wp-admin;create=true" />
	<property name="initialSize" value="2" />
	<property name="maxActive" value="5" />
</bean>

create entitymanager to work on derby server

<bean id="entityManagerFactory"
	class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<property name="persistenceUnitName" value="spring-jpa" />
	<property name="jpaVendorAdapter">
		<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
			<property name="showSql" value="false" />
			<property name="generateDdl" value="true" />
			<property name="database" value="DERBY" />
		</bean>
	</property>
</bean>

attache transaction manager to entirymanager factory

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
	<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

create entitymanager from entitymanager factory

<bean id="entityManager"
	class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
	<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
Design a site like this with WordPress.com
Get started