|
OnePageManual
#One page Manual. One Page ManualInstallation
mvn clean install [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] ------------------------------------------------------------------------ [INFO] spring-on-rails ....................................... SUCCESS [1.703s] [INFO] spring-on-rails-core .................................. SUCCESS [4.688s] [INFO] maven-springonrails-plugin ............................ SUCCESS [1.656s] [INFO] ------------------------------------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8 seconds [INFO] Finished at: Sun Oct 07 20:05:58 EDT 2007 [INFO] Final Memory: 13M/24M [INFO] ------------------------------------------------------------------------ ant mvn jetty:run
Getting started in 5 minutes
<target name="onRailsTarget"> <taskdef name="springOnRailsTask" classname="com.asksunny.springonrails.ant.SpringOnRailsTask"> <classpath refid="SpringOnRails_lib"></classpath> </taskdef> <springOnRailsTask entityMappingLocation = "File_PATH_TO_mytypemap.xml" outputPackageName = "your.java.output.package.name.prefix" outputDir = "FILE_PATH_WHERE_YOU_WANT_SOURCE_FILE_TO_BE" projectName= "PICK_YOUR_FAVORITE_PROJECT_NAME_IN_SHORT" /> </target>
UNIX: $ant myFirstRails Windows: >ant.bat myFirstRails
This is new addition to Spring-On-Rails for who does not like mixture of ANT in Spring-On-Rails. Orignally planned Maven archetype seems taking more steps to get job done, I decided to use Maven plugin only.
<project> <modelVersion>4.0.0</modelVersion> <groupId>I.want.to.fool.maven</groupId> <artifactId>Dummy</artifactId> <packaging>war</packaging> <version>1.0</version> <name>A custom project</name> <url>http://www.springonrails.org</url> </project> mvn springonrails:rails \ -DentityMappingLocation=<ENTITY_MAPPING_FILE> \ -DoutputDirectory=<PATH_TO_OUTPUT_DIRECTORY> \ -DgroupId=<OUTPUT_PACKAGE_NAME> \ -DartifactId=<PROJECT_NAME>
Please wait until Jetty fully started and proceed to next step.
Now it is time to see what have been generated.
Now, it is time to examine source files that were generated by Spring-On-Rails. There isn't any surprise here. Directory structure is pretty much standard Maven's file structure as shown at below. <Project_Name>
|----pom.xml
|----src
|----main
|----webapp
| |----WEB-INF
| | |----dataAccess1Context.xml
| | |----dataAccess2Context.xml
| | |----jdbc.properties
| | |----log4j.properties
| | |----spring1-servlet.xml
| | |----spring2-servlet.xml
| | |----sql-map-config.xml
| | |----web.xml
| | |----JSP
| | |--<XXX>.jsp
| |----src
| |--main
| |--resources
| |--entity.ddl
|----java
|--<package-prefix>
|--controller
| |--Spring<XXX>Controller.java
|--dao
| |--<XXX>DAO.java
| |--ibatis
| | |--<XXX>DAOImpl.java
| |--mock
| |--<XXX>DAOImpl.java
| |--hibernate
| |--<XXX>DAOImpl.java
|--model
| |--mapping
| | |--<XXX>.xml
| |--<XXX>.java
|--trans
| |--TransactionProxy.java
| |--TransactionProxyImpl.java
|--web
| |--view
| |--FlexXMLView.java
| |--FlexXMLViewResolver.java
|--xml
|--AbstractObjectXMLSerializer.java
|--DefaultObjectXMLSerializer.java
|--ErrorXMLSerializer.java
|--ObjectXMLSerializer.java
|--ObjectXMLSerializerFactory.java
|--SimpleBeanXMLSerializer.javaIDE IntegrationChange directory to your project's root directory. EclipseRun following command firstmvn eclipse:eclipse Start up eclipse and import existing project into eclipseNetbeansmvn netbeans-freeform:generate-netbeans-project IntelliJmvn idea:idea At this point, I assume you know how to proceed to next step. Anatomy of Entity Mapping Fileexample of entity mapping file:<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.asksunny.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.asksunny.com typeMap.xsd">
<meta><![CDATA[
controllerType=multiple
ormType=hibernate
springVersion=2
jeeVersion=4
]]></meta>
<entity javaName="BudgetServer" tableName="BUDGET_SERVER" viewLabel="Budget Server">
<property javaName="serverId" columnName="server_id" allowNull="false"
primaryKey="true"
javaType="int" sqlType="NUMBER(10)" />
<property javaName="serverName" columnName="server_name"
javaType="String" sqlType="VARCHAR2" length="32">
<set><![CDATA[
if(serverName==null || serverName.length()>32) throw new IllegalArgumentException("invalid serverName " + serverName);
this.serverName = serverName;
]]></set>
</property>
<property javaName="price" columnName="price"
javaType="double" sqlType="NUMBER(16, 2)" />
<methods><![CDATA[
//Addition methods to add to PoJo class.
public void doSomething()
{
//We have nothing to do here;
}
public String returnAfterMessage()
{
return serverId + " >>" + serverName;
}
]]></methods>
</entity>
</map>
explanation of entity mapping file:1. <meta> element <meta> element is used to instruct Spring-On-Rails to generate application accorddingly. It uses Java Properties format. This element is optional, many of them can also be specified in ANT build file. However, properties in this section will override those specified in ANT build file. The following are available properties and its coresponse value.
2. <entity> element <entity> element represents a Java type and database table definition.
|
Sign in to add a comment
