springmvc-scaffold 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +45 -0
- data/README.markdown +31 -0
- data/Rakefile +9 -0
- data/bin/springmvc +7 -0
- data/lib/springmvc-scaffold.rb +14 -0
- data/lib/springmvc-scaffold/configuration.rb +50 -0
- data/lib/springmvc-scaffold/execution.rb +20 -0
- data/lib/springmvc-scaffold/generators/app/app_generator.rb +123 -0
- data/lib/springmvc-scaffold/generators/app/dependencies.rb +26 -0
- data/lib/springmvc-scaffold/generators/app/dependency.rb +15 -0
- data/lib/springmvc-scaffold/generators/app/templates/build.gradle.erb +56 -0
- data/lib/springmvc-scaffold/generators/app/templates/models/Entity.erb +46 -0
- data/lib/springmvc-scaffold/generators/app/templates/orm/Repository-hibernate.java.tt +51 -0
- data/lib/springmvc-scaffold/generators/app/templates/orm/Repository-jpa.java.tt +49 -0
- data/lib/springmvc-scaffold/generators/app/templates/pom.erb +95 -0
- data/lib/springmvc-scaffold/generators/app/templates/resources/hibernate.properties +16 -0
- data/lib/springmvc-scaffold/generators/app/templates/resources/log4j.properties +4 -0
- data/lib/springmvc-scaffold/generators/app/templates/resources/messages.properties +0 -0
- data/lib/springmvc-scaffold/generators/app/templates/springmvc-scaffold.erb +6 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/.bowerrc +3 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/WEB-INF/jsp/decorators/main.jsp +15 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/WEB-INF/jsp/prelude.jspf +4 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/WEB-INF/sitemesh3.xml +3 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/WEB-INF/spring-servlet.xml.tt +42 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/WEB-INF/web.xml.tt +52 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/bower.json.tt +7 -0
- data/lib/springmvc-scaffold/generators/app/templates/webapp/stylesheets/application.css +38 -0
- data/lib/springmvc-scaffold/generators/base.rb +17 -0
- data/lib/springmvc-scaffold/generators/scaffold/attribute.rb +68 -0
- data/lib/springmvc-scaffold/generators/scaffold/base_scaffold.rb +54 -0
- data/lib/springmvc-scaffold/generators/scaffold/controller/controller_generator.rb +20 -0
- data/lib/springmvc-scaffold/generators/scaffold/controller/templates/controller.erb +126 -0
- data/lib/springmvc-scaffold/generators/scaffold/controller/templates/controller_test.erb +13 -0
- data/lib/springmvc-scaffold/generators/scaffold/imports.rb +18 -0
- data/lib/springmvc-scaffold/generators/scaffold/jsp/jsp_generator.rb +40 -0
- data/lib/springmvc-scaffold/generators/scaffold/jsp/templates/edit.erb +15 -0
- data/lib/springmvc-scaffold/generators/scaffold/jsp/templates/form.erb +14 -0
- data/lib/springmvc-scaffold/generators/scaffold/jsp/templates/index.erb +38 -0
- data/lib/springmvc-scaffold/generators/scaffold/jsp/templates/new.erb +14 -0
- data/lib/springmvc-scaffold/generators/scaffold/jsp/templates/show.erb +16 -0
- data/lib/springmvc-scaffold/generators/scaffold/model/model_generator.rb +16 -0
- data/lib/springmvc-scaffold/generators/scaffold/model/templates/model.erb +22 -0
- data/lib/springmvc-scaffold/generators/scaffold/model/templates/model_test.erb +13 -0
- data/lib/springmvc-scaffold/generators/scaffold/repository/repository_generator.rb +30 -0
- data/lib/springmvc-scaffold/generators/scaffold/repository/templates/repository.erb +18 -0
- data/lib/springmvc-scaffold/generators/scaffold/repository/templates/repository_test.erb +13 -0
- data/lib/springmvc-scaffold/generators/scaffold/scaffold_generator.rb +31 -0
- data/lib/springmvc-scaffold/runner.rb +7 -0
- data/lib/springmvc-scaffold/runner/commands_help.rb +11 -0
- data/lib/springmvc-scaffold/runner/generator.rb +14 -0
- data/lib/springmvc-scaffold/runner/help.rb +10 -0
- data/lib/springmvc-scaffold/runner/scaffold.rb +15 -0
- data/lib/springmvc-scaffold/version.rb +3 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/springmvc-scaffold/configuration_spec.rb +124 -0
- data/spec/springmvc-scaffold/execution_spec.rb +40 -0
- data/spec/springmvc-scaffold/generators/app/app_generator_spec.rb +226 -0
- data/spec/springmvc-scaffold/generators/app/dependency_spec.rb +14 -0
- data/spec/springmvc-scaffold/generators/app/templates/Entity.java +46 -0
- data/spec/springmvc-scaffold/generators/app/templates/RepositoryJPA.java +49 -0
- data/spec/springmvc-scaffold/generators/app/templates/build.gradle +59 -0
- data/spec/springmvc-scaffold/generators/app/templates/pom.xml +146 -0
- data/spec/springmvc-scaffold/generators/app/templates/springmvc-scaffold.properties +6 -0
- data/spec/springmvc-scaffold/generators/scaffold/attribute_spec.rb +215 -0
- data/spec/springmvc-scaffold/generators/scaffold/base_scaffold_spec.rb +70 -0
- data/spec/springmvc-scaffold/generators/scaffold/controller/controller_generator_spec.rb +53 -0
- data/spec/springmvc-scaffold/generators/scaffold/controller/templates/ProductsController.java +97 -0
- data/spec/springmvc-scaffold/generators/scaffold/imports_spec.rb +9 -0
- data/spec/springmvc-scaffold/generators/scaffold/jsp/jsp_generator_spec.rb +46 -0
- data/spec/springmvc-scaffold/generators/scaffold/jsp/templates/form.jsp +25 -0
- data/spec/springmvc-scaffold/generators/scaffold/model/model_generator_spec.rb +28 -0
- data/spec/springmvc-scaffold/generators/scaffold/model/templates/Product.java +43 -0
- data/spec/springmvc-scaffold/generators/scaffold/repository/repository_generator_spec.rb +49 -0
- data/spec/springmvc-scaffold/generators/scaffold/repository/templates/Clients.java +16 -0
- data/spec/springmvc-scaffold/generators/scaffold/repository/templates/Products.java +10 -0
- data/spec/springmvc-scaffold/generators/scaffold/scaffold_generator_spec.rb +60 -0
- data/spec/springmvc-scaffold/runner/commands_help_spec.rb +13 -0
- data/spec/springmvc-scaffold/runner/generator_spec.rb +21 -0
- data/spec/springmvc-scaffold/runner/help_spec.rb +22 -0
- data/spec/springmvc-scaffold/runner/scaffold_spec.rb +36 -0
- data/spec/springmvc-scaffold_spec.rb +4 -0
- data/springmvc-scaffold.gemspec +27 -0
- metadata +185 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
package <%= options[:package] %>.<%= options[:repositories_package] %>;
|
2
|
+
|
3
|
+
import java.lang.reflect.ParameterizedType;
|
4
|
+
import java.util.List;
|
5
|
+
|
6
|
+
import org.hibernate.Session;
|
7
|
+
import org.hibernate.SessionFactory;
|
8
|
+
import org.springframework.transaction.annotation.Transactional;
|
9
|
+
|
10
|
+
@Transactional
|
11
|
+
public abstract class GenericRepository<T> {
|
12
|
+
|
13
|
+
private final SessionFactory factory;
|
14
|
+
protected final Class<T> clazz;
|
15
|
+
|
16
|
+
protected GenericRepository(SessionFactory factory) {
|
17
|
+
this.factory = factory;
|
18
|
+
|
19
|
+
@SuppressWarnings("unchecked")
|
20
|
+
Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
|
21
|
+
|
22
|
+
this.clazz = clazz;
|
23
|
+
}
|
24
|
+
|
25
|
+
protected Session session() {
|
26
|
+
return factory.getCurrentSession();
|
27
|
+
}
|
28
|
+
|
29
|
+
public void add(T entity) {
|
30
|
+
session().persist(entity);
|
31
|
+
}
|
32
|
+
|
33
|
+
@SuppressWarnings("unchecked")
|
34
|
+
public T update(T entity) {
|
35
|
+
return (T) session().merge(entity);
|
36
|
+
}
|
37
|
+
|
38
|
+
public void remove(Long id) {
|
39
|
+
session().delete(get(id));
|
40
|
+
}
|
41
|
+
|
42
|
+
@SuppressWarnings("unchecked")
|
43
|
+
public T get(Long id) {
|
44
|
+
return (T) session().get(clazz, id);
|
45
|
+
}
|
46
|
+
|
47
|
+
@SuppressWarnings("unchecked")
|
48
|
+
public List<T> all() {
|
49
|
+
return session().createQuery("from " + clazz.getName()).list();
|
50
|
+
}
|
51
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
package <%= options[:package] %>.<%= options[:repositories_package] %>;
|
2
|
+
|
3
|
+
import java.lang.reflect.ParameterizedType;
|
4
|
+
import java.util.List;
|
5
|
+
|
6
|
+
import javax.persistence.EntityManager;
|
7
|
+
import javax.persistence.PersistenceContext;
|
8
|
+
|
9
|
+
import org.springframework.transaction.annotation.Transactional;
|
10
|
+
|
11
|
+
@Transactional
|
12
|
+
public abstract class GenericRepository<T> {
|
13
|
+
|
14
|
+
protected EntityManager em;
|
15
|
+
protected final Class<T> clazz;
|
16
|
+
|
17
|
+
protected GenericRepository() {
|
18
|
+
@SuppressWarnings("unchecked")
|
19
|
+
Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
|
20
|
+
|
21
|
+
this.clazz = clazz;
|
22
|
+
}
|
23
|
+
|
24
|
+
@PersistenceContext
|
25
|
+
public void setEntityManager(EntityManager em) {
|
26
|
+
this.em = em;
|
27
|
+
}
|
28
|
+
|
29
|
+
public void add(T entity) {
|
30
|
+
em.persist(entity);
|
31
|
+
}
|
32
|
+
|
33
|
+
public T update(T entity) {
|
34
|
+
return em.merge(entity);
|
35
|
+
}
|
36
|
+
|
37
|
+
public void remove(Long id) {
|
38
|
+
em.remove(get(id));
|
39
|
+
}
|
40
|
+
|
41
|
+
public T get(Long id) {
|
42
|
+
return em.find(clazz, id);
|
43
|
+
}
|
44
|
+
|
45
|
+
@SuppressWarnings("unchecked")
|
46
|
+
public List<T> all() {
|
47
|
+
return em.createQuery("from " + clazz.getName()).getResultList();
|
48
|
+
}
|
49
|
+
}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
4
|
+
<groupId><%= @project_name %></groupId>
|
5
|
+
<artifactId><%= @project_name %></artifactId>
|
6
|
+
<packaging>war</packaging>
|
7
|
+
<version>0.0.1-SNAPSHOT</version>
|
8
|
+
<name><%= @project_name %></name>
|
9
|
+
|
10
|
+
<properties>
|
11
|
+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
12
|
+
</properties>
|
13
|
+
|
14
|
+
<build>
|
15
|
+
<outputDirectory>${basedir}/<%= Configuration::WEB_INF %>/classes</outputDirectory>
|
16
|
+
<plugins>
|
17
|
+
<plugin>
|
18
|
+
<artifactId>maven-compiler-plugin</artifactId>
|
19
|
+
<version>3.2</version>
|
20
|
+
<configuration>
|
21
|
+
<source>1.7</source>
|
22
|
+
<target>1.7</target>
|
23
|
+
<encoding>UTF-8</encoding>
|
24
|
+
</configuration>
|
25
|
+
</plugin>
|
26
|
+
<plugin>
|
27
|
+
<artifactId>maven-eclipse-plugin</artifactId>
|
28
|
+
<version>2.9</version>
|
29
|
+
<configuration>
|
30
|
+
<downloadSources>true</downloadSources>
|
31
|
+
<downloadJavadocs>true</downloadJavadocs>
|
32
|
+
<wtpversion>2.0</wtpversion>
|
33
|
+
</configuration>
|
34
|
+
</plugin>
|
35
|
+
<plugin>
|
36
|
+
<groupId>org.apache.maven.plugins</groupId>
|
37
|
+
<artifactId>maven-war-plugin</artifactId>
|
38
|
+
<version>2.5</version>
|
39
|
+
</plugin>
|
40
|
+
<plugin>
|
41
|
+
<groupId>org.eclipse.jetty</groupId>
|
42
|
+
<artifactId>jetty-maven-plugin</artifactId>
|
43
|
+
<version>9.2.5.v20141112</version>
|
44
|
+
<configuration>
|
45
|
+
<scanIntervalSeconds>3</scanIntervalSeconds>
|
46
|
+
<stopKey>foo</stopKey>
|
47
|
+
<stopPort>9999</stopPort>
|
48
|
+
<webAppConfig>
|
49
|
+
<contextPath>/</contextPath>
|
50
|
+
</webAppConfig>
|
51
|
+
</configuration>
|
52
|
+
</plugin>
|
53
|
+
</plugins>
|
54
|
+
</build>
|
55
|
+
|
56
|
+
<dependencies><% Dependencies.compile_scope.each do |dependency| %>
|
57
|
+
<dependency>
|
58
|
+
<groupId><%= dependency.group %></groupId>
|
59
|
+
<artifactId><%= dependency.name %></artifactId>
|
60
|
+
<version><%= dependency.version %></version><% if dependency.has_exclusions? %>
|
61
|
+
<exclusions><% dependency.exclusions.each do |exclusion| %>
|
62
|
+
<exclusion>
|
63
|
+
<groupId><%= exclusion.group %></groupId>
|
64
|
+
<artifactId><%= exclusion.name %></artifactId>
|
65
|
+
</exclusion><% end %>
|
66
|
+
</exclusions><% end %>
|
67
|
+
</dependency><% end %>
|
68
|
+
|
69
|
+
<!-- Test dependencies --><% Dependencies.test_scope.each do |dependency| %>
|
70
|
+
<dependency>
|
71
|
+
<groupId><%= dependency.group %></groupId>
|
72
|
+
<artifactId><%= dependency.name %></artifactId>
|
73
|
+
<version><%= dependency.version %></version>
|
74
|
+
<scope>test</scope>
|
75
|
+
</dependency><% end %>
|
76
|
+
|
77
|
+
<!-- Provided dependencies --><% Dependencies.provided_scope.each do |dependency| %>
|
78
|
+
<dependency>
|
79
|
+
<groupId><%= dependency.group %></groupId>
|
80
|
+
<artifactId><%= dependency.name %></artifactId>
|
81
|
+
<version><%= dependency.version %></version>
|
82
|
+
<scope>provided</scope>
|
83
|
+
</dependency><% end %>
|
84
|
+
</dependencies>
|
85
|
+
|
86
|
+
<reporting>
|
87
|
+
<plugins>
|
88
|
+
<plugin>
|
89
|
+
<groupId>org.codehaus.mojo</groupId>
|
90
|
+
<artifactId>cobertura-maven-plugin</artifactId>
|
91
|
+
<version>2.6</version>
|
92
|
+
</plugin>
|
93
|
+
</plugins>
|
94
|
+
</reporting>
|
95
|
+
</project>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
hibernate.connection.driver_class=org.hsqldb.jdbcDriver
|
2
|
+
hibernate.connection.url=jdbc:hsqldb:file:tmp/devdb
|
3
|
+
hibernate.hbm2ddl.auto=update
|
4
|
+
hibernate.query.substitutions=true=1, false=0
|
5
|
+
hibernate.show_sql=true
|
6
|
+
hibernate.format_sql=true
|
7
|
+
|
8
|
+
#DATASOURCE POOL CONFIGURATIONS
|
9
|
+
hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider
|
10
|
+
maxPoolSize=20
|
11
|
+
minPoolSize=3
|
12
|
+
initialPoolSize=3
|
13
|
+
timeout=25200
|
14
|
+
acquireIncrement=5
|
15
|
+
preferredTestQuery=select 1
|
16
|
+
idleConnectionTestPeriod=100
|
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<title><sitemesh:write property='title'/></title>
|
6
|
+
<sitemesh:write property='head'/>
|
7
|
+
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/stylesheets/application.css"/>
|
8
|
+
</head>
|
9
|
+
|
10
|
+
<body>
|
11
|
+
<sitemesh:write property='body'/>
|
12
|
+
<script type="text/javascript" src="${pageContext.request.contextPath}/lib/jquery/dist/jquery.min.js"></script>
|
13
|
+
<script type="text/javascript" src="${pageContext.request.contextPath}/javascripts/application.js"></script>
|
14
|
+
</body>
|
15
|
+
</html>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
2
|
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
3
|
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
4
|
+
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<beans xmlns="http://www.springframework.org/schema/beans"
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
|
4
|
+
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
|
5
|
+
xmlns:tx="http://www.springframework.org/schema/tx"
|
6
|
+
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
7
|
+
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
|
8
|
+
http://www.springframework.org/schema/context
|
9
|
+
http://www.springframework.org/schema/context/spring-context-4.1.xsd
|
10
|
+
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
|
11
|
+
http://www.springframework.org/schema/tx
|
12
|
+
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">
|
13
|
+
|
14
|
+
<context:component-scan base-package="<%= @base_package %>" />
|
15
|
+
|
16
|
+
<mvc:annotation-driven />
|
17
|
+
|
18
|
+
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
|
19
|
+
<property name="prefix" value="/WEB-INF/jsp/" />
|
20
|
+
<property name="suffix" value=".jsp" />
|
21
|
+
</bean>
|
22
|
+
|
23
|
+
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" />
|
24
|
+
|
25
|
+
<%- if orm == "hibernate" -%>
|
26
|
+
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
|
27
|
+
p:dataSource-ref="dataSource" p:packagesToScan="app.models" />
|
28
|
+
|
29
|
+
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"
|
30
|
+
p:sessionFactory-ref="sessionFactory" /><% else -%>
|
31
|
+
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
|
32
|
+
p:dataSource-ref="dataSource" p:packagesToScan="<%= @models_package %>">
|
33
|
+
<property name="jpaVendorAdapter">
|
34
|
+
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
|
35
|
+
</property>
|
36
|
+
</bean>
|
37
|
+
|
38
|
+
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
|
39
|
+
p:entityManagerFactory-ref="entityManagerFactory" />
|
40
|
+
<%- end %>
|
41
|
+
<tx:annotation-driven />
|
42
|
+
</beans>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
|
3
|
+
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
|
4
|
+
id="WebApp_ID" version="2.5">
|
5
|
+
|
6
|
+
<display-name><%= @project_name %></display-name>
|
7
|
+
|
8
|
+
<servlet>
|
9
|
+
<servlet-name>spring</servlet-name>
|
10
|
+
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
11
|
+
<load-on-startup>1</load-on-startup>
|
12
|
+
</servlet>
|
13
|
+
|
14
|
+
<servlet-mapping>
|
15
|
+
<servlet-name>spring</servlet-name>
|
16
|
+
<url-pattern>/</url-pattern>
|
17
|
+
</servlet-mapping>
|
18
|
+
|
19
|
+
<filter>
|
20
|
+
<filter-name>hiddenHttpMethodFilter</filter-name>
|
21
|
+
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
|
22
|
+
</filter>
|
23
|
+
|
24
|
+
<filter-mapping>
|
25
|
+
<filter-name>hiddenHttpMethodFilter</filter-name>
|
26
|
+
<servlet-name>spring</servlet-name>
|
27
|
+
</filter-mapping>
|
28
|
+
|
29
|
+
<filter>
|
30
|
+
<filter-name>sitemesh</filter-name>
|
31
|
+
<filter-class>org.sitemesh.config.ConfigurableSiteMeshFilter</filter-class>
|
32
|
+
</filter>
|
33
|
+
|
34
|
+
<filter-mapping>
|
35
|
+
<filter-name>sitemesh</filter-name>
|
36
|
+
<url-pattern>/*</url-pattern>
|
37
|
+
</filter-mapping>
|
38
|
+
|
39
|
+
<servlet-mapping>
|
40
|
+
<servlet-name>default</servlet-name>
|
41
|
+
<url-pattern>*.css,*.js,*.map</url-pattern>
|
42
|
+
</servlet-mapping>
|
43
|
+
|
44
|
+
<jsp-config>
|
45
|
+
<jsp-property-group>
|
46
|
+
<url-pattern>*.jsp</url-pattern>
|
47
|
+
<page-encoding>UTF-8</page-encoding>
|
48
|
+
<include-prelude>/WEB-INF/jsp/prelude.jspf</include-prelude>
|
49
|
+
</jsp-property-group>
|
50
|
+
</jsp-config>
|
51
|
+
|
52
|
+
</web-app>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
body {
|
2
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
3
|
+
font-size: 14px;
|
4
|
+
line-height: 18px;
|
5
|
+
}
|
6
|
+
|
7
|
+
p, ol, ul, td {
|
8
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
9
|
+
font-size: 14px;
|
10
|
+
line-height: 18px;
|
11
|
+
}
|
12
|
+
|
13
|
+
a {
|
14
|
+
color: #4169E1;
|
15
|
+
}
|
16
|
+
|
17
|
+
a:visited {
|
18
|
+
color: #5F9EA0;
|
19
|
+
}
|
20
|
+
|
21
|
+
a:hover {
|
22
|
+
color: #fff;
|
23
|
+
background-color: #4169E1;
|
24
|
+
}
|
25
|
+
|
26
|
+
div.field, div.actions {
|
27
|
+
margin-bottom: 10px;
|
28
|
+
}
|
29
|
+
|
30
|
+
#message {
|
31
|
+
color: #00BFFF;
|
32
|
+
}
|
33
|
+
|
34
|
+
span[id$=errors] {
|
35
|
+
padding: 2px;
|
36
|
+
color: white;
|
37
|
+
background-color: red;
|
38
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module SpringMvcScaffold
|
2
|
+
class Base < Thor::Group
|
3
|
+
include Thor::Actions
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
require File.dirname(__FILE__) + '/app/app_generator'
|
8
|
+
require File.dirname(__FILE__) + '/app/dependencies'
|
9
|
+
require File.dirname(__FILE__) + '/app/dependency'
|
10
|
+
require File.dirname(__FILE__) + '/scaffold/scaffold_generator'
|
11
|
+
require File.dirname(__FILE__) + '/scaffold/base_scaffold'
|
12
|
+
require File.dirname(__FILE__) + '/scaffold/attribute'
|
13
|
+
require File.dirname(__FILE__) + '/scaffold/imports'
|
14
|
+
require File.dirname(__FILE__) + '/scaffold/model/model_generator'
|
15
|
+
require File.dirname(__FILE__) + '/scaffold/controller/controller_generator'
|
16
|
+
require File.dirname(__FILE__) + '/scaffold/repository/repository_generator'
|
17
|
+
require File.dirname(__FILE__) + '/scaffold/jsp/jsp_generator'
|
@@ -0,0 +1,68 @@
|
|
1
|
+
class Attribute
|
2
|
+
VALID_TYPES = %w(boolean double float short integer long string text date references)
|
3
|
+
|
4
|
+
attr_accessor :name, :type
|
5
|
+
|
6
|
+
def initialize(name, type)
|
7
|
+
@name = name.underscore.camelize(:lower)
|
8
|
+
@type = type.downcase
|
9
|
+
validate
|
10
|
+
end
|
11
|
+
|
12
|
+
def getter_name
|
13
|
+
getter_prefix + name.camelize
|
14
|
+
end
|
15
|
+
|
16
|
+
def setter_name
|
17
|
+
"set#{name.camelize}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def boolean?
|
21
|
+
type == "boolean"
|
22
|
+
end
|
23
|
+
|
24
|
+
def is_reference?
|
25
|
+
type.eql?("references")
|
26
|
+
end
|
27
|
+
|
28
|
+
def declaration
|
29
|
+
"#{java_type} #{name}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def java_type
|
33
|
+
java = type.capitalize
|
34
|
+
java = "boolean" if boolean?
|
35
|
+
java = "String" if type.eql?("text")
|
36
|
+
java = "Date" if type.eql?("date")
|
37
|
+
java = name.camelize if is_reference?
|
38
|
+
java
|
39
|
+
end
|
40
|
+
|
41
|
+
def html_input
|
42
|
+
input = "input"
|
43
|
+
input = "checkbox" if boolean?
|
44
|
+
input = "textarea" if type == "text"
|
45
|
+
input
|
46
|
+
end
|
47
|
+
|
48
|
+
def import
|
49
|
+
Imports.new(type).package
|
50
|
+
end
|
51
|
+
|
52
|
+
def html_label
|
53
|
+
name.underscore.humanize
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
def validate
|
58
|
+
unless VALID_TYPES.include?(@type)
|
59
|
+
puts "Attribute #{@type} is not supported. The supported attributes types are: #{VALID_TYPES.join(", ")}"
|
60
|
+
Kernel::exit
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def getter_prefix
|
65
|
+
return "is" if boolean?
|
66
|
+
"get"
|
67
|
+
end
|
68
|
+
end
|