Sandbox-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
November 2010
- 5 participants
- 33 discussions
Author: fdesbois
Date: 2010-11-12 18:53:20 +0100 (Fri, 12 Nov 2010)
New Revision: 433
Url: http://nuiton.org/repositories/revision/sandbox/433
Log:
Add customer test for jpa2 using Spring for IoC and Hibernate as implementation : simple copy of some classes from current project where I worked to keep consistance trace.
Added:
jpa2-validation/trunk/jsr317-jpa2/src/
jpa2-validation/trunk/jsr317-jpa2/src/main/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCode.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCodeImpl.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Address.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AddressImpl.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntity.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntityImpl.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Customer.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/CustomerImpl.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AccessCodeCreator.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AddressCreator.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAO.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAO.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfig.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfigSource.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaHelper.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/Search.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/SearchImpl.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/UpdateTechnicalFieldListener.java
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/sample/
jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/sample/DataSampleProvider.java
jpa2-validation/trunk/jsr317-jpa2/src/main/resources/
jpa2-validation/trunk/jsr317-jpa2/src/main/resources/jsr317-spring-context.xml
jpa2-validation/trunk/jsr317-jpa2/src/test/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/entity/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImplTest.java
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImplTest.java
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/AddressFake.java
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/BaseTest.java
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/JpaConfigTestSource.java
jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/SpringTestConfig.java
jpa2-validation/trunk/jsr317-jpa2/src/test/resources/
jpa2-validation/trunk/jsr317-jpa2/src/test/resources/META-INF/
jpa2-validation/trunk/jsr317-jpa2/src/test/resources/META-INF/persistence.xml
jpa2-validation/trunk/jsr317-jpa2/src/test/resources/jdbc-test.properties
jpa2-validation/trunk/jsr317-jpa2/src/test/resources/log4j.properties
jpa2-validation/trunk/jsr317-jpa2/src/test/resources/test-context.xml
Modified:
jpa2-validation/trunk/LICENSE.txt
jpa2-validation/trunk/README.txt
jpa2-validation/trunk/changelog.txt
jpa2-validation/trunk/jsr303-validation/LICENSE.txt
jpa2-validation/trunk/jsr303-validation/README.txt
jpa2-validation/trunk/jsr303-validation/changelog.txt
jpa2-validation/trunk/jsr303-validation/pom.xml
jpa2-validation/trunk/jsr317-jpa2/LICENSE.txt
jpa2-validation/trunk/jsr317-jpa2/README.txt
jpa2-validation/trunk/jsr317-jpa2/changelog.txt
jpa2-validation/trunk/jsr317-jpa2/pom.xml
jpa2-validation/trunk/pom.xml
Property changes on: jpa2-validation/trunk/LICENSE.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/README.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/changelog.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/jsr303-validation/LICENSE.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/jsr303-validation/README.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/jsr303-validation/changelog.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/jsr303-validation/pom.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/jsr317-jpa2/LICENSE.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/jsr317-jpa2/README.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: jpa2-validation/trunk/jsr317-jpa2/changelog.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: jpa2-validation/trunk/jsr317-jpa2/pom.xml
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/pom.xml 2010-11-05 12:45:44 UTC (rev 432)
+++ jpa2-validation/trunk/jsr317-jpa2/pom.xml 2010-11-12 17:53:20 UTC (rev 433)
@@ -1,4 +1,5 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -16,11 +17,93 @@
<dependencies>
+ <!--<dependency>-->
+ <!--<groupId>org.nuiton</groupId>-->
+ <!--<artifactId>nuiton-utils</artifactId>-->
+ <!--<version>1.4.2</version>-->
+ <!--</dependency>-->
+
+ <!-- SPRING -->
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-orm</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ </dependency>
+
+ <!-- JPA : JSR-317- -->
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-jpamodelgen</artifactId>
+ </dependency>
+
+ <!-- LOGGING -->
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
+
+ <!-- TESTS -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ </dependency>
+
+ <!-- Hibernate implementation used for tests -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </dependency>
+
+ <!-- Testing -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ </dependency>
+
</dependencies>
<!-- ************************************************************* -->
@@ -31,13 +114,13 @@
<description>JPA2 tests</description>
<inceptionYear>2010</inceptionYear>
<url>http://maven-site.nuiton.org/${project.artifactId}</url>
-
+
<!-- ************************************************************* -->
<!-- *** Build Settings ****************************************** -->
<!-- ************************************************************* -->
<packaging>jar</packaging>
-
+
<build>
<resources>
@@ -50,14 +133,70 @@
</resource>
</resources>
+
+ <!-- Configuration to generate metamodel : ref = http://docs.jboss.org/hibernate/jpamodelgen/1.0/reference/en-US/html_single… -->
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <!--<compilerArguments>-->
+ <!--<!– Generate Jpa MetaModel –>-->
+ <!--<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>-->
+ <!--</compilerArguments>-->
+ <compilerArgument>-proc:none</compilerArgument>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.bsc.maven</groupId>
+ <artifactId>maven-processor-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>process</id>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ <phase>generate-sources</phase>
+ <configuration>
+ <compilerArguments>-Adebug=TRUE</compilerArguments>
+ <!-- source output directory -->
+ <outputDirectory>${maven.gen.dir}/java</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${maven.gen.dir}/java</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+
</build>
<!-- Source control management. -->
<scm>
<connection>scm:svn:http://svn.nuiton.org/svn/sandbox/jpa2-validation/trunk/jsr317-jpa2</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/sandbox/jpa2-validation/trunk/jsr317-jpa2</developerConnection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/sandbox/jpa2-validation/trunk/jsr317-jpa2
+ </developerConnection>
<url>http://www.nuiton.org/repositories/browse/sandbox/jpa2-validation/trunk/jsr…</url>
</scm>
-
+
</project>
Property changes on: jpa2-validation/trunk/jsr317-jpa2/pom.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCode.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCode.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCode.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+import java.io.Serializable;
+
+/**
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface AccessCode extends Serializable {
+
+ String PROPERTY_LOGIN = "login";
+
+ String PROPERTY_PASSWORD = "password";
+
+ /**
+ * @param login the login to set
+ */
+ public void setLogin(String login);
+
+ /**
+ * @param password the password to set
+ */
+ public void setPassword(String password);
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCode.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCodeImpl.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCodeImpl.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCodeImpl.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,51 @@
+/**
+ *
+ */
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+import javax.persistence.Embeddable;
+
+/**
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Embeddable
+public class AccessCodeImpl implements AccessCode {
+
+ public static final long serialVersionUID = 1L;
+
+ /**
+ * the login
+ */
+ private String login;
+
+ /**
+ * the password
+ */
+ private String password;
+
+ /**
+ * @param login the login to set
+ */
+ @Override
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public String getLogin() {
+ return login;
+ }
+
+ /**
+ * @param password the password to set
+ */
+ @Override
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AccessCodeImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Address.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Address.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Address.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,74 @@
+/**
+ *
+ */
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+import java.io.Serializable;
+
+/**
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface Address extends Serializable {
+
+ String PROPERTY_STREET = "street";
+
+ String PROPERTY_STREET_2 = "street2";
+
+ String PROPERTY_ZIP_CODE = "zipCode";
+
+ String PROPERTY_TOWN = "town";
+
+ String PROPERTY_COUNTRY = "country";
+
+ /**
+ * @return the street
+ */
+ public String getStreet();
+
+ /**
+ * @param street the street to set
+ */
+ public void setStreet(String street);
+
+ /**
+ * @return the street2
+ */
+ public String getStreet2();
+
+ /**
+ * @param street2 the street2 to set
+ */
+ public void setStreet2(String street2);
+
+ /**
+ * @return the zipCode
+ */
+ public String getZipCode();
+
+ /**
+ * @param zipCode the zipCode to set
+ */
+ public void setZipCode(String zipCode);
+
+ /**
+ * @return the town
+ */
+ public String getTown();
+
+ /**
+ * @param town the town to set
+ */
+ public void setTown(String town);
+
+ /**
+ * @return the country
+ */
+ public String getCountry();
+
+ /**
+ * @param country the country to set
+ */
+ public void setCountry(String country);
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Address.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AddressImpl.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AddressImpl.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AddressImpl.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,128 @@
+/**
+ *
+ */
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+import javax.persistence.Embeddable;
+
+/**
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Embeddable
+public class AddressImpl implements Address {
+
+ public static final long serialVersionUID = 1L;
+
+ /**
+ * the street
+ */
+ private String street;
+
+ /**
+ * the street complement
+ */
+ private String street2;
+
+ /**
+ * the zip code
+ */
+ private String zipCode;
+
+ /**
+ * the town
+ */
+ private String town;
+
+ /**
+ * the country
+ */
+ private String country;
+
+ /**
+ * Default constructor: constructs an empty address
+ */
+ public AddressImpl(){
+ }
+
+ /**
+ * @return the street
+ */
+ @Override
+ public String getStreet() {
+ return street;
+ }
+
+ /**
+ * @param street the street to set
+ */
+ @Override
+ public void setStreet(String street) {
+ this.street = street;
+ }
+
+ /**
+ * @return the street2
+ */
+ @Override
+ public String getStreet2() {
+ return street2;
+ }
+
+ /**
+ * @param street2 the street2 to set
+ */
+ @Override
+ public void setStreet2(String street2) {
+ this.street2 = street2;
+ }
+
+ /**
+ * @return the zipCode
+ */
+ @Override
+ public String getZipCode() {
+ return zipCode;
+ }
+
+ /**
+ * @param zipCode the zipCode to set
+ */
+ @Override
+ public void setZipCode(String zipCode) {
+ this.zipCode = zipCode;
+ }
+
+ /**
+ * @return the town
+ */
+ @Override
+ public String getTown() {
+ return town;
+ }
+
+ /**
+ * @param town the town to set
+ */
+ @Override
+ public void setTown(String town) {
+ this.town = town;
+ }
+
+ /**
+ * @return the country
+ */
+ @Override
+ public String getCountry() {
+ return country;
+ }
+
+ /**
+ * @param country the country to set
+ */
+ @Override
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/AddressImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntity.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntity.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntity.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,51 @@
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Created on 18 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface BaseEntity extends Serializable {
+
+ String PROPERTY_ID = "id";
+
+ String PROPERTY_VERSION = "version";
+
+ String PROPERTY_UPDATE_DATE = "updateDate";
+
+ String PROPERTY_CREATE_DATE = "createDate";
+
+ /**
+ * Id of the entity
+ *
+ * @return the id of the entity.
+ */
+ Long getId();
+
+ void setId(Long id);
+
+ /**
+ * Version of the entity, i.e, the number of time it was modified.
+ *
+ * @return the id of the entity.
+ */
+ int getVersion();
+
+ /**
+ * Last date when entity was updated.
+ *
+ * @return the update date of the entity.
+ */
+ Date getUpdateDate();
+
+ /**
+ * Date when entity was created.
+ *
+ * @return the create date of the entity.
+ */
+ Date getCreateDate();
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntity.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntityImpl.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntityImpl.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntityImpl.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,73 @@
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+import javax.persistence.EntityListeners;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.Version;
+import java.util.Date;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.UpdateTechnicalFieldListener;
+
+/**
+ * Created on 18 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@MappedSuperclass
+(a)EntityListeners(UpdateTechnicalFieldListener.class)
+public abstract class BaseEntityImpl implements BaseEntity {
+
+ private Long id;
+
+ private int version;
+
+ private Date createDate;
+
+ private Date updateDate;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Override
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ @Version
+ @Override
+ public int getVersion() {
+ return version;
+ }
+
+ public void setVersion(int version) {
+ this.version = version;
+ }
+
+ @Temporal(TemporalType.DATE)
+ @Override
+ public Date getCreateDate() {
+ return createDate;
+ }
+
+ public void setCreateDate(Date createDate) {
+ this.createDate = createDate;
+ }
+
+ @Temporal(TemporalType.DATE)
+ @Override
+ public Date getUpdateDate() {
+ return updateDate;
+ }
+
+ public void setUpdateDate(Date updateDate) {
+ this.updateDate = updateDate;
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/BaseEntityImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Customer.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Customer.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Customer.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,95 @@
+/**
+ *
+ */
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+/**
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface Customer extends BaseEntity {
+
+ String PROPERTY_FIRST_NAME = "firstName";
+
+ String PROPERTY_LAST_NAME = "lastName";
+
+ String PROPERTY_ADDRESS = "address";
+
+ String PROPERTY_PHONE = "phone";
+
+ String PROPERTY_CELLPHONE = "cellphone";
+
+ String PROPERTY_EMAIL = "email";
+
+ String PROPERTY_ACCESS_CODE = "accessCode";
+
+ /**
+ * @return the firstName
+ */
+ public String getFirstName() ;
+
+ /**
+ * @param firstName the firstName to set
+ */
+ public void setFirstName(String firstName);
+
+ /**
+ * @return the lastName
+ */
+ public String getLastName();
+
+ /**
+ * @param lastName the lastName to set
+ */
+ public void setLastName(String lastName);
+
+ /**
+ * @return the address
+ */
+ public Address getAddress();
+
+ /**
+ * @param address the address to set
+ */
+ public void setAddress(Address address);
+
+ /**
+ * @return the phone
+ */
+ public String getPhone() ;
+
+ /**
+ * @param phone the phone to set
+ */
+ public void setPhone(String phone) ;
+
+ /**
+ * @return the cellphone
+ */
+ public String getCellphone() ;
+
+ /**
+ * @param cellphone the cellphone to set
+ */
+ public void setCellphone(String cellphone) ;
+
+ /**
+ * @return the email
+ */
+ public String getEmail();
+
+ /**
+ * @param email the email to set
+ */
+ public void setEmail(String email) ;
+
+ /**
+ * @return the accessCode
+ */
+ public AccessCode getAccessCode();
+
+ /**
+ * @param accessCode the accessCode to set
+ */
+ public void setAccessCode(AccessCode accessCode) ;
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/Customer.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/CustomerImpl.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/CustomerImpl.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/CustomerImpl.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,176 @@
+/**
+ *
+ */
+package org.nuiton.sandbox.jsr317.jpa2.entity;
+
+import javax.persistence.Embedded;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.JpaHelper;
+
+/**
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Entity
+@Table(name = "CUSTOMER")
+public class CustomerImpl extends BaseEntityImpl implements Customer {
+
+ public static final long serialVersionUID = 1L;
+
+ /**
+ * the firstName
+ */
+ private String firstName;
+
+ /**
+ * the lastName
+ */
+ private String lastName;
+
+ /**
+ * the address
+ */
+ private Address address;
+
+ /**
+ * the phone number
+ */
+ private String phone;
+
+ /**
+ * the cellphone number
+ */
+ private String cellphone;
+
+ /**
+ * the email address
+ */
+ private String email;
+
+ /**
+ * the customer's access code
+ */
+ private AccessCode accessCode;
+
+ /**
+ * Default constructor : constructs an empty Customer
+ */
+ public CustomerImpl() {
+ }
+
+ /**
+ * @return the firstname
+ */
+ @Override
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /**
+ * @param firstName the firstName to set
+ */
+ @Override
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ /**
+ * @return the lastname
+ */
+ @Override
+ public String getLastName() {
+ return lastName;
+ }
+
+ /**
+ * @param lastName the lastName to set
+ */
+ @Override
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ /**
+ * @return the address
+ */
+ @Embedded
+ @Override
+ public AddressImpl getAddress() {
+ return JpaHelper.safeEmbeddableCast(address, AddressImpl.class);
+ }
+
+ /**
+ * @param address the address to set
+ */
+ @Override
+ public void setAddress(Address address) {
+ this.address = address;
+ }
+
+ /**
+ * @return the phone
+ */
+ @Override
+ public String getPhone() {
+ return phone;
+ }
+
+ /**
+ * @param phone the phone to set
+ */
+ @Override
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ /**
+ * @return the cellphone
+ */
+ @Override
+ public String getCellphone() {
+ return cellphone;
+ }
+
+ /**
+ * @param cellphone the cellphone to set
+ */
+ @Override
+ public void setCellphone(String cellphone) {
+ this.cellphone = cellphone;
+ }
+
+ /**
+ * @return the email
+ */
+ @Override
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ * @param email the email to set
+ */
+ @Override
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ /**
+ * @return the accessCode
+ */
+ @Embedded
+ @Override
+ public AccessCodeImpl getAccessCode() {
+ return JpaHelper.safeEmbeddableCast(accessCode, AccessCodeImpl.class);
+ }
+
+ /**
+ * @param accessCode the accessCode to set
+ */
+ @Override
+ public void setAccessCode(AccessCode accessCode) {
+ this.accessCode = accessCode;
+ }
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/entity/CustomerImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AccessCodeCreator.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AccessCodeCreator.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AccessCodeCreator.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,17 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import org.nuiton.sandbox.jsr317.jpa2.entity.AccessCode;
+
+/**
+ * Created on 22 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface AccessCodeCreator {
+
+ /**
+ * @return a new instance of AccessCode used to be set in different elements related to DAO.
+ */
+ AccessCode newInstanceAccessCode();
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AccessCodeCreator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AddressCreator.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AddressCreator.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AddressCreator.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,17 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import org.nuiton.sandbox.jsr317.jpa2.entity.Address;
+
+/**
+ * Created on 22 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface AddressCreator {
+
+ /**
+ * @return a new instance of Address used to be set in different elements related to DAO.
+ */
+ Address newInstanceAddress();
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/AddressCreator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAO.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAO.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAO.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,94 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import javax.persistence.EntityManager;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * BaseDAO is the interface to be used by all DAO.
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ * @param <E> the type of data
+ * @param <K> the key of data
+ */
+public interface BaseDAO<E, K extends Serializable> {
+
+ /**
+ * Return a new instance of the entity.
+ *
+ * @return a new instance of the entity
+ */
+ E newInstance();
+
+ /**
+ * Create the {@code element}, i.e, persist it. The {@code element} need to be instantiated using {@link #newInstance()}.
+ *
+ * @param element the object to create.
+ * @see EntityManager#persist(Object)
+ */
+ void create(E element);
+
+ /**
+ * Update the {@code element}. If element is not present in session, it will be retrieved from database and attached to it. The update
+ * is directly executed (flushed) to have proper data in resulting object.
+ *
+ * @param element the object to update
+ * @return the object updated attached to the session
+ * @see EntityManager#merge(Object)
+ */
+ E update(E element);
+
+ /**
+ * Save the {@code element} will create it if no id is defined or update it otherwise. Updated or created element will be returned as result.
+ *
+ * @param element Element to save
+ * @return the element saved this way
+ */
+ E save(E element);
+
+ /**
+ * Remove the {@code element}. The reference is still available after removal but the next read will return a null value using the element id.
+ *
+ * @param element the object to remove
+ */
+ void delete(E element);
+
+ /**
+ * Read an element using it's {@code id}.
+ *
+ * @param id Id of the element to read
+ * @return the element if found or null otherwise
+ */
+ E read(K id);
+
+ /**
+ * Return a list of all existing elements
+ *
+ * @return a list of all elements (never null)
+ */
+ List<E> readAll();
+
+ /**
+ * Return the number of existing elements.
+ *
+ * @return the number of existing elements
+ */
+ int count();
+
+ /**
+ * Clear the current session. Needed after some error occurs.
+ */
+ void clearSession();
+
+ /**
+ * Flush the current session. Needed to manually commit the session.
+ */
+ void flushSession();
+
+ /**
+ * Delete all existing elements of E type
+ */
+ void deleteAll();
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAO.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,356 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.NonUniqueResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Path;
+import javax.persistence.criteria.Root;
+import java.io.Serializable;
+import java.util.List;
+import org.nuiton.sandbox.jsr317.jpa2.entity.BaseEntity;
+import org.nuiton.sandbox.jsr317.jpa2.entity.BaseEntityImpl;
+
+/**
+ * This class provides basic CRUD mechanism.
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ * @param <C> the Entity contract (interface)
+ * @param <E> the Entity class for JPA
+ */
+public abstract class BaseDAOImpl<C extends BaseEntity, E extends BaseEntityImpl, K extends Serializable> implements BaseDAO<C, K> {
+
+ public enum SaveStrategy {
+ PERSIST(true, false), PERSIST_FLUSH(true, true), MERGE(false, false), MERGE_FLUSH(false, true);
+
+ boolean flush;
+
+ boolean persist;
+
+ SaveStrategy(boolean persist, boolean flush) {
+ this.flush = flush;
+ this.persist = persist;
+ }
+
+ public boolean isFlush() {
+ return flush;
+ }
+
+ public boolean isPersist() {
+ return persist;
+ }
+ }
+
+ protected abstract class QueryWrapper<E extends BaseEntity, R> {
+
+ protected CriteriaBuilder builder;
+
+ protected CriteriaQuery<R> criteria;
+
+ protected Root<E> root;
+
+ protected TypedQuery<R> query;
+
+ public Root<E> root() {
+ if (root == null) {
+ root = criteria().from(entityClass());
+ }
+ return root;
+ }
+
+ public CriteriaQuery<R> criteria() {
+ if (criteria == null) {
+ criteria = builder().createQuery(resultClass());
+ }
+ return criteria;
+ }
+
+ public CriteriaBuilder builder() {
+ if (builder == null) {
+ builder = em.getCriteriaBuilder();
+ }
+ return builder;
+ }
+
+ public TypedQuery<R> computeCriteria() {
+ return em.createQuery(criteria);
+ }
+
+ public TypedQuery<R> query() {
+ if (query == null) {
+ query = computeCriteria();
+ }
+ return query;
+ }
+
+ public <T> void whereEqual(Path<? extends T> propertyPath, T value) {
+ criteria().where(
+ builder().equal(
+ propertyPath,
+ value
+ )
+ );
+ }
+
+ public <T> void whereEqual(String property, T value) {
+ whereEqual(root().<T>get(property), value);
+ }
+
+ @SuppressWarnings({"unchecked"})
+ protected Class<E> entityClass() {
+ // Use entityClass defined in DAO
+ return (Class<E>) getEntityClass();
+ }
+
+ protected abstract Class<R> resultClass();
+
+ }
+
+ protected class BaseQueryWrapper<C extends BaseEntity, E extends BaseEntityImpl> extends QueryWrapper<E, E> {
+
+ @Override
+ protected Class<E> resultClass() {
+ return entityClass();
+ }
+
+ @SuppressWarnings({"unchecked"})
+ public List<C> listResult() {
+ List<E> results = query().getResultList();
+ return (List<C>) results;
+ }
+
+ @SuppressWarnings({"unchecked"})
+ public C singleResult() throws NonUniqueResultException, NoResultException {
+ E result = query().getSingleResult();
+ return (C) result;
+ }
+ }
+
+ protected class CountQueryWrapper<E extends BaseEntity> extends QueryWrapper<E, Long> {
+
+ public int count() {
+ criteria().select(builder.count(root()));
+ return executeCount();
+ }
+
+ public int countDistinct() {
+ criteria().select(builder.countDistinct(root()));
+ return executeCount();
+ }
+
+ protected int executeCount() {
+ // Create the query and retrieve the single result corresponding to the count value
+ TypedQuery<Long> query = computeCriteria();
+ return query.getSingleResult().intValue();
+ }
+
+ @Override
+ protected Class<Long> resultClass() {
+ return Long.class;
+ }
+ }
+
+ /**
+ * Memorizes the Entity Class.
+ */
+ private Class<E> entityClass;
+
+ /**
+ * Private EntityManager through Hibernate implementation.
+ */
+ @PersistenceContext
+ protected EntityManager em;
+
+ /**
+ * The SaveStrategy defined how the save method should be executed, look at {@link #save(BaseEntity)} implementation
+ */
+ protected SaveStrategy saveStrategy;
+
+ /**
+ * Constructor to be called by siblings.
+ */
+ public BaseDAOImpl() {
+ entityClass = getEntityClass();
+ saveStrategy = SaveStrategy.PERSIST;
+ }
+
+ public SaveStrategy getSaveStrategy() {
+ return saveStrategy;
+ }
+
+ public void setSaveStrategy(SaveStrategy saveStrategy) {
+ this.saveStrategy = saveStrategy;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void create(C element) {
+ em.persist(element);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public C update(C entity) {
+ C result = em.merge(entity);
+ em.flush();
+ return result;
+ }
+
+ /**
+ * Save depends on {@link #saveStrategy} defined. By default, it's the {@link SaveStrategy#PERSIST_FLUSH} one.
+ */
+ @Override
+ public C save(C element) {
+ // Keep instance by default
+ C result = element;
+
+ // Type of save, if persist the element need to be in session for an update
+ if (saveStrategy.isPersist()) {
+ em.persist(element);
+ } else {
+ result = em.merge(element);
+ }
+
+ // Explicit flush
+ if (saveStrategy.isFlush()) {
+ em.flush();
+ }
+
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void delete(final C entity) {
+ if (entity != null) {
+ em.remove(entity);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @SuppressWarnings({"unchecked"})
+ @Override
+ public C read(final K id) {
+ if (id == null) {
+ return null;
+ }
+ return (C) em.find(entityClass, id);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<C> readAll() {
+
+ BaseQueryWrapper<C, E> query = new BaseQueryWrapper<C, E>();
+
+ query.criteria().select(query.root());
+
+ List<C> results = query.listResult();
+
+ return results;
+ }
+
+ protected List<C> readAllByProperty(String property, Object value) {
+
+ BaseQueryWrapper<C, E> query = new BaseQueryWrapper<C, E>();
+
+ query.whereEqual(property, value);
+
+ List<C> results = query.listResult();
+
+ return results;
+ }
+
+ @SuppressWarnings({"unchecked"})
+ protected List<C> readAllByQuery(TypedQuery<E> query) {
+ List<E> results = query.getResultList();
+ return (List<C>) results;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int count() {
+ CountQueryWrapper<E> query = new CountQueryWrapper<E>();
+
+ return query.count();
+ }
+
+ /**
+ * Read first resulting entity from an input {@code query}.
+ *
+ * @param query Input query
+ * @return the resulting first entity
+ */
+ protected static <T> T readFirst(TypedQuery<T> query) {
+ List<T> resultList = query.getResultList();
+ if (!resultList.isEmpty()) {
+ return resultList.get(0);
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public void clearSession() {
+ em.clear();
+ }
+
+ @Override
+ public void flushSession() {
+ em.flush();
+ }
+
+ @Override
+ public void deleteAll() {
+ List<C> elements = readAll();
+ for (C element : elements) {
+ delete(element);
+ }
+ }
+
+ /**
+ * Set the limit of the {@code query} depends on {@code search} parameters.
+ *
+ * @param query Query to add limit parameters
+ * @param search Search containing limit parameters
+ */
+ protected void setSearchLimit(TypedQuery<?> query, Search search) {
+ int start = 0;
+ if (search.getStartIndex() != null) {
+ start = search.getStartIndex();
+ query.setFirstResult(start);
+ }
+
+ if (search.getEndIndex() != null) {
+ query.setMaxResults(search.getEndIndex() - start + 1);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public abstract C newInstance();
+
+ /**
+ * @return the entityClass to manipulate as persistent object (defined in mapping).
+ */
+ protected abstract Class<E> getEntityClass();
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAO.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAO.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAO.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,12 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import org.nuiton.sandbox.jsr317.jpa2.entity.Customer;
+
+/**
+ * Created on 22 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface CustomerDAO extends BaseDAO<Customer, Long>, AddressCreator, AccessCodeCreator {
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAO.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,39 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import org.nuiton.sandbox.jsr317.jpa2.entity.AccessCode;
+import org.nuiton.sandbox.jsr317.jpa2.entity.AccessCodeImpl;
+import org.nuiton.sandbox.jsr317.jpa2.entity.Address;
+import org.nuiton.sandbox.jsr317.jpa2.entity.AddressImpl;
+import org.nuiton.sandbox.jsr317.jpa2.entity.Customer;
+import org.nuiton.sandbox.jsr317.jpa2.entity.CustomerImpl;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Created on 22 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Repository
+public class CustomerDAOImpl extends BaseDAOImpl<Customer, CustomerImpl, Long> implements CustomerDAO {
+
+ @Override
+ public Customer newInstance() {
+ return new CustomerImpl();
+ }
+
+ @Override
+ protected Class<CustomerImpl> getEntityClass() {
+ return CustomerImpl.class;
+ }
+
+ @Override
+ public Address newInstanceAddress() {
+ return new AddressImpl();
+ }
+
+ @Override
+ public AccessCode newInstanceAccessCode() {
+ return new AccessCodeImpl();
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfig.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfig.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfig.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,79 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import javax.persistence.EntityManagerFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+import org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver;
+import org.springframework.instrument.classloading.LoadTimeWeaver;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+
+/**
+ * Created on 21 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Configuration
+@ImportResource("classpath:/jsr317-spring-context.xml")
+public class JpaConfig {
+
+ private static final Log log = LogFactory.getLog(JpaConfig.class);
+
+ @Autowired
+ private JpaConfigSource configSource;
+
+ /**
+ * Create bean transactionManager used for injection of EntityManager. Need EntityManagerFactory bean provided by
+ * {@link #entityManagerFactory()}.
+ *
+ * @return the JpaTransactionManager used for Jpa transactions in EntityManager
+ */
+ @Bean
+ public JpaTransactionManager transactionManager() {
+ JpaTransactionManager transactionManager = new JpaTransactionManager();
+ transactionManager.setEntityManagerFactory(entityManagerFactory());
+ return transactionManager;
+ }
+
+ /**
+ * Create bean entityManagerFactory used by transactionManager. The factory is created using
+ * {@link LocalContainerEntityManagerFactoryBean}. {@link JpaConfigSource} implementation is needed to provide
+ * parameters for the BeanFactory. The FactoryBean is directly used to provide EntityManagerFactory as object
+ * returned by this method.
+ *
+ * @return the EntityManagerFactory constructed by a BeanFactory provided by Spring.
+ * @see JpaConfigSource
+ */
+ @Bean
+ public EntityManagerFactory entityManagerFactory() {
+ LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
+
+ if (log.isDebugEnabled()) {
+ log.debug("new LocalContainerEntityManagerFactoryBean()");
+ }
+
+ // DataSource to specify Database connection
+ factoryBean.setDataSource(configSource.dataSource());
+
+ // Extra VendorAdapter
+ factoryBean.setJpaVendorAdapter(configSource.jpaVendorAdapter());
+
+ // Extra JPA properties
+ factoryBean.setJpaProperties(configSource.jpaProperties());
+
+ // Instrumentation
+ LoadTimeWeaver loadTimeWeaver = new InstrumentationLoadTimeWeaver();
+ factoryBean.setLoadTimeWeaver(loadTimeWeaver);
+
+ // Ensure properties for the EntityManagerFactory object
+ factoryBean.afterPropertiesSet();
+
+ return factoryBean.getObject();
+ }
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfig.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfigSource.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfigSource.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfigSource.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,44 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import javax.sql.DataSource;
+import java.util.Properties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.orm.jpa.JpaVendorAdapter;
+
+/**
+ * Defined ConfigSource used for Jpa configuration. This will provide parameters to configure the Jpa connection that
+ * depends from implementation. Jpa will not work until some implementation implement this contract.
+ * <p />
+ * Created on 21 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Configuration
+public interface JpaConfigSource {
+
+ /**
+ * DataSource to use to configure connection with database.
+ *
+ * @return the DataSource to used in EntityManagerFactory as database connection.
+ */
+ @Bean
+ DataSource dataSource();
+
+ /**
+ * Additional properties from Vendor implementation of JPA.
+ *
+ * @return the JpaVendorAdapter to used in EntityManagerFactory
+ */
+ @Bean
+ JpaVendorAdapter jpaVendorAdapter();
+
+ /**
+ * Additional Jpa properties.
+ *
+ * @return the Properties to set directly as Jpa Properties in EntityManagerFactory
+ */
+ @Bean
+ Properties jpaProperties();
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaConfigSource.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaHelper.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaHelper.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaHelper.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,50 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import javax.persistence.Embeddable;
+
+/**
+ * Created on 25 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public class JpaHelper {
+
+ /**
+ * Util method to check embeddable assignment from an {@code inputInstance} to an {@code embeddableImplClass}.
+ * JPA doesn't provide property or annotation to use other target as attribute type for Embedded classes. In our case, we use
+ * only interfaces for all objects, so as Embedded ones. It's better to call this method before each manual cast to Embedded object
+ * in setter methods because the declaration need to be of implementation type. This method resulting a safe cast to correct
+ * implementation class for Embeddable objects.
+ *
+ * @param inputInstance Input type to check
+ * @param embeddableImplClass Embeddable instance with {@link Embeddable} annotation
+ * @return the correct embeddable type to use for persistence support
+ * @throws ClassCastException Exception thrown if inputInstance doesn't correspond to implementation class
+ * @throws IllegalArgumentException Exception thrown if embeddable implementation class doesn't have Embeddable annotation
+ */
+ public static <T> T safeEmbeddableCast(Object inputInstance, Class<T> embeddableImplClass)
+ throws ClassCastException, IllegalArgumentException {
+
+ if (inputInstance == null) {
+ return null;
+ }
+
+ if (!embeddableImplClass.isAnnotationPresent(Embeddable.class)) {
+ throw new IllegalArgumentException(String.format(
+ "Embeddable implementation '%s' doesn't have correct @Embeddable annotation",
+ embeddableImplClass.getName()
+ ));
+ }
+
+ if (!inputInstance.getClass().isAssignableFrom(embeddableImplClass)) {
+ throw new ClassCastException(String.format(
+ "Unable to set element of type '%s', it is not supported as Embeddable instance '%s'",
+ inputInstance.getClass().getName(),
+ embeddableImplClass.getName()
+ ));
+ }
+
+ return embeddableImplClass.cast(inputInstance);
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/JpaHelper.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/Search.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/Search.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/Search.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,26 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import java.io.Serializable;
+
+/**
+ * Created on 2 nov. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public interface Search extends Serializable {
+
+ String getOrderBy();
+
+ void setOrderBy(String orderBy);
+
+ Integer getStartIndex();
+
+ void setStartIndex(Integer startIndex);
+
+ Integer getEndIndex();
+
+ /** @deprecated FIXME-fdesbois-2010-11-09 : criteria api need maxResults param so nbElementsByPage in PaginatedSearch */
+ @Deprecated
+ void setEndIndex(Integer endIndex);
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/Search.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/SearchImpl.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/SearchImpl.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/SearchImpl.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,48 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+/**
+ * Created on 2 nov. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public class SearchImpl implements Search {
+
+ public static final long serialVersionUID = 1L;
+
+ private String orderBy;
+
+ private Integer startIndex;
+
+ private Integer endIndex;
+
+ @Override
+ public String getOrderBy() {
+ return orderBy;
+ }
+
+ @Override
+ public void setOrderBy(String orderBy) {
+ this.orderBy = orderBy;
+ }
+
+ @Override
+ public Integer getStartIndex() {
+ return startIndex;
+ }
+
+ @Override
+ public void setStartIndex(Integer startIndex) {
+ this.startIndex = startIndex;
+ }
+
+ @Override
+ public Integer getEndIndex() {
+ return endIndex;
+ }
+
+ @Override
+ public void setEndIndex(Integer endIndex) {
+ this.endIndex = endIndex;
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/SearchImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/UpdateTechnicalFieldListener.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/UpdateTechnicalFieldListener.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/UpdateTechnicalFieldListener.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,59 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import javax.persistence.PrePersist;
+import javax.persistence.PreUpdate;
+import java.util.Date;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.sandbox.jsr317.jpa2.entity.BaseEntityImpl;
+
+/**
+ *
+ * Listener used to update technical fields such as {@code createDate}, {@code updateDate}
+ * and {@code version} defined in {@link BaseEntityImpl}.
+ *
+ * Created on 18 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public class UpdateTechnicalFieldListener {
+
+ private static final Log log = LogFactory.getLog(UpdateTechnicalFieldListener.class);
+
+ /**
+ * Callback to set updateDate and increment version on each entity update.
+ *
+ * @param entity Entity to update
+ */
+ @PreUpdate
+ public void onPreUpdate(BaseEntityImpl entity) {
+
+ // Update date
+ Date updateDate = new Date();
+ entity.setUpdateDate(updateDate);
+ // Update version
+ int newVersion = entity.getVersion() + 1;
+ entity.setVersion(newVersion);
+
+ if (log.isTraceEnabled()) {
+ log.trace("PreUpdate :: " + entity + " _ updateDate = " + updateDate + " _ version = " + newVersion);
+ }
+ }
+
+ /**
+ * Callback to set createDate on each entity creation.
+ *
+ * @param entity Entity to update
+ */
+ @PrePersist
+ public void onPrePersist(BaseEntityImpl entity) {
+
+ Date createDate = new Date();
+ entity.setCreateDate(createDate);
+
+ if (log.isTraceEnabled()) {
+ log.trace("PrePersist :: " + entity + " _ createDate = " + createDate);
+ }
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/UpdateTechnicalFieldListener.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/sample/DataSampleProvider.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/sample/DataSampleProvider.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/sample/DataSampleProvider.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,108 @@
+package org.nuiton.sandbox.jsr317.jpa2.sample;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.sandbox.jsr317.jpa2.entity.BaseEntity;
+import org.nuiton.sandbox.jsr317.jpa2.entity.Customer;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.CustomerDAO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * Provider of data sample usefull for tests or having usable data in the database. Defined as a {@link Service} to be injected using Spring
+ * {@link Autowired} annotation.
+ * <p />
+ * Created on 3 nov. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Service
+public class DataSampleProvider {
+
+ private static final Log logger = LogFactory.getLog(DataSampleProvider.class);
+
+ /**
+ * Extension of {@link LinkedHashMap} with getter on index. Use {@link #get(int)} method to retrieve element at provided index.
+ *
+ * @param <K> Key type of the Map
+ * @param <O> Object type of the Map
+ */
+ protected class IndexedMap<K, O extends BaseEntity> extends LinkedHashMap<K, O> {
+
+ public O get(int index) {
+ int i = 0;
+ for (O o : values()) {
+ if (i == index) {
+ return o;
+ }
+ i++;
+ }
+ return null;
+ }
+
+ @Override
+ public O put(K key, O value) {
+ if (logger.isTraceEnabled()) {
+ logger.trace("Add " + value.getClass().getSimpleName() + " with id = " + value.getId() +
+ " _ @" + Integer.toHexString(value.hashCode()));
+ }
+ return super.put(key, value);
+ }
+ }
+
+ @Autowired
+ protected CustomerDAO customerDAO;
+
+ protected IndexedMap<Long, Customer> customers = new IndexedMap<Long, Customer>();
+
+ public void createAllData() {
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("#### SAMPLE INSERT START ####");
+ }
+
+ createCustomers();
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("#### SAMPLE INSERT FINISHED ####");
+ }
+ }
+
+ public void deleteAllData() {
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("#### SAMPLE DELETE START ####");
+ }
+
+ customerDAO.deleteAll();
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("#### SAMPLE DELETE FINISHED ####");
+ }
+ }
+
+ // ---- CREATORS ---- //
+
+ public void createCustomers() {
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("CREATE SAMPLE for " + Customer.class.getName());
+ }
+
+ customers.clear();
+ }
+
+ public Customer getCustomer(int index) {
+ if (customers.isEmpty()) {
+ createCustomers();
+ }
+ return customers.get(index);
+ }
+
+ public Map<Long, Customer> getCustomers() {
+ return customers;
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/sample/DataSampleProvider.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/main/resources/jsr317-spring-context.xml
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/main/resources/jsr317-spring-context.xml (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/main/resources/jsr317-spring-context.xml 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,14 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+
+
+ <!-- Component scanner for DAOS : detected from @Repository annotation -->
+ <context:component-scan base-package="org.nuiton.sandbox.jsr317.jpa2.persistence" />
+
+</beans>
\ No newline at end of file
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/main/resources/jsr317-spring-context.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImplTest.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImplTest.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImplTest.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,243 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.sandbox.jsr317.jpa2.entity.Customer;
+import org.nuiton.sandbox.jsr317.jpa2.entity.CustomerImpl;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.BaseDAOImpl.SaveStrategy;
+import org.nuiton.sandbox.jsr317.jpa2.test.BaseTest;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Test methods in BaseDAO. The CustomerDAO will be used as implementation of abstract class BaseDAOImpl.
+ *
+ * Created on 20 oct. 2010
+ *
+ * @author fdesbois <florian.desbois(a)codelutin.com>
+ * @version $Id$
+ */
+public class BaseDAOImplTest extends BaseTest {
+
+ private static final Log log = LogFactory.getLog(BaseDAOImplTest.class);
+
+ @Override
+ protected boolean autoDataEnabled() {
+ return true;
+ }
+
+ @Test
+ @Transactional
+ public void testCreate() throws Exception {
+
+ // ---- PREPARE DATA ---- //
+ Customer user = new CustomerImpl();
+ user.setLastName("createLastName");
+ user.setFirstName("createFirstName");
+
+ // ---- EXECUTE ---- //
+ log.info("CREATE user " + user);
+ userDAO.create(user);
+ log.debug("AFTER CREATE user " + user);
+
+ // ---- CHECK DATA ---- //
+ Assert.assertNotNull(user.getId());
+ Assert.assertNotNull(user.getCreateDate());
+ Assert.assertNull(user.getUpdateDate());
+ Assert.assertEquals(0, user.getVersion());
+
+ Customer userFound = em.find(CustomerImpl.class, user.getId());
+ Assert.assertNotNull(userFound);
+ Assert.assertEquals("createLastName", userFound.getLastName());
+ Assert.assertEquals("createFirstName", userFound.getFirstName());
+ }
+
+ @Test
+ @Transactional
+ public void testUpdate() throws Exception {
+
+ // ---- PREPARE DATA ---- //
+ Customer user = new CustomerImpl();
+ user.setLastName("updateLastName");
+ user.setFirstName("updateFirstName");
+
+ em.persist(user);
+ em.flush();
+ em.detach(user);
+
+ // ---- EXECUTE ---- //
+ user.setLastName("nameUpdated");
+
+ log.info("UPDATE user " + user);
+ Customer userUpdated = userDAO.update(user);
+ log.debug("AFTER UPDATE user " + userUpdated);
+
+ // ---- CHECK DATA ---- //
+ Assert.assertFalse(em.contains(user));
+ Assert.assertTrue(em.contains(userUpdated));
+ Assert.assertNotNull(userUpdated.getUpdateDate());
+ Assert.assertEquals(1, userUpdated.getVersion());
+ Assert.assertEquals("nameUpdated", userUpdated.getLastName());
+ }
+
+ @Test
+ @Transactional
+ public void testSave() throws Exception {
+
+ // ---- PREPARE DATA ---- //
+ Customer user = new CustomerImpl();
+ user.setLastName("saveLastName");
+ user.setFirstName("saveFirstName");
+
+ // ---- EXECUTE ---- //
+
+ BaseDAOImpl daoImpl = (BaseDAOImpl) userDAO;
+
+ SaveStrategy strategy = daoImpl.getSaveStrategy();
+
+ // ## CREATE ## //
+ Customer userCreated = userDAO.save(user);
+
+ if (!strategy.isPersist()) {
+ // Same as a create instead of returning the instance instead of modifying the input one
+ Assert.assertNotSame(user, userCreated);
+ } else {
+ Assert.assertEquals(user, userCreated);
+ }
+
+ Assert.assertNotNull(userCreated.getId());
+ Assert.assertNotNull(userCreated.getCreateDate());
+ Assert.assertNull(userCreated.getUpdateDate());
+ Assert.assertEquals(0, userCreated.getVersion());
+
+ // ## UPDATE ## //
+ userCreated.setLastName("updateLastName");
+ Customer userUpdated = userDAO.save(userCreated);
+
+ // Same instance because not detached from session
+ Assert.assertEquals(userUpdated, userCreated);
+ if (strategy.isFlush()) {
+ Assert.assertNotNull(userUpdated.getUpdateDate());
+ Assert.assertEquals(1, userUpdated.getVersion());
+
+ } else {
+ Assert.assertNull(userUpdated.getUpdateDate());
+ Assert.assertEquals(0, userUpdated.getVersion());
+ // need explicit Flush
+ userDAO.flushSession();
+ }
+
+ // Other update no change, no version increment
+ Customer userUpdatedTwice = userDAO.save(userUpdated);
+ Assert.assertEquals(1, userUpdatedTwice.getVersion());
+ }
+
+
+ @Test
+ @Transactional
+ public void testDelete() throws Exception {
+
+ // ---- PREPARE DATA ---- //
+ Customer user = new CustomerImpl();
+ user.setLastName("deleteLastName");
+ user.setFirstName("deleteFirstName");
+
+ em.persist(user);
+
+ // ---- EXECUTE ---- //
+ log.info("DELETE account " + user);
+ userDAO.delete(user);
+ log.debug("AFTER DELETE account " + user);
+
+ // ---- CHECK DATA ---- //
+ Customer accountFound = em.find(CustomerImpl.class, user.getId());
+ Assert.assertNull(accountFound);
+ }
+
+ @Test
+ @Transactional
+ public void testRead() throws Exception {
+
+ // ---- PREPARE DATA ---- //
+ Customer account = new CustomerImpl();
+ account.setLastName("readLastName");
+ account.setFirstName("readFirstName");
+
+ em.persist(account);
+
+ // ---- EXECUTE ---- //
+ log.info("READ account " + account);
+ Customer accountFound = userDAO.read(account.getId());
+
+ // ---- CHECK DATA ---- //
+ Assert.assertNotNull(accountFound);
+ Assert.assertEquals("readLastName", accountFound.getLastName());
+ }
+
+ @Test
+ @Transactional
+ public void testReadAll() throws Exception {
+
+ // ---- PREPARE DATA ---- //
+ Customer user1 = new CustomerImpl();
+ user1.setLastName("readAllLastName1");
+ user1.setFirstName("readAllFirstName1");
+
+ em.persist(user1);
+
+ Customer user2 = new CustomerImpl();
+ user2.setLastName("readAllLastName2");
+ user2.setFirstName("readAllFirstName2");
+
+ em.persist(user2);
+
+ // ---- EXECUTE ---- //
+ log.info("READ_ALL accounts");
+ List<Customer> users = userDAO.readAll();
+
+ // ---- CHECK DATA ---- //
+ Assert.assertEquals(2, users.size());
+ Assert.assertTrue(users.contains(user1));
+ Assert.assertTrue(users.contains(user2));
+ }
+
+ @Test
+ @Transactional
+ public void testCount() throws Exception {
+
+ // ---- PREPARE DATA ---- //
+ Customer user1 = new CustomerImpl();
+ user1.setLastName("readAllLastName1");
+ user1.setFirstName("readAllFirstName1");
+
+ em.persist(user1);
+
+ Customer user2 = new CustomerImpl();
+ user2.setLastName("readAllLastName2");
+ user2.setFirstName("readAllFirstName2");
+
+ em.persist(user2);
+
+ // ---- EXECUTE ---- //
+ log.info("COUNT accounts");
+ int count = userDAO.count();
+
+ // ---- CHECK DATA ---- //
+ Assert.assertEquals(2, count);
+ }
+
+ @Test
+ @Transactional
+ public void testNewInstance() throws Exception {
+
+ // ---- EXECUTE ---- //
+ log.info("NEW_INSTANCE account");
+ Customer user = userDAO.newInstance();
+
+ // ---- CHECK DATA ---- //
+ Assert.assertNotNull(user);
+ Assert.assertEquals(CustomerImpl.class, user.getClass());
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImplTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImplTest.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImplTest.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImplTest.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,65 @@
+package org.nuiton.sandbox.jsr317.jpa2.persistence;
+
+import javax.persistence.PersistenceException;
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.sandbox.jsr317.jpa2.entity.Address;
+import org.nuiton.sandbox.jsr317.jpa2.entity.Customer;
+import org.nuiton.sandbox.jsr317.jpa2.test.AddressFake;
+import org.nuiton.sandbox.jsr317.jpa2.test.BaseTest;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Created on 22 oct. 2010
+ *
+ * @author fdesbois <florian.desbois(a)codelutin.com>
+ * @version $Id$
+ */
+public class CustomerDAOImplTest extends BaseTest {
+
+ @Override
+ protected boolean autoDataEnabled() {
+ return true;
+ }
+
+ @Test
+ @Transactional
+ public void testCreateCustomerWithAddress() {
+
+ Customer user = userDAO.newInstance();
+ user.setLastName("createCustomerWithAddressLastName");
+ user.setFirstName("createCustomerWithAddressFirstName");
+
+ Address address = userDAO.newInstanceAddress();
+ address.setStreet("createStreet");
+ address.setZipCode("40000");
+
+ user.setAddress(address);
+
+ Assert.assertNotNull(user.getAddress());
+ Assert.assertEquals("createStreet", user.getAddress().getStreet());
+ }
+
+ /**
+ * Test to check that an other address that AddressImpl can't be save into Customer entity..
+ * This test is for {@link JpaHelper#safeEmbeddableCast(Object, Class)} method in real context. Note that @Transactional will break
+ * this test because flushing the session reproduce the Exception a second time after saving the entity.
+ */
+ @Test(expected = PersistenceException.class)
+ public void testCreateCustomerWithFakeAddressImplementation() {
+
+ Customer user = userDAO.newInstance();
+ user.setLastName("createCustomerWithFakeAddressLastName");
+ user.setFirstName("createCustomerWithFakeAddressFirstName");
+
+ Address address = new AddressFake();
+
+ address.setStreet("fakeStreet");
+ address.setZipCode("40000");
+
+ user.setAddress(address);
+
+ userDAO.save(user);
+ }
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImplTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/AddressFake.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/AddressFake.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/AddressFake.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,61 @@
+package org.nuiton.sandbox.jsr317.jpa2.test;
+
+import org.nuiton.sandbox.jsr317.jpa2.entity.Address;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.JpaHelper;
+
+/**
+ * Fake implementation of address to test Embeddable target management (need explicit cast provided by {@link
+ * JpaHelper#safeEmbeddableCast(Object, Class)}
+ *
+ * Created on 22 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+public class AddressFake implements Address {
+
+ @Override
+ public String getStreet() {
+ return null;
+ }
+
+ @Override
+ public void setStreet(String street) {
+ }
+
+ @Override
+ public String getStreet2() {
+ return null;
+ }
+
+ @Override
+ public void setStreet2(String street2) {
+ }
+
+ @Override
+ public String getZipCode() {
+ return null;
+ }
+
+ @Override
+ public void setZipCode(String zipCode) {
+ }
+
+ @Override
+ public String getTown() {
+ return null;
+ }
+
+ @Override
+ public void setTown(String town) {
+ }
+
+ @Override
+ public String getCountry() {
+ return null;
+ }
+
+ @Override
+ public void setCountry(String country) {
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/AddressFake.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/BaseTest.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/BaseTest.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/BaseTest.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,76 @@
+package org.nuiton.sandbox.jsr317.jpa2.test;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Rule;
+import org.junit.rules.TestName;
+import org.junit.runner.RunWith;
+import org.junit.runners.model.FrameworkMethod;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.CustomerDAO;
+import org.nuiton.sandbox.jsr317.jpa2.sample.DataSampleProvider;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.annotation.Rollback;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * Created on 18 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+(a)RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"/test-context.xml"})
+public abstract class BaseTest {
+
+ private static final Log logger = LogFactory.getLog(BaseTest.class);
+
+ @PersistenceContext
+ protected EntityManager em;
+
+ @Autowired
+ protected DataSampleProvider dataProvider;
+
+ @Autowired
+ protected CustomerDAO userDAO;
+
+ @Rule
+ public TestName rule = new TestName() {
+
+ @Override
+ public void starting(FrameworkMethod method) {
+ super.starting(method);
+ if (autoDataEnabled()) {
+ try {
+ dataProvider.createAllData();
+ } catch (Exception eee) {
+ logger.error(eee.getClass().getSimpleName(), eee);
+ }
+ }
+ }
+
+ @Override
+ public void finished(FrameworkMethod method) {
+ if (autoDataEnabled()) {
+
+ Rollback rollback = method.getAnnotation(Rollback.class);
+
+ if (rollback == null || rollback.value()) {
+ dataProvider.deleteAllData();
+ }
+ }
+ super.finished(method);
+ }
+
+ public BaseTest getTest() {
+ return BaseTest.this;
+ }
+ };
+
+ protected boolean autoDataEnabled() {
+ return false;
+ }
+
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/BaseTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/JpaConfigTestSource.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/JpaConfigTestSource.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/JpaConfigTestSource.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,67 @@
+package org.nuiton.sandbox.jsr317.jpa2.test;
+
+import javax.sql.DataSource;
+import java.util.Properties;
+import org.hibernate.dialect.H2Dialect;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.JpaConfigSource;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
+import org.springframework.orm.jpa.JpaVendorAdapter;
+import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
+
+/**
+ * Jpa configuration for tests.
+ * <p />
+ * Created on 21 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ */
+@Configuration
+public class JpaConfigTestSource implements JpaConfigSource {
+
+ @Value("${jdbc.url}")
+ private String jdbcUrl;
+
+ @Value("${jdbc.username}")
+ private String jdbcUsername;
+
+ @Value("${jdbc.password}")
+ private String jdbcPassword;
+
+ @Bean
+ @Override
+ public JpaVendorAdapter jpaVendorAdapter() {
+ HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
+ jpaVendorAdapter.setShowSql(true);
+ jpaVendorAdapter.setGenerateDdl(true);
+ jpaVendorAdapter.setDatabasePlatform(H2Dialect.class.getName());
+ return jpaVendorAdapter;
+ }
+
+ @Bean
+ @Override
+ public Properties jpaProperties() {
+ Properties properties = new Properties();
+ properties.put("hibernate.hbm2ddl.auto", "create");
+ // WARNING : when using this property, flushing is needed after first persist and merge to execute INSERT as default strategy does,
+ // otherwise detaching the entity will not insert it
+ properties.put("hibernate.id.new_generator_mappings", "true");
+
+ return properties;
+ }
+
+ @Bean
+ @Override
+ public DataSource dataSource() {
+ DriverManagerDataSource dataSource = new DriverManagerDataSource();
+
+ dataSource.setUrl(jdbcUrl);
+ dataSource.setUsername(jdbcUsername);
+ dataSource.setPassword(jdbcPassword);
+
+ return dataSource;
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/JpaConfigTestSource.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/SpringTestConfig.java
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/SpringTestConfig.java (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/SpringTestConfig.java 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,36 @@
+package org.nuiton.sandbox.jsr317.jpa2.test;
+
+import org.nuiton.sandbox.jsr317.jpa2.persistence.JpaConfig;
+import org.nuiton.sandbox.jsr317.jpa2.persistence.JpaConfigSource;
+import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.core.io.ClassPathResource;
+
+/**
+ * Configuration used for tests. This will import default {@link JpaConfig} and use {@link JpaConfigTestSource} as {@link JpaConfigSource}
+ * implementation needed by the JpaConfig.
+ * <p />
+ * Created on 21 oct. 2010
+ *
+ * @author fdesbois <fdesbois(a)codelutin.com>
+ * @version $Id$
+ * @see JpaConfigTestSource
+ */
+@Configuration
+(a)Import({JpaConfig.class, JpaConfigTestSource.class})
+public class SpringTestConfig {
+
+ /**
+ * Used to retrieve properties from jdbc-test.properties file. @Value annotation can be used to inject those properties
+ *
+ * @return PropertyPlaceholderConfigurer defined
+ */
+ @Bean
+ public PropertyPlaceholderConfigurer propertyConfigurer() {
+ PropertyPlaceholderConfigurer propertyConfigurer = new PropertyPlaceholderConfigurer();
+ propertyConfigurer.setLocation(new ClassPathResource("/jdbc-test.properties"));
+ return propertyConfigurer;
+ }
+}
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/java/org/nuiton/sandbox/jsr317/jpa2/test/SpringTestConfig.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/META-INF/persistence.xml
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/resources/META-INF/persistence.xml (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/resources/META-INF/persistence.xml 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,10 @@
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+ version="2.0">
+
+ <persistence-unit name="jsr317-test" transaction-type="RESOURCE_LOCAL">
+ <class>org.nuiton.sandbox.jsr317.jpa2.entity.CustomerImpl</class>
+ </persistence-unit>
+
+</persistence>
\ No newline at end of file
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/META-INF/persistence.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/jdbc-test.properties
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/resources/jdbc-test.properties (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/resources/jdbc-test.properties 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,3 @@
+jdbc.url=jdbc:h2:file:./target/surefire-data/jsr317
+jdbc.username=sa
+jdbc.password=
\ No newline at end of file
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/jdbc-test.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/log4j.properties
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/resources/log4j.properties (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/resources/log4j.properties 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,11 @@
+# Default to info level output; this is very handy if you eventually use Hibernate as well.
+log4j.rootCategory=warn, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d [%p] (%c:%L) %m%n
+
+log4j.logger.org.nuiton.sandbox.jsr317.jpa2=info
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/log4j.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/test-context.xml
===================================================================
--- jpa2-validation/trunk/jsr317-jpa2/src/test/resources/test-context.xml (rev 0)
+++ jpa2-validation/trunk/jsr317-jpa2/src/test/resources/test-context.xml 2010-11-12 17:53:20 UTC (rev 433)
@@ -0,0 +1,16 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+
+ <!--<import resource="classpath:META-INF/jsr317-spring-context.xml"/>-->
+
+ <!-- Load Spring Configuration from Java file -->
+ <bean class="org.nuiton.sandbox.jsr317.jpa2.test.SpringTestConfig" />
+
+ <!-- Scan sample -->
+ <context:component-scan base-package="org.nuiton.sandbox.jsr317.jpa2.sample" />
+
+</beans>
\ No newline at end of file
Property changes on: jpa2-validation/trunk/jsr317-jpa2/src/test/resources/test-context.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: jpa2-validation/trunk/pom.xml
===================================================================
--- jpa2-validation/trunk/pom.xml 2010-11-05 12:45:44 UTC (rev 432)
+++ jpa2-validation/trunk/pom.xml 2010-11-12 17:53:20 UTC (rev 433)
@@ -27,12 +27,121 @@
<dependencies>
<dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ <version>1.4.2</version>
+ </dependency>
+
+ <!-- SPRING -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-orm</artifactId>
+ <version>${springVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${springVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ <version>${springVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>${springVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${springVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ <version>${springVersion}</version>
+ </dependency>
+
+ <!-- JPA : JSR-317- -->
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ <version>${jpa2ApiVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-jpamodelgen</artifactId>
+ <version>${jpa2ApiVersion}</version>
+ </dependency>
+
+ <!-- Bean Validation : JSR-303 -->
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>${validationApiVersion}</version>
+ </dependency>
+
+ <!-- LOGGING -->
+ <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4jVersion}</version>
<scope>runtime</scope>
</dependency>
+ <!-- TESTS -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.2.143</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Hibernate implementation used for tests -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>${hibernateVersion}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>${hibernateValidatorVersion}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4jVersion}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${slf4jVersion}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Testing -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${springVersion}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
</dependencyManagement>
@@ -52,6 +161,17 @@
<packaging>pom</packaging>
<properties>
+
+ <!-- Dependencies versions -->
+ <springVersion>3.0.4.RELEASE</springVersion>
+ <jpa2ApiVersion>1.0.0.Final</jpa2ApiVersion>
+ <validationApiVersion>1.0.0.GA</validationApiVersion>
+
+ <!-- For test only : Hibernate implementation for JSR used -->
+ <hibernateVersion>3.5.6-Final</hibernateVersion>
+ <hibernateValidatorVersion>4.0.2.GA</hibernateValidatorVersion>
+ <slf4jVersion>1.6.1</slf4jVersion>
+
</properties>
<!-- Source control management. -->
Property changes on: jpa2-validation/trunk/pom.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
06 Nov '10
Author: jcouteau
Date: 2010-11-06 15:12:36 +0100 (Sat, 06 Nov 2010)
New Revision: 20
Url: http://chorem.org/repositories/revision/incubator/20
Log:
Commit tries on wikitty use
Added:
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/refcomp.css
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/public/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/public/RefComp.html
Removed:
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/client/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/public/
refComp/skills-services/skills-services.iml
Modified:
refComp/pom.xml
refComp/skills-client/pom.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java
refComp/skills-client/src/main/webapp/WEB-INF/web.xml
Modified: refComp/pom.xml
===================================================================
--- refComp/pom.xml 2010-11-06 14:07:51 UTC (rev 19)
+++ refComp/pom.xml 2010-11-06 14:12:36 UTC (rev 20)
@@ -66,7 +66,7 @@
<projectId>skills</projectId>
<!-- libraries version -->
- <gwtVersion>2.0.3</gwtVersion>
+ <gwtVersion>2.1.0</gwtVersion>
<wikittyVersion>3.0-SNAPSHOT</wikittyVersion>
<generatorPluginVersion>2.2</generatorPluginVersion>
</properties>
@@ -129,6 +129,39 @@
<version>8.4-701.jdbc4</version>
<scope>runtime</scope>
</dependency>
+
+ <dependency>
+ <groupId>com.google.code.gwtx</groupId>
+ <artifactId>gwtx</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+
+ <!-- Comment, not maven packaged -->
+ <!--dependency>
+ <groupId>com.spiral</groupId>
+ <artifactId>gwt-calendar</artifactId>
+ <version>1.0-beta1</version>
+ </dependency-->
+
+ <!-- JC Tried this, useless -->
+ <!--dependency>
+ <groupId>com.smartgwt</groupId>
+ <artifactId>smartgwt</artifactId>
+ <version>2.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.gwtwidget</groupId>
+ <artifactId>gwt-widget</artifactId>
+ <version>1.1</version>
+ <type>war</type>
+ </dependency>
+
+ <dependency>
+ <groupId>pl.rmalinowski</groupId>
+ <artifactId>gwtreflect</artifactId>
+ <version>0.8</version>
+ </dependency-->
</dependencies>
@@ -141,7 +174,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
- <version>1.2</version>
+ <version>2.1.0</version>
<executions>
<execution>
<goals>
@@ -154,7 +187,6 @@
<hostedWebapp>src/main/webapp</hostedWebapp>
<runTarget>org.chorem.bonzoms.skills.client.RefComp/RefComp.html</runTarget>
<noServer>false</noServer>
- <gwtVersion>${gwtVersion}</gwtVersion>
</configuration>
</plugin>
@@ -170,7 +202,7 @@
<directory>src/main/webapp/WEB-INF/classes</directory>
</fileset>
<fileset>
- <directory>src/main/webapp/org.chorem.bonzoms.skills.client.RefComp</directory>
+ <directory>src/main/webapp/org.chorem.bonzoms.skills.RefComp</directory>
</fileset>
</filesets>
</configuration>
Modified: refComp/skills-client/pom.xml
===================================================================
--- refComp/skills-client/pom.xml 2010-11-06 14:07:51 UTC (rev 19)
+++ refComp/skills-client/pom.xml 2010-11-06 14:12:36 UTC (rev 20)
@@ -51,6 +51,34 @@
<classifier>sources</classifier>
</dependency>
+ <dependency>
+ <groupId>com.google.code.gwtx</groupId>
+ <artifactId>gwtx</artifactId>
+ </dependency>
+
+ <!-- Not maven packaged -->
+ <!--dependency>
+ <groupId>com.spiral</groupId>
+ <artifactId>gwt-calendar</artifactId>
+ </dependency-->
+
+ <!-- Useless tries -->
+ <!--dependency>
+ <groupId>com.smartgwt</groupId>
+ <artifactId>smartgwt</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.gwtwidget</groupId>
+ <artifactId>gwt-widget</artifactId>
+ <type>war</type>
+ </dependency>
+
+ <dependency>
+ <groupId>pl.rmalinowski</groupId>
+ <artifactId>gwtreflect</artifactId>
+ </dependency-->
+
</dependencies>
<!-- ************************************************************* -->
Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml 2010-11-06 14:07:51 UTC (rev 19)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml 2010-11-06 14:12:36 UTC (rev 20)
@@ -6,8 +6,18 @@
<inherits name='com.google.gwt.user.User'/>
<inherits name="com.google.gwt.uibinder.UiBinder"/>
<inherits name="org.chorem.bonzoms.skills.Entities"/>
+
+ <!--Wikitty dependency-->
<inherits name="org.nuiton.WikittyAPI"/>
+ <!--gwtx dependency-->
+ <inherits name="com.googlecode.gwtx.Java"/>
+
+ <!--gwt-calendar dependancy-->
+ <inherits name='com.spiral.gwt-calendar'/>
+
+ <!--inherits name="com.smartgwt.SmartGwt"/-->
+
<!-- inherit css based theme -->
<inherits name='com.google.gwt.user.theme.standard.Standard'/>
Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java 2010-11-06 14:07:51 UTC (rev 19)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java 2010-11-06 14:12:36 UTC (rev 20)
@@ -12,6 +12,7 @@
import org.chorem.bonzoms.skills.client.services.UserService;
import org.chorem.bonzoms.skills.client.services.UserServiceAsync;
import org.chorem.bonzoms.skills.entities.User;
+import org.chorem.bonzoms.skills.entities.UserImpl;
/**
* User: couteau
@@ -19,10 +20,10 @@
*/
public class AdminUsers extends Composite {
- private final UserServiceAsync userService = GWT
- .create(UserService.class);
+ /**private final UserServiceAsync userService = GWT
+ .create(UserService.class);**/
- @UiTemplate("Login.ui.xml")
+ @UiTemplate("AdminUsers.ui.xml")
interface MyUiBinder extends UiBinder<Panel, AdminUsers> {
}
@@ -34,7 +35,12 @@
public AdminUsers() {
initWidget(binder.createAndBindUi(this));
- userService.getUser(new AsyncCallback<User>() {
+ User toto = new UserImpl();
+ toto.setNom("Toto");
+
+ //userName.setText(toto.getNom());
+
+ /*userService.getUser(new AsyncCallback<User>() {
@Override
public void onFailure(Throwable caught) {
Window.alert("Server communication error");
@@ -44,6 +50,6 @@
public void onSuccess(User result) {
userName.setText(result.getNom());
}
- });
+ });*/
}
}
Modified: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java 2010-11-06 14:07:51 UTC (rev 19)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java 2010-11-06 14:12:36 UTC (rev 20)
@@ -77,8 +77,11 @@
header.clear();
content.add(new Search());
- header.add(new Header());
+ Header newHeader = new Header();
+
+ header.add(newHeader);
+
} else {
Window.alert("Login failed, try with admin/admin");
}
Added: refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/refcomp.css
===================================================================
--- refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/refcomp.css (rev 0)
+++ refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/refcomp.css 2010-11-06 14:12:36 UTC (rev 20)
@@ -0,0 +1,36 @@
+.greyText {
+ font-family: "Lucida Grande", Arial, Sans-serif;
+ color: #778899;
+ font-size: 11px;
+ text-align: left;
+}
+
+.loginButton {
+ border: 1px solid #3399DD;
+ color: #FFFFFF;
+ background: #3322DD;
+ font-size: 11px;
+ font-weight: bold;
+ margin: 0 5px 0 0;
+ padding: 4px 10px 5px;
+ text-shadow: 0 -1px 0 #3399DD;
+}
+
+.box {
+ border: 1px solid #AACCEE;
+ display: block;
+ font-size: 12px;
+ margin: 0 0 5px;
+ padding: 3px;
+ width: 203px;
+}
+
+.background {
+ background-color: #DDEEF6;
+ border: 1px none transparent;
+ color: #778899;
+ font-size: 11px;
+ margin-left: -8px;
+ margin-top: 5px;
+ padding: 6px;
+}
Added: refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/public/RefComp.html
===================================================================
--- refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/public/RefComp.html (rev 0)
+++ refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/public/RefComp.html 2010-11-06 14:12:36 UTC (rev 20)
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+
+ <title>Bonzoms - Skills</title>
+
+ <meta name='gwt:module' content='org.chorem.bonzoms.skills.RefComp'>
+
+ <!-- -->
+ <!-- This script loads your compiled module. -->
+ <!-- If you add any GWT meta tags, they must -->
+ <!-- be added before this line. -->
+ <!-- -->
+ <script type="text/javascript" language="javascript" src="org.chorem.bonzoms.skills.RefComp.nocache.js"></script>
+</head>
+<body>
+
+<div id="header"></div>
+
+<div id="content"></div>
+
+<div id="footer"></div>
+
+
+ <!-- OPTIONAL: include this if you want history support -->
+ <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+</body>
+</html>
\ No newline at end of file
Modified: refComp/skills-client/src/main/webapp/WEB-INF/web.xml
===================================================================
--- refComp/skills-client/src/main/webapp/WEB-INF/web.xml 2010-11-06 14:07:51 UTC (rev 19)
+++ refComp/skills-client/src/main/webapp/WEB-INF/web.xml 2010-11-06 14:12:36 UTC (rev 20)
@@ -16,7 +16,7 @@
</servlet>
<servlet-mapping>
<servlet-name>LoginService</servlet-name>
- <url-pattern>/org.chorem.bonzoms.skills.client.RefComp/login</url-pattern>
+ <url-pattern>/org.chorem.bonzoms.skills.RefComp/login</url-pattern>
</servlet-mapping>
<servlet>
@@ -26,7 +26,7 @@
</servlet>
<servlet-mapping>
<servlet-name>SearchService</servlet-name>
- <url-pattern>/org.chorem.bonzoms.skills.client.RefComp/search</url-pattern>
+ <url-pattern>/org.chorem.bonzoms.skills.RefComp/search</url-pattern>
</servlet-mapping>
</web-app>
Deleted: refComp/skills-services/skills-services.iml
===================================================================
--- refComp/skills-services/skills-services.iml 2010-11-06 14:07:51 UTC (rev 19)
+++ refComp/skills-services/skills-services.iml 2010-11-06 14:12:36 UTC (rev 20)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/target/classes" />
- <output-test url="file://$MODULE_DIR$/target/test-classes" />
- <content url="file://$MODULE_DIR$">
- <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/.svn" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
- <excludeFolder url="file://$MODULE_DIR$/target/.svn" />
- <excludeFolder url="file://$MODULE_DIR$/target/classes" />
- <excludeFolder url="file://$MODULE_DIR$/target/extra" />
- <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver" />
- <excludeFolder url="file://$MODULE_DIR$/target/services-0.1-SNAPSHOT" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" scope="PROVIDED" name="Maven: com.google.gwt:gwt-user:2.0.3" level="project" />
- </component>
-</module>
-
1
0
Author: jcouteau
Date: 2010-11-06 15:07:51 +0100 (Sat, 06 Nov 2010)
New Revision: 19
Url: http://chorem.org/repositories/revision/incubator/19
Log:
Add info on how to compile and run
Modified:
refComp/README.txt
Modified: refComp/README.txt
===================================================================
--- refComp/README.txt 2010-11-05 16:20:48 UTC (rev 18)
+++ refComp/README.txt 2010-11-06 14:07:51 UTC (rev 19)
@@ -0,0 +1,25 @@
+Pour lancer bonzoms-skills en mode développement :
+--------------------------------------------------
+
+1. Compiler skills-entities :
+
+cd skills-entities
+mvn install
+
+2. Lancer skills-client :
+
+cd skills-client
+mvn gwt:run
+
+(il vous faudra le plugin gwt pour votre navigateur)
+
+Pour déployer bonzoms-skills sur son serveur :
+----------------------------------------------
+
+1. Compiler :
+
+mvn compile
+
+2. Déployer le war sur son serveur
+
+cp skills-client/target/skills-client
1
0
Author: jcouteau
Date: 2010-11-05 17:20:48 +0100 (Fri, 05 Nov 2010)
New Revision: 18
Url: http://chorem.org/repositories/revision/incubator/18
Log:
Remove old services module
Removed:
refComp/services/
1
0
Author: jcouteau
Date: 2010-11-05 17:06:09 +0100 (Fri, 05 Nov 2010)
New Revision: 17
Url: http://chorem.org/repositories/revision/incubator/17
Log:
Huge refactoring :
try using wikitty in gwt
rename packages to org.chorem.bonzoms.skills
use correct modules names
Added:
refComp/skills-client/
refComp/skills-client/pom.xml
refComp/skills-client/src/main/java/org/
refComp/skills-client/src/main/java/org/chorem/
refComp/skills-client/src/main/java/org/chorem/bonzoms/
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/RefComp.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.ui.xml
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java
refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java
refComp/skills-client/src/main/resources/org/
refComp/skills-client/src/main/resources/org/chorem/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/client/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/client/refcomp.css
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/public/
refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/public/RefComp.html
refComp/skills-client/src/main/webapp/
refComp/skills-client/src/main/webapp/WEB-INF/web.xml
refComp/skills-client/src/main/webapp/index.html
refComp/skills-client/src/test/java/org/
refComp/skills-client/src/test/java/org/chorem/
refComp/skills-client/src/test/java/org/chorem/bonzoms/
refComp/skills-client/src/test/java/org/chorem/bonzoms/skills/
refComp/skills-client/src/test/java/org/chorem/bonzoms/skills/client/
refComp/skills-entities/
refComp/skills-entities/src/main/java/
refComp/skills-entities/src/main/java/org/
refComp/skills-entities/src/main/java/org/chorem/
refComp/skills-entities/src/main/java/org/chorem/bonzoms/
refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/
refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml
refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/entities/
refComp/skills-services/
refComp/skills-services/LICENSE.txt
refComp/skills-services/README.txt
refComp/skills-services/changelog.txt
refComp/skills-services/pom.xml
refComp/skills-services/skills-services.iml
refComp/skills-services/src/
refComp/skills-services/src/main/
refComp/skills-services/src/main/java/
refComp/skills-services/src/main/java/org/
refComp/skills-services/src/main/java/org/chorem/
refComp/skills-services/src/main/java/org/chorem/bonzoms/
refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/
refComp/skills-services/src/main/java/org/chorem/bonzoms/skills/services/
refComp/skills-services/src/main/resources/
refComp/skills-services/src/main/resources/org/
refComp/skills-services/src/main/resources/org/chorem/
refComp/skills-services/src/main/resources/org/chorem/bonzoms/
refComp/skills-services/src/main/resources/org/chorem/bonzoms/skills/
refComp/skills-services/src/main/resources/org/chorem/bonzoms/skills/client/
refComp/skills-services/src/test/
refComp/skills-services/src/test/java/
refComp/skills-services/src/test/java/org/
refComp/skills-services/src/test/java/org/chorem/
refComp/skills-services/src/test/java/org/chorem/bonzoms/
refComp/skills-services/src/test/java/org/chorem/bonzoms/skills/
refComp/skills-services/src/test/java/org/chorem/bonzoms/skills/client/
refComp/skills-services/src/test/java/org/chorem/bonzoms/skills/client/client/
Removed:
refComp/client/
refComp/entities/
refComp/services/src/main/java/fr/inra/Services.gwt.xml
refComp/services/src/test/java/fr/inra/refcomp/client/GwtTestSample.java
refComp/skills-client/pom.xml
refComp/skills-client/src/main/java/fr/
refComp/skills-client/src/main/resources/fr/
refComp/skills-client/src/main/webapp/
refComp/skills-client/src/main/webapp/WEB-INF/web.xml
refComp/skills-client/src/main/webapp/index.html
refComp/skills-client/src/test/java/fr/
Modified:
refComp/pom.xml
refComp/skills-entities/pom.xml
refComp/skills-entities/src/main/xmi/UseCaseINRA-RefComp.zargo
Modified: refComp/pom.xml
===================================================================
--- refComp/pom.xml 2010-11-05 12:49:52 UTC (rev 16)
+++ refComp/pom.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -16,14 +16,14 @@
<version>2.4</version>
</parent>
- <groupId>fr.inra</groupId>
- <artifactId>refcomp</artifactId>
+ <groupId>org.chorem.bonzoms</groupId>
+ <artifactId>skills</artifactId>
<version>0.1-SNAPSHOT</version>
<modules>
- <module>client</module>
- <module>services</module>
- <module>entities</module>
+ <module>skills-client</module>
+ <module>skills-services</module>
+ <module>skills-entities</module>
</modules>
@@ -31,7 +31,7 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
- <name>RefComp</name>
+ <name>Bonzoms - Skills</name>
<description>
Software to create a knowledge database about people skills.
@@ -63,10 +63,8 @@
<properties>
- <projectId>Ref Comp</projectId>
+ <projectId>skills</projectId>
- <labs.id>---</labs.id>
-
<!-- libraries version -->
<gwtVersion>2.0.3</gwtVersion>
<wikittyVersion>3.0-SNAPSHOT</wikittyVersion>
@@ -154,7 +152,7 @@
</executions>
<configuration>
<hostedWebapp>src/main/webapp</hostedWebapp>
- <runTarget>fr.inra.refcomp.RefComp/RefComp.html</runTarget>
+ <runTarget>org.chorem.bonzoms.skills.client.RefComp/RefComp.html</runTarget>
<noServer>false</noServer>
<gwtVersion>${gwtVersion}</gwtVersion>
</configuration>
@@ -172,7 +170,7 @@
<directory>src/main/webapp/WEB-INF/classes</directory>
</fileset>
<fileset>
- <directory>src/main/webapp/fr.inra.refcomp.RefComp</directory>
+ <directory>src/main/webapp/org.chorem.bonzoms.skills.client.RefComp</directory>
</fileset>
</filesets>
</configuration>
Deleted: refComp/services/src/main/java/fr/inra/Services.gwt.xml
===================================================================
--- refComp/services/src/main/java/fr/inra/Services.gwt.xml 2010-11-05 12:49:52 UTC (rev 16)
+++ refComp/services/src/main/java/fr/inra/Services.gwt.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -1,7 +0,0 @@
-<!DOCTYPE module PUBLIC "//gwt-module/" "http://google-web-toolkit.googlecode.com/svn/tags/1.6.2/distro-source/core/…">
-<module>
-
- <!-- Inherit the core Web Toolkit stuff. -->
- <inherits name='com.google.gwt.user.User'/>
-
-</module>
Deleted: refComp/services/src/test/java/fr/inra/refcomp/client/GwtTestSample.java
===================================================================
--- refComp/services/src/test/java/fr/inra/refcomp/client/GwtTestSample.java 2010-11-05 12:49:52 UTC (rev 16)
+++ refComp/services/src/test/java/fr/inra/refcomp/client/GwtTestSample.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -1,23 +0,0 @@
-package fr.inra.refcomp.client;
-
-import junit.framework.Assert;
-
-import com.google.gwt.junit.client.GWTTestCase;
-
-public class GwtTestSample
- extends GWTTestCase
-{
-
- public String getModuleName()
- {
- return "fr.inra.Application";
- }
-
- public void testSomething()
- {
- // Not much to actually test in this sample app
- // Ideally you would test your Controller here (NOT YOUR UI)
- // (Make calls to RPC services, test client side model objects, test client side logic, etc)
- Assert.assertTrue( true );
- }
-}
\ No newline at end of file
Deleted: refComp/skills-client/pom.xml
===================================================================
--- refComp/client/pom.xml 2010-11-04 08:31:02 UTC (rev 6)
+++ refComp/skills-client/pom.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
-
- <!-- ************************************************************* -->
- <!-- *** POM Relationships *************************************** -->
- <!-- ************************************************************* -->
-
- <parent>
- <groupId>fr.inra</groupId>
- <artifactId>refcomp</artifactId>
- <version>0.1-SNAPSHOT</version>
- </parent>
-
- <groupId>fr.inra.refcomp</groupId>
- <artifactId>client</artifactId>
-
- <dependencies>
-
- <!-- GWT -->
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-user</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.google.gwt</groupId>
- <artifactId>gwt-servlet</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.gwtmultipage</groupId>
- <artifactId>gwtmultipage-core</artifactId>
- <version>1.0.0.Beta5</version>
- </dependency>
-
- <dependency>
- <groupId>fr.inra.refcomp</groupId>
- <artifactId>services</artifactId>
- <version>0.1-SNAPSHOT</version>
- </dependency>
-
- </dependencies>
-
- <!-- ************************************************************* -->
- <!-- *** Project Information ************************************* -->
- <!-- ************************************************************* -->
-
- <name>${project.artifactId}</name>
- <description>RefComp Client interfaces module</description>
-
- <!-- ************************************************************* -->
- <!-- *** Build Settings ****************************************** -->
- <!-- ************************************************************* -->
-
- <packaging>war</packaging>
-
- <build>
-
- <outputDirectory>war/WEB-INF/classes</outputDirectory>
-
- <plugins>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>gwt-maven-plugin</artifactId>
- </plugin>
-
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- </plugin>
-
- </plugins>
- </build>
-
-</project>
\ No newline at end of file
Copied: refComp/skills-client/pom.xml (from rev 14, refComp/client/pom.xml)
===================================================================
--- refComp/skills-client/pom.xml (rev 0)
+++ refComp/skills-client/pom.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.chorem.bonzoms</groupId>
+ <artifactId>skills</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.chorem.bonzoms.skills</groupId>
+ <artifactId>skills-client</artifactId>
+
+ <dependencies>
+
+ <!-- GWT -->
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-servlet</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.chorem.bonzoms.skills</groupId>
+ <artifactId>skills-entities</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.chorem.bonzoms.skills</groupId>
+ <artifactId>skills-entities</artifactId>
+ <version>${project.version}</version>
+ <classifier>sources</classifier>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${wikittyVersion}</version>
+ <classifier>sources</classifier>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Bonzoms - Skills Client interfaces module</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>war</packaging>
+
+ <build>
+
+ <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
+
+ <!--resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.css</include>
+ </includes>
+ </resource>
+ </resources-->
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/RefComp.gwt.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,23 @@
+<!DOCTYPE module PUBLIC "//gwt-module/"
+ "http://google-web-toolkit.googlecode.com/svn/tags/1.6.2/distro-source/core/…">
+<module>
+
+ <!-- Inherit the core Web Toolkit stuff. -->
+ <inherits name='com.google.gwt.user.User'/>
+ <inherits name="com.google.gwt.uibinder.UiBinder"/>
+ <inherits name="org.chorem.bonzoms.skills.Entities"/>
+ <inherits name="org.nuiton.WikittyAPI"/>
+
+ <!-- inherit css based theme -->
+ <inherits name='com.google.gwt.user.theme.standard.Standard'/>
+
+ <!-- Specify the app entry point class. -->
+ <entry-point class='org.chorem.bonzoms.skills.client.RefComp'/>
+
+ <source path="client"/>
+ <source path="service"/>
+
+ <public path="public"/>
+ <public path="client"/>
+
+</module>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,49 @@
+package org.chorem.bonzoms.skills.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Panel;
+import org.chorem.bonzoms.skills.client.services.UserService;
+import org.chorem.bonzoms.skills.client.services.UserServiceAsync;
+import org.chorem.bonzoms.skills.entities.User;
+
+/**
+ * User: couteau
+ * Date: 5 nov. 2010
+ */
+public class AdminUsers extends Composite {
+
+ private final UserServiceAsync userService = GWT
+ .create(UserService.class);
+
+ @UiTemplate("Login.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, AdminUsers> {
+ }
+
+ @UiField
+ Label userName;
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ public AdminUsers() {
+ initWidget(binder.createAndBindUi(this));
+
+ userService.getUser(new AsyncCallback<User>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ Window.alert("Server communication error");
+ }
+
+ @Override
+ public void onSuccess(User result) {
+ userName.setText(result.getNom());
+ }
+ });
+ }
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/AdminUsers.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,13 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="refcomp.css"/>
+
+ <gwt:HTMLPanel>
+ <div align="center">
+ <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
+ <gwt:Label ui:field="userName" styleName="{style.greyText}"/>
+ </gwt:HorizontalPanel>
+ </div>
+ </gwt:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,115 @@
+package org.chorem.bonzoms.skills.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.PasswordTextBox;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.TextBox;
+import org.chorem.bonzoms.skills.client.constants.Header;
+import org.chorem.bonzoms.skills.client.services.LoginService;
+import org.chorem.bonzoms.skills.client.services.LoginServiceAsync;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class Login extends Composite {
+
+ private final LoginServiceAsync loginService = GWT
+ .create(LoginService.class);
+
+ @UiTemplate("Login.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, Login> {
+ }
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ public Login() {
+ initWidget(binder.createAndBindUi(this));
+ }
+
+ @UiField
+ TextBox loginBox;
+
+ @UiField
+ PasswordTextBox passwordBox;
+
+ @UiField
+ Label completionLabel1;
+
+ @UiField
+ Label completionLabel2;
+
+ private Boolean tooShort = false;
+
+ /*
+ * Method name is not relevant, the binding is done according to the class
+ * of the parameter.
+ */
+
+ @UiHandler("buttonSubmit")
+ void doClickSubmit(ClickEvent event) {
+ if (tooShort) {
+ loginService.login(loginBox.getValue(), passwordBox.getValue(),
+ new AsyncCallback<Boolean>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ Window.alert("Server communication error");
+ }
+
+ @Override
+ public void onSuccess(Boolean result) {
+ if (result){
+ RootPanel content = RootPanel.get("content");
+ RootPanel header = RootPanel.get("header");
+
+ content.clear();
+ header.clear();
+
+ content.add(new Search());
+ header.add(new Header());
+
+ } else {
+ Window.alert("Login failed, try with admin/admin");
+ }
+ }
+ });
+ } else {
+ Window.alert("Login or Password is too short");
+ }
+ }
+
+ @UiHandler("loginBox")
+ void loginBoxValueChanged(ValueChangeEvent<String> event) {
+ if (event.getValue().length() < 3) {
+ completionLabel1.setText("Login too short (Size must be >3)");
+ tooShort = false;
+ } else {
+ tooShort = true;
+ completionLabel1.setText("");
+ }
+ }
+
+ @UiHandler("passwordBox")
+ void passwordBoxValueChanged(ValueChangeEvent<String> event) {
+ if (event.getValue().length() < 3) {
+ tooShort = false;
+ completionLabel2.setText("Password too short (Size must be >3)");
+ } else {
+ tooShort = true;
+ completionLabel2.setText("");
+ }
+ }
+
+
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Login.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,28 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="refcomp.css"/>
+
+ <gwt:HTMLPanel>
+ <div align="center">
+ <gwt:VerticalPanel styleName="{style.background}">
+ <gwt:Label text="Login" styleName="{style.greyText}"/>
+ <gwt:TextBox ui:field="loginBox"
+ styleName="{style.box}"/>
+ <gwt:Label text="Password" styleName="{style.greyText}"/>
+ <gwt:PasswordTextBox ui:field="passwordBox" styleName="{style.box}"/>
+ <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
+ <gwt:Button ui:field="buttonSubmit" text="Submit"
+ styleName="{style.loginButton}"/>
+ <gwt:CheckBox ui:field="myCheckBox"/>
+ <gwt:Label ui:field="myLabel" text="Remember me"
+ styleName="{style.greyText}"/>
+ </gwt:HorizontalPanel>
+ <gwt:Label ui:field="completionLabel1"
+ styleName="{style.greyText}"/>
+ <gwt:Label ui:field="completionLabel2"
+ styleName="{style.greyText}"/>
+ </gwt:VerticalPanel>
+ </div>
+ </gwt:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,83 @@
+package org.chorem.bonzoms.skills.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import org.chorem.bonzoms.skills.client.services.Skill;
+import org.chorem.bonzoms.skills.client.services.SearchServiceAsync;
+import org.chorem.bonzoms.skills.client.services.SearchService;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public class MySkills extends Composite {
+
+ private final SearchServiceAsync searchService = GWT
+ .create(SearchService.class);
+
+ @UiTemplate("MySkills.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, MySkills> {
+ }
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ @UiField
+ VerticalPanel skillsList;
+
+ public MySkills() {
+
+ initWidget(binder.createAndBindUi(this));
+
+ //Use here the searchService that return a skill. Replace this with
+ //a real server.
+ searchService.search("toto",
+ new AsyncCallback<List<Skill>>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ Window.alert("Server communication error");
+ }
+
+ @Override
+ public void onSuccess(List<Skill> result) {
+
+ skillsList.clear();
+
+ for(Skill skill:result){
+
+ final HorizontalPanel skillPanel = new HorizontalPanel();
+
+ final SkillEditionRow row = new SkillEditionRow(skill);
+
+ skillPanel.add(row);
+
+ final Button removeButton = new Button("Remove");
+
+ removeButton.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent event) {
+ skillPanel.remove(row);
+ skillPanel.remove(removeButton);
+ }
+ });
+
+ skillPanel.add(removeButton);
+
+ skillsList.add(skillPanel);
+ }
+ }
+ });
+
+ }
+
+}
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/MySkills.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,24 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="refcomp.css"/>
+
+ <gwt:HTMLPanel>
+
+ <div align="center">
+ <gwt:VerticalPanel styleName="{style.background}">
+ <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
+ <gwt:Label text="My Skills : "
+ styleName="{style.greyText}"/>
+ <gwt:Label ui:field="searchedLabel" text="Hervé Richard"
+ styleName="{style.greyText}"/>
+ </gwt:HorizontalPanel>
+
+ <gwt:VerticalPanel ui:field="skillsList"/>
+
+ <gwt:Button ui:field="addButton" text="Add a skill"/>
+
+ </gwt:VerticalPanel>
+ </div>
+ </gwt:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/RefComp.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/RefComp.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/RefComp.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,18 @@
+package org.chorem.bonzoms.skills.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.user.client.ui.RootPanel;
+import org.chorem.bonzoms.skills.client.constants.Footer;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class RefComp implements EntryPoint {
+ public void onModuleLoad() {
+
+ RootPanel.get("content").add(new Login());
+ RootPanel.get("footer").add(new Footer());
+
+ }
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,69 @@
+package org.chorem.bonzoms.skills.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.TextBox;
+import org.chorem.bonzoms.skills.client.services.SearchService;
+import org.chorem.bonzoms.skills.client.services.SearchServiceAsync;
+import org.chorem.bonzoms.skills.client.services.Skill;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class Search extends Composite {
+
+ private final SearchServiceAsync searchService = GWT
+ .create(SearchService.class);
+
+ @UiTemplate("Search.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, Search> {
+ }
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ @UiField
+ TextBox searchBox;
+
+ public Search() {
+ initWidget(binder.createAndBindUi(this));
+ }
+
+ @UiHandler("buttonSearch")
+ void doClickSubmit(ClickEvent event) {
+ searchService.search(searchBox.getValue(),
+ new AsyncCallback<List<Skill>>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ Window.alert("Server communication error");
+ }
+
+ @Override
+ public void onSuccess(List<Skill> result) {
+ RootPanel content = RootPanel.get("content");
+
+ content.clear();
+
+ SearchResults resultPanel = new SearchResults();
+
+ content.add(resultPanel);
+
+ resultPanel.setResults(result);
+ }
+ });
+ }
+
+
+
+
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/Search.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,19 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="refcomp.css"/>
+
+ <gwt:HTMLPanel>
+ <div align="center">
+ <gwt:VerticalPanel styleName="{style.background}">
+ <gwt:Label text="RefComp Search" styleName="{style.greyText}"/>
+ <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
+ <gwt:TextBox ui:field="searchBox"
+ styleName="{style.box}"/>
+ <gwt:Button ui:field="buttonSearch" text="Search"
+ styleName="{style.loginButton}"/>
+ </gwt:HorizontalPanel>
+ </gwt:VerticalPanel>
+ </div>
+ </gwt:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,63 @@
+package org.chorem.bonzoms.skills.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.Panel;
+import org.chorem.bonzoms.skills.client.services.Skill;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class SearchResults extends Composite {
+
+ @UiTemplate("SearchResults.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, SearchResults> {
+ }
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ @UiField
+ Grid resultsGrid;
+
+ public SearchResults() {
+ initWidget(binder.createAndBindUi(this));
+ }
+
+ public void setResults(List<Skill> skills){
+
+ resultsGrid.resize(skills.size() + 1, 6);
+
+ //Set grid title
+ resultsGrid.setText(0,0,"Name");
+ resultsGrid.setText(0,1,"Skill");
+ resultsGrid.setText(0,2,"Linked Skill");
+ resultsGrid.setText(0,3,"Level");
+ resultsGrid.setText(0,4,"Comment");
+ resultsGrid.setText(0,5,"Right");
+
+
+ for (int i=0;i<skills.size();i++){
+
+ //The skill to put in row
+ Skill skill = skills.get(i);
+
+ resultsGrid.setText(i+1,0,skill.getName());
+ resultsGrid.setText(i+1,1,skill.getSkill());
+ resultsGrid.setText(i+1,2,skill.getLinkedSkill());
+ resultsGrid.setText(i+1,3,skill.getLevel());
+ resultsGrid.setText(i+1,4,skill.getComment());
+ resultsGrid.setText(i+1,5,skill.getRight());
+
+ }
+
+ }
+
+
+
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SearchResults.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,27 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="refcomp.css"/>
+
+ <gwt:HTMLPanel>
+ <div id="facets">
+ <gwt:VerticalPanel styleName="{style.background}">
+
+ </gwt:VerticalPanel>
+ </div>
+
+ <div align="center">
+ <gwt:VerticalPanel styleName="{style.background}">
+ <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
+ <gwt:Label text="Search : "
+ styleName="{style.greyText}"/>
+ <gwt:Label ui:field="searchedLabel" text="Toto"
+ styleName="{style.greyText}"/>
+ </gwt:HorizontalPanel>
+
+ <gwt:Grid ui:field="resultsGrid"/>
+
+ </gwt:VerticalPanel>
+ </div>
+ </gwt:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,83 @@
+package org.chorem.bonzoms.skills.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.TextBox;
+import org.chorem.bonzoms.skills.client.services.Level;
+import org.chorem.bonzoms.skills.client.services.Skill;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public class SkillEditionRow extends Composite {
+
+ List<String> levels = new ArrayList<String>();
+
+ @UiTemplate("SkillEditionRow.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, SkillEditionRow> {
+ }
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ private Skill editedSkill;
+
+ @UiField
+ Label skill;
+
+ @UiField
+ Label linkedSkill;
+
+ @UiField
+ ListBox levelListBox;
+
+ @UiField
+ TextBox commentBox;
+
+ @UiField
+ Label rightLabel;
+
+ public SkillEditionRow() {
+ init();
+ }
+
+ public SkillEditionRow(Skill skill) {
+ init();
+ setSkill(skill);
+ }
+
+ protected void init(){
+ initWidget(binder.createAndBindUi(this));
+ populateLevelList();
+ }
+
+ public void setSkill(Skill skill){
+
+ editedSkill = skill;
+
+ this.skill.setText(editedSkill.getSkill());
+ this.linkedSkill.setText(editedSkill.getLinkedSkill());
+ this.levelListBox.setSelectedIndex(levels.indexOf(editedSkill.getLevel()));
+ this.commentBox.setText(editedSkill.getComment());
+ this.rightLabel.setText(editedSkill.getRight());
+
+ }
+
+ protected void populateLevelList(){
+ levels = new ArrayList<String>();
+
+ for (Level level: Level.values()){
+ levels.add(level.getLabel());
+ levelListBox.addItem(level.getLabel());
+ }
+
+ }
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/SkillEditionRow.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,18 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="refcomp.css"/>
+
+ <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
+ <gwt:Label ui:field="skill" styleName="{style.greyText}"/>
+ <gwt:Label text="Linked skill : " styleName="{style.greyText}"/>
+ <gwt:Label ui:field="linkedSkill" styleName="{style.greyText}"/>
+ <gwt:Button ui:field="editLinkedSkill" text="Edit"/>
+ <gwt:Label text="Level : "/>
+ <gwt:ListBox ui:field="levelListBox" visibleItemCount="1"/>
+ <gwt:Label text="Comment : "/>
+ <gwt:TextBox ui:field="commentBox"/>
+ <gwt:Label text="Right : "/>
+ <gwt:Label ui:field="rightLabel"/>
+ </gwt:HorizontalPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,25 @@
+package org.chorem.bonzoms.skills.client.constants;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.StyleInjector;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Panel;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class Footer extends Composite {
+ @UiTemplate("Footer.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, Footer> {
+ }
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ public Footer() {
+ initWidget(binder.createAndBindUi(this));
+ }
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Footer.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,11 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="../refcomp.css"/>
+
+
+
+ <gwt:HTMLPanel>
+ <span class="{style.greyText}">Footer</span>
+ </gwt:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,85 @@
+package org.chorem.bonzoms.skills.client.constants;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.uibinder.client.UiTemplate;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.RootPanel;
+import org.chorem.bonzoms.skills.client.AdminUsers;
+import org.chorem.bonzoms.skills.client.Login;
+import org.chorem.bonzoms.skills.client.MySkills;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class Header extends Composite {
+ @UiTemplate("Header.ui.xml")
+ interface MyUiBinder extends UiBinder<Panel, Header> {
+ }
+
+ private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
+
+ private static boolean stylesInjected = false;
+
+ public Header() {
+ initWidget(binder.createAndBindUi(this));
+ }
+
+ @UiHandler("buttonLogout")
+ void doClickLogout(ClickEvent event) {
+
+ RootPanel content = RootPanel.get("content");
+ RootPanel header = RootPanel.get("header");
+ RootPanel footer = RootPanel.get("footer");
+
+ content.clear();
+ header.clear();
+ footer.clear();
+
+ content.add(new Login());
+ }
+
+ @UiHandler("buttonMySkills")
+ void doClickMySkills(ClickEvent event) {
+
+
+ RootPanel content = RootPanel.get("content");
+
+ content.clear();
+
+ content.add(new MySkills());
+ }
+
+ @UiHandler("buttonAdminSkills")
+ void doClickAdminSkills(ClickEvent event) {
+
+ Window.alert("Not implemented yet");
+ }
+
+ @UiHandler("buttonAdminCati")
+ void doClickAdminCati(ClickEvent event) {
+
+ Window.alert("Not implemented yet");
+ }
+
+ @UiHandler("buttonAdminServices")
+ void doClickAdminServices(ClickEvent event) {
+
+ Window.alert("Not implemented yet");
+ }
+
+ @UiHandler("buttonAdminUsers")
+ void doClickAdminUsers(ClickEvent event) {
+
+ RootPanel content = RootPanel.get("content");
+
+ content.clear();
+
+ content.add(new AdminUsers());
+ }
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.ui.xml
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.ui.xml (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/constants/Header.ui.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,22 @@
+<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
+ xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
+
+ <ui:style src="../refcomp.css"/>
+
+ <gwt:HTMLPanel>
+ <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
+ <gwt:Button ui:field="buttonLogout" text="Logout"
+ styleName="{style.loginButton}"/>
+ <gwt:Button ui:field="buttonMySkills" text="My Skills"
+ styleName="{style.loginButton}"/>
+ <gwt:Button ui:field="buttonAdminSkills" text="Admin. Skills"
+ styleName="{style.loginButton}"/>
+ <gwt:Button ui:field="buttonAdminCati" text="Admin. Cati"
+ styleName="{style.loginButton}"/>
+ <gwt:Button ui:field="buttonAdminServices" text="Admin. Services"
+ styleName="{style.loginButton}"/>
+ <gwt:Button ui:field="buttonAdminUsers" text="Admin. Users"
+ styleName="{style.loginButton}"/>
+ </gwt:HorizontalPanel>
+ </gwt:HTMLPanel>
+</ui:UiBinder>
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Level.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,22 @@
+package org.chorem.bonzoms.skills.client.services;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public enum Level {
+ HELP("I need help"),
+ ALONE("I can be alone"),
+ CANHELP("I can help"),
+ CANFORM("I can teach others");
+
+ private final String label;
+
+ Level(String label){
+ this.label=label;
+ }
+
+ public String getLabel(){
+ return label;
+ }
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginService.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,15 @@
+package org.chorem.bonzoms.skills.client.services;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+@RemoteServiceRelativePath("login")
+public interface LoginService extends RemoteService {
+
+ Boolean login(String login, String password);
+}
+
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/LoginServiceAsync.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,12 @@
+package org.chorem.bonzoms.skills.client.services;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public interface LoginServiceAsync {
+ void login(String login, String password, AsyncCallback<Boolean> callback);
+}
+
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchService.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,15 @@
+package org.chorem.bonzoms.skills.client.services;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+@RemoteServiceRelativePath("search")
+public interface SearchService extends RemoteService {
+
+ List<Skill> search(String searchSentence);
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/SearchServiceAsync.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,12 @@
+package org.chorem.bonzoms.skills.client.services;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public interface SearchServiceAsync {
+ void search(String searchSentence, AsyncCallback<List<Skill>> callback);
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/Skill.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,77 @@
+package org.chorem.bonzoms.skills.client.services;
+
+import java.io.Serializable;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class Skill implements Serializable {
+
+ public Skill(){}
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getLevel() {
+ return level;
+ }
+
+ public void setLevel(String level) {
+ this.level = level;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ public String getLinkedSkill() {
+ return linkedSkill;
+ }
+
+ public void setLinkedSkill(String linkedSkill) {
+ this.linkedSkill = linkedSkill;
+ }
+
+ public String getRight() {
+ return right;
+ }
+
+ public void setRight(String right) {
+ this.right = right;
+ }
+
+ protected String name;
+
+ public String getSkill() {
+ return skill;
+ }
+
+ public void setSkill(String skill) {
+ this.skill = skill;
+ }
+
+ protected String skill;
+ protected String level;
+ protected String comment;
+ protected String linkedSkill;
+ protected String right;
+
+ public Skill(String name, String skill, String level, String comment, String linkedSkill, String right){
+ this.skill=skill;
+ this.name=name;
+ this.level=level;
+ this.comment=comment;
+ this.linkedSkill=linkedSkill;
+ this.right=right;
+ }
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserService.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,13 @@
+package org.chorem.bonzoms.skills.client.services;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import org.chorem.bonzoms.skills.entities.User;
+
+/**
+ * User: couteau
+ * Date: 5 nov. 2010
+ */
+public interface UserService extends RemoteService {
+
+ User getUser();
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/client/services/UserServiceAsync.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,14 @@
+package org.chorem.bonzoms.skills.client.services;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import org.chorem.bonzoms.skills.entities.User;
+
+/**
+ * User: couteau
+ * Date: 5 nov. 2010
+ */
+public interface UserServiceAsync {
+
+ void getUser(AsyncCallback<User> user);
+
+}
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/LoginServiceImpl.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,20 @@
+package org.chorem.bonzoms.skills.server;
+
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+import org.chorem.bonzoms.skills.client.services.LoginService;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public class LoginServiceImpl extends RemoteServiceServlet implements
+ LoginService {
+
+ public Boolean login(String login, String password) {
+ if (login.equals("admin") && password.equals("admin"))
+ return true;
+ else
+ return false;
+ }
+}
+
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/SearchServiceImpl.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,29 @@
+package org.chorem.bonzoms.skills.server;
+
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+import org.chorem.bonzoms.skills.client.services.Level;
+import org.chorem.bonzoms.skills.client.services.SearchService;
+import org.chorem.bonzoms.skills.client.services.Skill;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public class SearchServiceImpl extends RemoteServiceServlet implements
+ SearchService {
+
+ List<Skill> searchResults;
+
+ public List<Skill> search(String searchSentence) {
+
+ searchResults = new ArrayList<Skill>();
+
+ searchResults.add(new Skill("Hervé Richard", "Java", Level.CANFORM.getLabel(), "Enfin pas trop quand même", "R", "CIAM"));
+
+ return searchResults;
+ }
+
+
+}
\ No newline at end of file
Added: refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java
===================================================================
--- refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java (rev 0)
+++ refComp/skills-client/src/main/java/org/chorem/bonzoms/skills/server/UserServiceImpl.java 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,22 @@
+package org.chorem.bonzoms.skills.server;
+
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+import org.chorem.bonzoms.skills.client.services.UserService;
+import org.chorem.bonzoms.skills.entities.User;
+import org.chorem.bonzoms.skills.entities.UserImpl;
+
+/**
+ * User: couteau
+ * Date: 5 nov. 2010
+ */
+public class UserServiceImpl extends RemoteServiceServlet implements UserService{
+
+ public User getUser(){
+ User testUser = new UserImpl();
+
+ testUser.setNom("Couteau");
+ testUser.setPrenom("Jean");
+
+ return testUser;
+ }
+}
Added: refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/client/refcomp.css
===================================================================
--- refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/client/refcomp.css (rev 0)
+++ refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/client/refcomp.css 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,36 @@
+.greyText {
+ font-family: "Lucida Grande", Arial, Sans-serif;
+ color: #778899;
+ font-size: 11px;
+ text-align: left;
+}
+
+.loginButton {
+ border: 1px solid #3399DD;
+ color: #FFFFFF;
+ background: #3322DD;
+ font-size: 11px;
+ font-weight: bold;
+ margin: 0 5px 0 0;
+ padding: 4px 10px 5px;
+ text-shadow: 0 -1px 0 #3399DD;
+}
+
+.box {
+ border: 1px solid #AACCEE;
+ display: block;
+ font-size: 12px;
+ margin: 0 0 5px;
+ padding: 3px;
+ width: 203px;
+}
+
+.background {
+ background-color: #DDEEF6;
+ border: 1px none transparent;
+ color: #778899;
+ font-size: 11px;
+ margin-left: -8px;
+ margin-top: 5px;
+ padding: 6px;
+}
Added: refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/public/RefComp.html
===================================================================
--- refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/public/RefComp.html (rev 0)
+++ refComp/skills-client/src/main/resources/org/chorem/bonzoms/skills/client/public/RefComp.html 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+
+ <title>RefComp - Search</title>
+
+ <meta name='gwt:module' content='org.chorem.bonzoms.skills.client.SearchResults'>
+
+ <!-- -->
+ <!-- This script loads your compiled module. -->
+ <!-- If you add any GWT meta tags, they must -->
+ <!-- be added before this line. -->
+ <!-- -->
+ <script type="text/javascript" language="javascript" src="org.chorem.bonzoms.skills.client.RefComp.nocache.js"></script>
+</head>
+<body>
+
+<div id="header"></div>
+
+<div id="content"></div>
+
+<div id="footer"></div>
+
+
+ <!-- OPTIONAL: include this if you want history support -->
+ <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+</body>
+</html>
\ No newline at end of file
Property changes on: refComp/skills-client/src/main/webapp
___________________________________________________________________
Added: svn:ignore
+ org.chorem.*
Deleted: refComp/skills-client/src/main/webapp/WEB-INF/web.xml
===================================================================
--- refComp/client/src/main/webapp/WEB-INF/web.xml 2010-11-04 08:37:47 UTC (rev 7)
+++ refComp/skills-client/src/main/webapp/WEB-INF/web.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -1,32 +0,0 @@
-<!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
-
-<web-app>
- <display-name>GWT-Maven-Archetype</display-name>
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
-
- <!--servlet>
- <servlet-name>SkillService</servlet-name>
- <servlet-class>fr.inra.refcomp.service.SkillServiceImpl
- </servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>SkillService</servlet-name>
- <url-pattern>/fr.inra.refcomp.RefComp/skillService</url-pattern>
- </servlet-mapping-->
-
- <servlet>
- <servlet-name>LoginService</servlet-name>
- <servlet-class>fr.inra.refcomp.service.LoginServiceImpl
- </servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>LoginService</servlet-name>
- <url-pattern>/fr.inra.refcomp.RefComp/login</url-pattern>
- </servlet-mapping>
-
-</web-app>
Copied: refComp/skills-client/src/main/webapp/WEB-INF/web.xml (from rev 14, refComp/client/src/main/webapp/WEB-INF/web.xml)
===================================================================
--- refComp/skills-client/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ refComp/skills-client/src/main/webapp/WEB-INF/web.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,32 @@
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+
+<web-app>
+ <display-name>GWT-Maven-Archetype</display-name>
+
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ </welcome-file-list>
+
+ <servlet>
+ <servlet-name>LoginService</servlet-name>
+ <servlet-class>org.chorem.bonzoms.skills.server.LoginServiceImpl
+ </servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>LoginService</servlet-name>
+ <url-pattern>/org.chorem.bonzoms.skills.client.RefComp/login</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>SearchService</servlet-name>
+ <servlet-class>org.chorem.bonzoms.skills.server.SearchServiceImpl
+ </servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>SearchService</servlet-name>
+ <url-pattern>/org.chorem.bonzoms.skills.client.RefComp/search</url-pattern>
+ </servlet-mapping>
+
+</web-app>
Deleted: refComp/skills-client/src/main/webapp/index.html
===================================================================
--- refComp/client/src/main/webapp/index.html 2010-11-04 08:37:47 UTC (rev 7)
+++ refComp/skills-client/src/main/webapp/index.html 2010-11-05 16:06:09 UTC (rev 17)
@@ -1,8 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<!-- forward to the GWT Example Application -->
-<meta http-equiv="REFRESH"
- content="0;url=fr.inra.refcomp.Login/Login.html">
-</HEAD>
-</HTML>
\ No newline at end of file
Copied: refComp/skills-client/src/main/webapp/index.html (from rev 14, refComp/client/src/main/webapp/index.html)
===================================================================
--- refComp/skills-client/src/main/webapp/index.html (rev 0)
+++ refComp/skills-client/src/main/webapp/index.html 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<!-- forward to the GWT Example Application -->
+<meta http-equiv="REFRESH"
+ content="0;url=org.chorem.bonzoms.skills.client.RefComp/RefComp.html">
+</HEAD>
+</HTML>
\ No newline at end of file
Modified: refComp/skills-entities/pom.xml
===================================================================
--- refComp/entities/pom.xml 2010-11-05 09:05:34 UTC (rev 12)
+++ refComp/skills-entities/pom.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -10,20 +10,20 @@
<!-- ************************************************************* -->
<parent>
- <groupId>fr.inra</groupId>
- <artifactId>refcomp</artifactId>
+ <groupId>org.chorem.bonzoms</groupId>
+ <artifactId>skills</artifactId>
<version>0.1-SNAPSHOT</version>
</parent>
- <groupId>fr.inra.refcomp</groupId>
- <artifactId>entities</artifactId>
+ <groupId>org.chorem.bonzoms.skills</groupId>
+ <artifactId>skills-entities</artifactId>
<!-- ************************************************************* -->
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
<name>${project.artifactId}</name>
- <description>RefComp Client entities module</description>
+ <description>Bonzoms - Skills entities module</description>
<dependencies>
<dependency>
@@ -59,12 +59,12 @@
<input>classpath:model:/:wikitty.objectmodel
</input>
</inputs>
- <fullPackagePath>fr.inra.refcomp</fullPackagePath>
- <defaultPackage>fr.inra.refcomp</defaultPackage>
+ <fullPackagePath>org.chorem.bonzoms.skills.client</fullPackagePath>
+ <defaultPackage>org.chorem.bonzoms.skills.client</defaultPackage>
<extractedPackages>
- fr.inra.refcomp.entities,org.nuiton.wikitty
+ org.chorem.bonzoms.skills.entities,org.nuiton.wikitty
</extractedPackages>
- <generatedPackages>fr.inra.refcomp.entities
+ <generatedPackages>org.chorem.bonzoms.skills.entities
</generatedPackages>
<templates>
org.nuiton.wikitty.generator.WikittyMetaGenerator
@@ -77,6 +77,19 @@
</executions>
</plugin>
+ <!--always generate the -source jar, needed for gwt-->
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
</plugins>
</build>
Added: refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml
===================================================================
--- refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml (rev 0)
+++ refComp/skills-entities/src/main/java/org/chorem/bonzoms/skills/Entities.gwt.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,9 @@
+<!DOCTYPE module PUBLIC "//gwt-module/"
+ "http://google-web-toolkit.googlecode.com/svn/tags/1.6.2/distro-source/core/…">
+<module>
+
+ <!-- Inherit the core Web Toolkit stuff. -->
+ <inherits name='com.google.gwt.user.User'/>
+
+ <source path="entities"/>
+</module>
\ No newline at end of file
Modified: refComp/skills-entities/src/main/xmi/UseCaseINRA-RefComp.zargo
===================================================================
(Binary files differ)
Property changes on: refComp/skills-services
___________________________________________________________________
Added: svn:ignore
+ *.iml
*.ipr
target
Added: refComp/skills-services/pom.xml
===================================================================
--- refComp/skills-services/pom.xml (rev 0)
+++ refComp/skills-services/pom.xml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.chorem.bonzoms</groupId>
+ <artifactId>skills</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.chorem.bonzoms.skills</groupId>
+ <artifactId>skills-services</artifactId>
+
+ <dependencies>
+
+ <!-- GWT -->
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+ <description>Bonzoms - Skills services module</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+
+ <build>
+
+ <plugins>
+
+ <!-- Use gwt-maven-plugin resources goal to bundle sources for client
+ module -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>resources</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
Added: refComp/skills-services/skills-services.iml
===================================================================
--- refComp/skills-services/skills-services.iml (rev 0)
+++ refComp/skills-services/skills-services.iml 2010-11-05 16:06:09 UTC (rev 17)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <output-test url="file://$MODULE_DIR$/target/test-classes" />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/.svn" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/target/.svn" />
+ <excludeFolder url="file://$MODULE_DIR$/target/classes" />
+ <excludeFolder url="file://$MODULE_DIR$/target/extra" />
+ <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver" />
+ <excludeFolder url="file://$MODULE_DIR$/target/services-0.1-SNAPSHOT" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" scope="PROVIDED" name="Maven: com.google.gwt:gwt-user:2.0.3" level="project" />
+ </component>
+</module>
+
1
0
Author: tchemit
Date: 2010-11-05 13:49:52 +0100 (Fri, 05 Nov 2010)
New Revision: 16
Url: http://chorem.org/repositories/revision/incubator/16
Log:
test commit
Modified:
refComp/pom.xml
Modified: refComp/pom.xml
===================================================================
--- refComp/pom.xml 2010-11-05 10:29:13 UTC (rev 15)
+++ refComp/pom.xml 2010-11-05 12:49:52 UTC (rev 16)
@@ -119,8 +119,7 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <!-- Don't use < 1.1 or > 1.2.129 without testing migration
- with old datas -->
+ <!-- Don't use < 1.1 or > 1.2.129 without testing migration with old datas -->
<version>1.2.127</version>
<scope>runtime</scope>
</dependency>
1
0
Author: tchemit
Date: 2010-11-05 13:45:44 +0100 (Fri, 05 Nov 2010)
New Revision: 432
Url: http://nuiton.org/repositories/revision/sandbox/432
Log:
test commit :)
Modified:
sandbox-test/trunk/pom.xml
Modified: sandbox-test/trunk/pom.xml
===================================================================
--- sandbox-test/trunk/pom.xml 2010-11-03 12:05:07 UTC (rev 431)
+++ sandbox-test/trunk/pom.xml 2010-11-05 12:45:44 UTC (rev 432)
@@ -71,5 +71,4 @@
<developerConnection>scm:svn:http://svn.nuiton.org/svn/sandbox/sandbox-test/trunk</developerConnection>
<url>http://www.nuiton.org/repositories/browse/sandbox-test/trunk</url>
</scm>
-
</project>
1
0
Author: jcouteau
Date: 2010-11-05 11:29:13 +0100 (Fri, 05 Nov 2010)
New Revision: 15
Url: http://chorem.org/repositories/revision/incubator/15
Log:
Update clean plugin config
Modified:
refComp/pom.xml
Modified: refComp/pom.xml
===================================================================
--- refComp/pom.xml 2010-11-05 10:27:59 UTC (rev 14)
+++ refComp/pom.xml 2010-11-05 10:29:13 UTC (rev 15)
@@ -167,9 +167,14 @@
<configuration>
<filesets>
<fileset>
- <!--TODO jcouteau 04/11/2010 reconfigure this now that everything is in src/main/webapp-->
- <directory>war</directory>
+ <directory>src/main/webapp/WEB-INF/lib</directory>
</fileset>
+ <fileset>
+ <directory>src/main/webapp/WEB-INF/classes</directory>
+ </fileset>
+ <fileset>
+ <directory>src/main/webapp/fr.inra.refcomp.RefComp</directory>
+ </fileset>
</filesets>
</configuration>
</plugin>
1
0
05 Nov '10
Author: jcouteau
Date: 2010-11-05 11:27:59 +0100 (Fri, 05 Nov 2010)
New Revision: 14
Url: http://chorem.org/repositories/revision/incubator/14
Log:
Improve css management
Added:
refComp/client/src/main/java/fr/inra/refcomp/client/services/
refComp/client/src/main/java/fr/inra/refcomp/client/services/Level.java
refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginService.java
refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginServiceAsync.java
refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchService.java
refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchServiceAsync.java
refComp/client/src/main/java/fr/inra/refcomp/client/services/Skill.java
refComp/client/src/main/java/fr/inra/refcomp/server/
refComp/client/src/main/java/fr/inra/refcomp/server/LoginServiceImpl.java
refComp/client/src/main/java/fr/inra/refcomp/server/SearchServiceImpl.java
refComp/client/src/main/resources/fr/inra/refcomp/client/
refComp/client/src/main/resources/fr/inra/refcomp/client/refcomp.css
Removed:
refComp/client/src/main/java/fr/inra/refcomp/client/resources/
refComp/client/src/main/java/fr/inra/refcomp/client/service/
refComp/client/src/main/resources/fr/inra/refcomp/public/Application.css
refComp/client/src/main/resources/fr/inra/refcomp/public/Search.html
refComp/client/src/main/resources/fr/inra/refcomp/public/SearchResults.html
refComp/client/src/main/resources/fr/inra/refcomp/resources/
Modified:
refComp/client/pom.xml
refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml
refComp/client/src/main/java/fr/inra/refcomp/client/Login.java
refComp/client/src/main/java/fr/inra/refcomp/client/Login.ui.xml
refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java
refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml
refComp/client/src/main/java/fr/inra/refcomp/client/Search.java
refComp/client/src/main/java/fr/inra/refcomp/client/Search.ui.xml
refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java
refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.ui.xml
refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java
refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml
refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.java
refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.ui.xml
refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java
refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.ui.xml
refComp/client/src/main/webapp/WEB-INF/web.xml
refComp/client/src/main/webapp/index.html
Modified: refComp/client/pom.xml
===================================================================
--- refComp/client/pom.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/pom.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -31,12 +31,6 @@
<artifactId>gwt-servlet</artifactId>
</dependency>
- <dependency>
- <groupId>fr.inra.refcomp</groupId>
- <artifactId>services</artifactId>
- <version>0.1-SNAPSHOT</version>
- </dependency>
-
</dependencies>
<!-- ************************************************************* -->
@@ -56,6 +50,15 @@
<outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
+ <!--resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.css</include>
+ </includes>
+ </resource>
+ </resources-->
+
<plugins>
<plugin>
Modified: refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/RefComp.gwt.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -12,10 +12,10 @@
<!-- Specify the app entry point class. -->
<entry-point class='fr.inra.refcomp.client.RefComp'/>
- <!-- Specify the application specific style sheet. -->
- <stylesheet src='Application.css'/>
-
<source path="client"/>
<source path="service"/>
+ <public path="public"/>
+ <public path="client"/>
+
</module>
\ No newline at end of file
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/Login.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/Login.java 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/Login.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,7 +1,6 @@
package fr.inra.refcomp.client;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.StyleInjector;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.uibinder.client.UiBinder;
@@ -17,9 +16,8 @@
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import fr.inra.refcomp.client.constants.Header;
-import fr.inra.refcomp.client.resources.Style;
-import fr.inra.refcomp.client.service.LoginService;
-import fr.inra.refcomp.client.service.LoginServiceAsync;
+import fr.inra.refcomp.client.services.LoginService;
+import fr.inra.refcomp.client.services.LoginServiceAsync;
/**
* User: couteau
@@ -36,20 +34,7 @@
private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
- @UiField(provided = true)
- final Style res;
-
- private static boolean stylesInjected = false;
-
public Login() {
- this.res = GWT.create(Style.class);
-
- // Inject only once.
- if (!stylesInjected) {
- StyleInjector.injectStylesheet(res.style().getText());
- stylesInjected = true;
- }
-
initWidget(binder.createAndBindUi(this));
}
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/Login.ui.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/Login.ui.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/Login.ui.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,27 +1,27 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
- <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/>
+ <ui:style src="refcomp.css"/>
<gwt:HTMLPanel>
<div align="center">
- <gwt:VerticalPanel styleName="{res.style.background}">
- <gwt:Label text="Login" styleName="{res.style.greyText}"/>
+ <gwt:VerticalPanel styleName="{style.background}">
+ <gwt:Label text="Login" styleName="{style.greyText}"/>
<gwt:TextBox ui:field="loginBox"
- styleName="{res.style.box}"/>
- <gwt:Label text="Password" styleName="{res.style.greyText}"/>
- <gwt:PasswordTextBox ui:field="passwordBox" styleName="{res.style.box}"/>
+ styleName="{style.box}"/>
+ <gwt:Label text="Password" styleName="{style.greyText}"/>
+ <gwt:PasswordTextBox ui:field="passwordBox" styleName="{style.box}"/>
<gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
<gwt:Button ui:field="buttonSubmit" text="Submit"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
<gwt:CheckBox ui:field="myCheckBox"/>
<gwt:Label ui:field="myLabel" text="Remember me"
- styleName="{res.style.greyText}"/>
+ styleName="{style.greyText}"/>
</gwt:HorizontalPanel>
<gwt:Label ui:field="completionLabel1"
- styleName="{res.style.greyText}"/>
+ styleName="{style.greyText}"/>
<gwt:Label ui:field="completionLabel2"
- styleName="{res.style.greyText}"/>
+ styleName="{style.greyText}"/>
</gwt:VerticalPanel>
</div>
</gwt:HTMLPanel>
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,7 +1,6 @@
package fr.inra.refcomp.client;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.StyleInjector;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
@@ -14,10 +13,9 @@
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
-import fr.inra.refcomp.client.resources.Style;
-import fr.inra.refcomp.client.service.SearchServiceAsync;
-import fr.inra.refcomp.client.service.Skill;
-import fr.inra.refcomp.client.service.SearchService;
+import fr.inra.refcomp.client.services.Skill;
+import fr.inra.refcomp.client.services.SearchServiceAsync;
+import fr.inra.refcomp.client.services.SearchService;
import java.util.List;
/**
@@ -35,27 +33,15 @@
private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
- @UiField(provided = true)
- final Style res;
-
- private static boolean stylesInjected = false;
-
@UiField
VerticalPanel skillsList;
public MySkills() {
- this.res = GWT.create(Style.class);
- // Inject only once.
- if (!stylesInjected) {
- StyleInjector.injectStylesheet(res.style().getText());
- stylesInjected = true;
- }
-
initWidget(binder.createAndBindUi(this));
//Use here the searchService that return a skill. Replace this with
- //a real service.
+ //a real server.
searchService.search("toto",
new AsyncCallback<List<Skill>>() {
@Override
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/MySkills.ui.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,17 +1,17 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
- <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/>
+ <ui:style src="refcomp.css"/>
<gwt:HTMLPanel>
<div align="center">
- <gwt:VerticalPanel styleName="{res.style.background}">
+ <gwt:VerticalPanel styleName="{style.background}">
<gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
<gwt:Label text="My Skills : "
- styleName="{res.style.greyText}"/>
+ styleName="{style.greyText}"/>
<gwt:Label ui:field="searchedLabel" text="Hervé Richard"
- styleName="{res.style.greyText}"/>
+ styleName="{style.greyText}"/>
</gwt:HorizontalPanel>
<gwt:VerticalPanel ui:field="skillsList"/>
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/Search.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/Search.java 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/Search.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,7 +1,6 @@
package fr.inra.refcomp.client;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.StyleInjector;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
@@ -13,10 +12,9 @@
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
-import fr.inra.refcomp.client.resources.Style;
-import fr.inra.refcomp.client.service.SearchService;
-import fr.inra.refcomp.client.service.SearchServiceAsync;
-import fr.inra.refcomp.client.service.Skill;
+import fr.inra.refcomp.client.services.SearchService;
+import fr.inra.refcomp.client.services.SearchServiceAsync;
+import fr.inra.refcomp.client.services.Skill;
import java.util.List;
/**
@@ -34,23 +32,10 @@
private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
- @UiField(provided = true)
- final Style res;
-
- private static boolean stylesInjected = false;
-
@UiField
TextBox searchBox;
public Search() {
- this.res = GWT.create(Style.class);
-
- // Inject only once.
- if (!stylesInjected) {
- StyleInjector.injectStylesheet(res.style().getText());
- stylesInjected = true;
- }
-
initWidget(binder.createAndBindUi(this));
}
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/Search.ui.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/Search.ui.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/Search.ui.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,17 +1,17 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
- <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/>
+ <ui:style src="refcomp.css"/>
<gwt:HTMLPanel>
<div align="center">
- <gwt:VerticalPanel styleName="{res.style.background}">
- <gwt:Label text="RefComp Search" styleName="{res.style.greyText}"/>
+ <gwt:VerticalPanel styleName="{style.background}">
+ <gwt:Label text="RefComp Search" styleName="{style.greyText}"/>
<gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
<gwt:TextBox ui:field="searchBox"
- styleName="{res.style.box}"/>
+ styleName="{style.box}"/>
<gwt:Button ui:field="buttonSearch" text="Search"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
</gwt:HorizontalPanel>
</gwt:VerticalPanel>
</div>
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,15 +1,13 @@
package fr.inra.refcomp.client;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.StyleInjector;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiTemplate;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.Panel;
-import fr.inra.refcomp.client.resources.Style;
-import fr.inra.refcomp.client.service.Skill;
+import fr.inra.refcomp.client.services.Skill;
import java.util.List;
/**
@@ -24,23 +22,10 @@
private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
- @UiField(provided = true)
- final Style res;
-
- private static boolean stylesInjected = false;
-
@UiField
Grid resultsGrid;
public SearchResults() {
- this.res = GWT.create(Style.class);
-
- // Inject only once.
- if (!stylesInjected) {
- StyleInjector.injectStylesheet(res.style().getText());
- stylesInjected = true;
- }
-
initWidget(binder.createAndBindUi(this));
}
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.ui.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.ui.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/SearchResults.ui.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,22 +1,22 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
- <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/>
+ <ui:style src="refcomp.css"/>
<gwt:HTMLPanel>
<div id="facets">
- <gwt:VerticalPanel styleName="{res.style.background}">
+ <gwt:VerticalPanel styleName="{style.background}">
</gwt:VerticalPanel>
</div>
<div align="center">
- <gwt:VerticalPanel styleName="{res.style.background}">
+ <gwt:VerticalPanel styleName="{style.background}">
<gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
<gwt:Label text="Search : "
- styleName="{res.style.greyText}"/>
+ styleName="{style.greyText}"/>
<gwt:Label ui:field="searchedLabel" text="Toto"
- styleName="{res.style.greyText}"/>
+ styleName="{style.greyText}"/>
</gwt:HorizontalPanel>
<gwt:Grid ui:field="resultsGrid"/>
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,7 +1,6 @@
package fr.inra.refcomp.client;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.StyleInjector;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiTemplate;
@@ -10,9 +9,8 @@
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.TextBox;
-import fr.inra.refcomp.client.resources.Style;
-import fr.inra.refcomp.client.service.Level;
-import fr.inra.refcomp.client.service.Skill;
+import fr.inra.refcomp.client.services.Level;
+import fr.inra.refcomp.client.services.Skill;
import java.util.ArrayList;
import java.util.List;
@@ -30,11 +28,6 @@
private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
- @UiField(provided = true)
- final Style res;
-
- private static boolean stylesInjected = false;
-
private Skill editedSkill;
@UiField
@@ -53,29 +46,16 @@
Label rightLabel;
public SkillEditionRow() {
- this.res = GWT.create(Style.class);
-
init();
}
public SkillEditionRow(Skill skill) {
- this.res = GWT.create(Style.class);
-
init();
-
setSkill(skill);
}
protected void init(){
-
- // Inject only once.
- if (!stylesInjected) {
- StyleInjector.injectStylesheet(res.style().getText());
- stylesInjected = true;
- }
-
initWidget(binder.createAndBindUi(this));
-
populateLevelList();
}
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/SkillEditionRow.ui.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,12 +1,12 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
- <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/>
+ <ui:style src="refcomp.css"/>
<gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
- <gwt:Label ui:field="skill" styleName="{res.style.greyText}"/>
- <gwt:Label text="Linked skill : " styleName="{res.style.greyText}"/>
- <gwt:Label ui:field="linkedSkill" styleName="{res.style.greyText}"/>
+ <gwt:Label ui:field="skill" styleName="{style.greyText}"/>
+ <gwt:Label text="Linked skill : " styleName="{style.greyText}"/>
+ <gwt:Label ui:field="linkedSkill" styleName="{style.greyText}"/>
<gwt:Button ui:field="editLinkedSkill" text="Edit"/>
<gwt:Label text="Level : "/>
<gwt:ListBox ui:field="levelListBox" visibleItemCount="1"/>
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.java 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -7,7 +7,6 @@
import com.google.gwt.uibinder.client.UiTemplate;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Panel;
-import fr.inra.refcomp.client.resources.Style;
/**
* User: couteau
@@ -20,20 +19,7 @@
private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
- @UiField(provided = true)
- final Style res;
-
- private static boolean stylesInjected = false;
-
public Footer() {
- this.res = GWT.create(Style.class);
-
- // Inject only once.
- if (!stylesInjected) {
- StyleInjector.injectStylesheet(res.style().getText());
- stylesInjected = true;
- }
-
initWidget(binder.createAndBindUi(this));
}
}
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.ui.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.ui.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/constants/Footer.ui.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,11 +1,11 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
- <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/>
+ <ui:style src="../refcomp.css"/>
+
+
<gwt:HTMLPanel>
- <gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
- <gwt:Label text="Footer" styleName="{res.style.greyText}"/>
- </gwt:HorizontalPanel>
+ <span class="{style.greyText}">Footer</span>
</gwt:HTMLPanel>
</ui:UiBinder>
\ No newline at end of file
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -13,7 +13,6 @@
import com.google.gwt.user.client.ui.RootPanel;
import fr.inra.refcomp.client.Login;
import fr.inra.refcomp.client.MySkills;
-import fr.inra.refcomp.client.resources.Style;
/**
* User: couteau
@@ -26,20 +25,9 @@
private static final MyUiBinder binder = GWT.create(MyUiBinder.class);
- @UiField(provided = true)
- final Style res;
-
private static boolean stylesInjected = false;
public Header() {
- this.res = GWT.create(Style.class);
-
- // Inject only once.
- if (!stylesInjected) {
- StyleInjector.injectStylesheet(res.style().getText());
- stylesInjected = true;
- }
-
initWidget(binder.createAndBindUi(this));
}
Modified: refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.ui.xml
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.ui.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/constants/Header.ui.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,22 +1,22 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
- <ui:with field='res' type='fr.inra.refcomp.client.resources.Style'/>
+ <ui:style src="../refcomp.css"/>
<gwt:HTMLPanel>
<gwt:HorizontalPanel verticalAlignment="ALIGN_MIDDLE">
<gwt:Button ui:field="buttonLogout" text="Logout"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
<gwt:Button ui:field="buttonMySkills" text="My Skills"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
<gwt:Button ui:field="buttonAdminSkills" text="Admin. Skills"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
<gwt:Button ui:field="buttonAdminCati" text="Admin. Cati"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
<gwt:Button ui:field="buttonAdminServices" text="Admin. Services"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
<gwt:Button ui:field="buttonAdminUsers" text="Admin. Users"
- styleName="{res.style.loginButton}"/>
+ styleName="{style.loginButton}"/>
</gwt:HorizontalPanel>
</gwt:HTMLPanel>
</ui:UiBinder>
\ No newline at end of file
Added: refComp/client/src/main/java/fr/inra/refcomp/client/services/Level.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/services/Level.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/services/Level.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,22 @@
+package fr.inra.refcomp.client.services;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public enum Level {
+ HELP("I need help"),
+ ALONE("I can be alone"),
+ CANHELP("I can help"),
+ CANFORM("I can teach others");
+
+ private final String label;
+
+ Level(String label){
+ this.label=label;
+ }
+
+ public String getLabel(){
+ return label;
+ }
+}
Added: refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginService.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginService.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginService.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,15 @@
+package fr.inra.refcomp.client.services;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+@RemoteServiceRelativePath("login")
+public interface LoginService extends RemoteService {
+
+ Boolean login(String login, String password);
+}
+
Added: refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginServiceAsync.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginServiceAsync.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/services/LoginServiceAsync.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,12 @@
+package fr.inra.refcomp.client.services;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public interface LoginServiceAsync {
+ void login(String login, String password, AsyncCallback<Boolean> callback);
+}
+
Added: refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchService.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchService.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchService.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,15 @@
+package fr.inra.refcomp.client.services;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+@RemoteServiceRelativePath("search")
+public interface SearchService extends RemoteService {
+
+ List<Skill> search(String searchSentence);
+}
Added: refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchServiceAsync.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchServiceAsync.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/services/SearchServiceAsync.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,12 @@
+package fr.inra.refcomp.client.services;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public interface SearchServiceAsync {
+ void search(String searchSentence, AsyncCallback<List<Skill>> callback);
+}
Added: refComp/client/src/main/java/fr/inra/refcomp/client/services/Skill.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/client/services/Skill.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/client/services/Skill.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,77 @@
+package fr.inra.refcomp.client.services;
+
+import java.io.Serializable;
+
+/**
+ * User: couteau
+ * Date: 3 nov. 2010
+ */
+public class Skill implements Serializable {
+
+ public Skill(){}
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getLevel() {
+ return level;
+ }
+
+ public void setLevel(String level) {
+ this.level = level;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ public String getLinkedSkill() {
+ return linkedSkill;
+ }
+
+ public void setLinkedSkill(String linkedSkill) {
+ this.linkedSkill = linkedSkill;
+ }
+
+ public String getRight() {
+ return right;
+ }
+
+ public void setRight(String right) {
+ this.right = right;
+ }
+
+ protected String name;
+
+ public String getSkill() {
+ return skill;
+ }
+
+ public void setSkill(String skill) {
+ this.skill = skill;
+ }
+
+ protected String skill;
+ protected String level;
+ protected String comment;
+ protected String linkedSkill;
+ protected String right;
+
+ public Skill(String name, String skill, String level, String comment, String linkedSkill, String right){
+ this.skill=skill;
+ this.name=name;
+ this.level=level;
+ this.comment=comment;
+ this.linkedSkill=linkedSkill;
+ this.right=right;
+ }
+}
Added: refComp/client/src/main/java/fr/inra/refcomp/server/LoginServiceImpl.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/server/LoginServiceImpl.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/server/LoginServiceImpl.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,20 @@
+package fr.inra.refcomp.server;
+
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+import fr.inra.refcomp.client.services.LoginService;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public class LoginServiceImpl extends RemoteServiceServlet implements
+ LoginService {
+
+ public Boolean login(String login, String password) {
+ if (login.equals("admin") && password.equals("admin"))
+ return true;
+ else
+ return false;
+ }
+}
+
Added: refComp/client/src/main/java/fr/inra/refcomp/server/SearchServiceImpl.java
===================================================================
--- refComp/client/src/main/java/fr/inra/refcomp/server/SearchServiceImpl.java (rev 0)
+++ refComp/client/src/main/java/fr/inra/refcomp/server/SearchServiceImpl.java 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,29 @@
+package fr.inra.refcomp.server;
+
+import com.google.gwt.user.server.rpc.RemoteServiceServlet;
+import fr.inra.refcomp.client.services.Level;
+import fr.inra.refcomp.client.services.SearchService;
+import fr.inra.refcomp.client.services.Skill;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * User: couteau
+ * Date: 4 nov. 2010
+ */
+public class SearchServiceImpl extends RemoteServiceServlet implements
+ SearchService {
+
+ List<Skill> searchResults;
+
+ public List<Skill> search(String searchSentence) {
+
+ searchResults = new ArrayList<Skill>();
+
+ searchResults.add(new Skill("Hervé Richard", "Java", Level.CANFORM.getLabel(), "Enfin pas trop quand même", "R", "CIAM"));
+
+ return searchResults;
+ }
+
+
+}
\ No newline at end of file
Added: refComp/client/src/main/resources/fr/inra/refcomp/client/refcomp.css
===================================================================
--- refComp/client/src/main/resources/fr/inra/refcomp/client/refcomp.css (rev 0)
+++ refComp/client/src/main/resources/fr/inra/refcomp/client/refcomp.css 2010-11-05 10:27:59 UTC (rev 14)
@@ -0,0 +1,36 @@
+.greyText {
+ font-family: "Lucida Grande", Arial, Sans-serif;
+ color: #778899;
+ font-size: 11px;
+ text-align: left;
+}
+
+.loginButton {
+ border: 1px solid #3399DD;
+ color: #FFFFFF;
+ background: #3322DD;
+ font-size: 11px;
+ font-weight: bold;
+ margin: 0 5px 0 0;
+ padding: 4px 10px 5px;
+ text-shadow: 0 -1px 0 #3399DD;
+}
+
+.box {
+ border: 1px solid #AACCEE;
+ display: block;
+ font-size: 12px;
+ margin: 0 0 5px;
+ padding: 3px;
+ width: 203px;
+}
+
+.background {
+ background-color: #DDEEF6;
+ border: 1px none transparent;
+ color: #778899;
+ font-size: 11px;
+ margin-left: -8px;
+ margin-top: 5px;
+ padding: 6px;
+}
Deleted: refComp/client/src/main/resources/fr/inra/refcomp/public/Application.css
===================================================================
--- refComp/client/src/main/resources/fr/inra/refcomp/public/Application.css 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/resources/fr/inra/refcomp/public/Application.css 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,14 +0,0 @@
-/** Add css rules here for your application. */
-
-button {
- display: block;
- font-size: 16pt
-}
-
-.widePanel {
- width: 100%
-}
-
-img {
- margin-top: 20px;
-}
\ No newline at end of file
Deleted: refComp/client/src/main/resources/fr/inra/refcomp/public/Search.html
===================================================================
--- refComp/client/src/main/resources/fr/inra/refcomp/public/Search.html 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/resources/fr/inra/refcomp/public/Search.html 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-
- <title>RefComp - Search</title>
-
- <meta name='gwt:module' content='fr.inra.refcomp.client.Search'>
-
- <!-- -->
- <!-- This script loads your compiled module. -->
- <!-- If you add any GWT meta tags, they must -->
- <!-- be added before this line. -->
- <!-- -->
- <script type="text/javascript" language="javascript" src="fr.inra.refcomp.Search.nocache.js"></script>
-</head>
-<body>
-<div id="header">
- <span id="Logout"></span>
- <span id="mySkills"></span>
- <span id="adminSkills"></span>
- <span id="adminCati"></span>
- <span id="adminServices"></span>
- <span id="adminUsers"></span>
-
-</div>
-
-<div id="content">
- <span id="searchLabel"></span>
- <span id="searchBox"></span>
- <span id="searchButton"></span>
-</div>
-
-<div id="footer"></div>
-
-
- <!-- OPTIONAL: include this if you want history support -->
- <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
-</body>
-</html>
\ No newline at end of file
Deleted: refComp/client/src/main/resources/fr/inra/refcomp/public/SearchResults.html
===================================================================
--- refComp/client/src/main/resources/fr/inra/refcomp/public/SearchResults.html 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/resources/fr/inra/refcomp/public/SearchResults.html 2010-11-05 10:27:59 UTC (rev 14)
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-
- <title>RefComp - Search</title>
-
- <meta name='gwt:module' content='fr.inra.refcomp.client.SearchResults'>
-
- <!-- -->
- <!-- This script loads your compiled module. -->
- <!-- If you add any GWT meta tags, they must -->
- <!-- be added before this line. -->
- <!-- -->
- <script type="text/javascript" language="javascript" src="fr.inra.refcomp.SearchResults.nocache.js"></script>
-</head>
-<body>
-<div id="header">
- <span id="Logout"></span>
- <span id="mySkills"></span>
- <span id="adminSkills"></span>
- <span id="adminCati"></span>
- <span id="adminServices"></span>
- <span id="adminUsers"></span>
-
-</div>
-
-<div id="facets"></div>
-
-<div id="content">
- <span id="searchLabel"></span>
- <span id="searchedText"></span>
- <div id="searchResults"></div>
-</div>
-
-<div id="footer"></div>
-
-
- <!-- OPTIONAL: include this if you want history support -->
- <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
-</body>
-</html>
\ No newline at end of file
Modified: refComp/client/src/main/webapp/WEB-INF/web.xml
===================================================================
--- refComp/client/src/main/webapp/WEB-INF/web.xml 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/webapp/WEB-INF/web.xml 2010-11-05 10:27:59 UTC (rev 14)
@@ -11,7 +11,7 @@
<servlet>
<servlet-name>LoginService</servlet-name>
- <servlet-class>fr.inra.refcomp.client.service.LoginServiceImpl
+ <servlet-class>fr.inra.refcomp.server.LoginServiceImpl
</servlet-class>
</servlet>
<servlet-mapping>
@@ -21,7 +21,7 @@
<servlet>
<servlet-name>SearchService</servlet-name>
- <servlet-class>fr.inra.refcomp.client.service.SearchServiceImpl
+ <servlet-class>fr.inra.refcomp.server.SearchServiceImpl
</servlet-class>
</servlet>
<servlet-mapping>
Modified: refComp/client/src/main/webapp/index.html
===================================================================
--- refComp/client/src/main/webapp/index.html 2010-11-05 09:05:49 UTC (rev 13)
+++ refComp/client/src/main/webapp/index.html 2010-11-05 10:27:59 UTC (rev 14)
@@ -3,6 +3,6 @@
<head>
<!-- forward to the GWT Example Application -->
<meta http-equiv="REFRESH"
- content="0;url=fr.inra.refcomp.Login/Login.html">
+ content="0;url=fr.inra.refcomp.RefComp/RefComp.html">
</HEAD>
</HTML>
\ No newline at end of file
1
0
Author: jcouteau
Date: 2010-11-05 10:05:49 +0100 (Fri, 05 Nov 2010)
New Revision: 13
Url: http://chorem.org/repositories/revision/incubator/13
Log:
Add entities module
Modified:
refComp/pom.xml
Modified: refComp/pom.xml
===================================================================
--- refComp/pom.xml 2010-11-05 09:05:34 UTC (rev 12)
+++ refComp/pom.xml 2010-11-05 09:05:49 UTC (rev 13)
@@ -23,6 +23,7 @@
<modules>
<module>client</module>
<module>services</module>
+ <module>entities</module>
</modules>
@@ -33,7 +34,7 @@
<name>RefComp</name>
<description>
- Software to create a knowledge database about people competences.
+ Software to create a knowledge database about people skills.
</description>
<inceptionYear>2010</inceptionYear>
@@ -62,12 +63,14 @@
<properties>
- <projectId>Episodes Manager</projectId>
+ <projectId>Ref Comp</projectId>
<labs.id>---</labs.id>
<!-- libraries version -->
<gwtVersion>2.0.3</gwtVersion>
+ <wikittyVersion>3.0-SNAPSHOT</wikittyVersion>
+ <generatorPluginVersion>2.2</generatorPluginVersion>
</properties>
<dependencyManagement>
@@ -86,6 +89,50 @@
<version>${gwtVersion}</version>
<scope>provided</scope>
</dependency>
+
+ <!-- Wikitty dependencies -->
+
+ <dependency>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${wikittyVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-jdbc-impl</artifactId>
+ <version>${wikittyVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-solr-impl</artifactId>
+ <version>${wikittyVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ <version>2.9.3</version>
+ <scope>compile</scope>
+ </dependency>
+
+
+ <!-- base h2 -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <!-- Don't use < 1.1 or > 1.2.129 without testing migration
+ with old datas -->
+ <version>1.2.127</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- base postgres -->
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>8.4-701.jdbc4</version>
+ <scope>runtime</scope>
+ </dependency>
+
</dependencies>
</dependencyManagement>
@@ -102,12 +149,13 @@
<execution>
<goals>
<goal>compile</goal>
- <!--goal>test</goal-->
+ <!--goal>test</goal-->
</goals>
</execution>
</executions>
<configuration>
- <runTarget>fr.inra.refcomp.Login/Login.html</runTarget>
+ <hostedWebapp>src/main/webapp</hostedWebapp>
+ <runTarget>fr.inra.refcomp.RefComp/RefComp.html</runTarget>
<noServer>false</noServer>
<gwtVersion>${gwtVersion}</gwtVersion>
</configuration>
@@ -119,6 +167,7 @@
<configuration>
<filesets>
<fileset>
+ <!--TODO jcouteau 04/11/2010 reconfigure this now that everything is in src/main/webapp-->
<directory>war</directory>
</fileset>
</filesets>
@@ -126,6 +175,32 @@
</plugin>
+ <!-- eugene plugin -->
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${generatorPluginVersion}</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-generators</artifactId>
+ <version>${wikittyVersion}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+
+ <!-- plugin site -->
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.nuiton.jrst</groupId>
+ <artifactId>doxia-module-jrst</artifactId>
+ <version>${jrstPluginVersion}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+
</plugins>
</pluginManagement>
1
0