Simexplorer-si-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
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
January 2008
- 2 participants
- 470 discussions
17 Jan '08
Author: tchemit
Date: 2008-01-17 16:23:53 +0000 (Thu, 17 Jan 2008)
New Revision: 172
Added:
trunk/simexplorer-is-swing/
trunk/simexplorer-is-swing/pom.xml
trunk/simexplorer-is-swing/profiles.xml
trunk/simexplorer-is-swing/src/
trunk/simexplorer-is-swing/src/i18n/
trunk/simexplorer-is-swing/src/i18n/language-en_GB.properties
trunk/simexplorer-is-swing/src/i18n/language-fr_FR.properties
trunk/simexplorer-is-swing/src/java/
trunk/simexplorer-is-swing/src/java/fr/
trunk/simexplorer-is-swing/src/java/fr/cemagref/
trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/
trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/
trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/
trunk/simexplorer-is-swing/src/resources/
trunk/simexplorer-is-swing/src/site/
trunk/simexplorer-is-swing/src/test/
trunk/simexplorer-is-swing/src/test/fr/
trunk/simexplorer-is-swing/src/test/fr/cemagref/
trunk/simexplorer-is-swing/src/test/fr/cemagref/simexplorer/
trunk/simexplorer-is-swing/src/test/fr/cemagref/simexplorer/is/
trunk/simexplorer-is-swing/src/test/fr/cemagref/simexplorer/is/ui/
trunk/simexplorer-is-swing/src/uimodel/
Log:
ajout du module swing avec d?\195?\169pendances sur jaxx
Added: trunk/simexplorer-is-swing/pom.xml
===================================================================
--- trunk/simexplorer-is-swing/pom.xml (rev 0)
+++ trunk/simexplorer-is-swing/pom.xml 2008-01-17 16:23:53 UTC (rev 172)
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>simexplorer-is</groupId>
+ <artifactId>simexplorer-is-swing</artifactId>
+ <name>Simexplorer-is java swing ui</name>
+
+ <version>0.0.1-SNAPSHOT</version>
+ <description></description>
+ <packaging>jar</packaging>
+
+ <parent>
+ <groupId>simexplorer-is</groupId>
+ <artifactId>simexplorer-is</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <build>
+<plugins>
+ <plugin>
+ <groupId>lutinplugin</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <version>0.2-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>CreateDirs</id>
+ <phase>validate</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="${basedir}/target/gen/java"/>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>CopyGenJavaVersSrcBuild</id>
+ <!-- recopie des fichiers java generes vers src-build/java -->
+ <phase>process-sources</phase>
+ <configuration>
+ <tasks>
+ <copy todir="${basedir}/target/src-build/java" verbose="${maven.verbose}" overwrite="false">
+ <fileset dir="${basedir}/target/gen/java" />
+ </copy>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>lutinplugin</groupId>
+ <artifactId>maven-i18n-plugin</artifactId>
+ <version>0.2-SNAPSHOT</version>
+ <configuration>
+ <bundles>
+ <param>fr_FR</param>
+ <param>en_GB</param>
+ </bundles>
+ <keysModifier>false</keysModifier>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>compile</phase>
+ <goals>
+ <goal>parserJaxx</goal>
+ <goal>parserJava</goal>
+ <goal>gen</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+</plugins>
+</build>
+
+ <dependencies>
+ <!-- pour obtenir les servies de simeplorer-is -->
+ <dependency>
+ <groupId>simexplorer-is</groupId>
+ <artifactId>simexplorer-is-service</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <!--Jaxx-->
+ <dependency>
+ <groupId>lutinlib</groupId>
+ <artifactId>jaxx</artifactId>
+ <version>1.0.4-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!--dependency>
+ <groupId>lutinlib</groupId>
+ <artifactId>lutinutil</artifactId>
+ <version>0.29-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency-->
+ </dependencies>
+</project>
Added: trunk/simexplorer-is-swing/profiles.xml
===================================================================
--- trunk/simexplorer-is-swing/profiles.xml (rev 0)
+++ trunk/simexplorer-is-swing/profiles.xml 2008-01-17 16:23:53 UTC (rev 172)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<settings>
+ <profiles>
+ <profile>
+ <id>project</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <properties>
+ <!-- id du projet du labs (buix) -->
+ <labs.id>130</labs.id>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <!--Main class in JAR
+ <maven.jar.main.class>
+ jaxx.compiler.JAXXCompiler
+ </maven.jar.main.class>
+ -->
+ </properties>
+ </profile>
+ </profiles>
+</settings>
\ No newline at end of file
Added: trunk/simexplorer-is-swing/src/i18n/language-en_GB.properties
===================================================================
--- trunk/simexplorer-is-swing/src/i18n/language-en_GB.properties (rev 0)
+++ trunk/simexplorer-is-swing/src/i18n/language-en_GB.properties 2008-01-17 16:23:53 UTC (rev 172)
@@ -0,0 +1 @@
+#Thu Jan 17 15:12:50 GMT 2008
Added: trunk/simexplorer-is-swing/src/i18n/language-fr_FR.properties
===================================================================
--- trunk/simexplorer-is-swing/src/i18n/language-fr_FR.properties (rev 0)
+++ trunk/simexplorer-is-swing/src/i18n/language-fr_FR.properties 2008-01-17 16:23:53 UTC (rev 172)
@@ -0,0 +1 @@
+#Thu Jan 17 15:12:50 GMT 2008
1
0
r171 - in trunk: simexplorer-is simexplorer-is-ear
by tchemit@users.labs.libre-entreprise.org 17 Jan '08
by tchemit@users.labs.libre-entreprise.org 17 Jan '08
17 Jan '08
Author: tchemit
Date: 2008-01-17 16:14:54 +0000 (Thu, 17 Jan 2008)
New Revision: 171
Modified:
trunk/simexplorer-is-ear/pom.xml
trunk/simexplorer-is/pom.xml
Log:
harmonisation du nom d'artifact ear
+ ajout d'un module swing
Modified: trunk/simexplorer-is/pom.xml
===================================================================
--- trunk/simexplorer-is/pom.xml 2008-01-17 14:25:05 UTC (rev 170)
+++ trunk/simexplorer-is/pom.xml 2008-01-17 16:14:54 UTC (rev 171)
@@ -131,11 +131,12 @@
</dependencies>
<modules>
- <module>../simexplorer-is-security</module>
+ <module>../simexplorer-is-security</module>
<module>../simexplorer-is-entities</module>
<module>../simexplorer-is-storage</module>
<module>../simexplorer-is-service</module>
<module>../simexplorer-is-web</module>
+ <module>../simexplorer-is-swing</module>
<module>../simexplorer-is-ear</module>
</modules>
</project>
\ No newline at end of file
Modified: trunk/simexplorer-is-ear/pom.xml
===================================================================
--- trunk/simexplorer-is-ear/pom.xml 2008-01-17 14:25:05 UTC (rev 170)
+++ trunk/simexplorer-is-ear/pom.xml 2008-01-17 16:14:54 UTC (rev 171)
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>simexplorer-is</groupId>
- <artifactId>simexplorer-is-service-ear</artifactId>
+ <artifactId>simexplorer-is-ear</artifactId>
<name>EAR service</name>
<packaging>ear</packaging>
@@ -50,4 +50,4 @@
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
1
0
Author: glandais
Date: 2008-01-17 14:25:05 +0000 (Thu, 17 Jan 2008)
New Revision: 170
Added:
trunk/simexplorer-is-ear/
Removed:
trunk/simexplorer-is-service-ear/
Log:
Copied: trunk/simexplorer-is-ear (from rev 169, trunk/simexplorer-is-service-ear)
1
0
r169 - in trunk/simexplorer-is-service/src: java/fr/cemagref/simexplorer/is/service test/fr/cemagref/simexplorer/is/service/test
by glandais@users.labs.libre-entreprise.org 16 Jan '08
by glandais@users.labs.libre-entreprise.org 16 Jan '08
16 Jan '08
Author: glandais
Date: 2008-01-16 16:56:35 +0000 (Wed, 16 Jan 2008)
New Revision: 169
Modified:
trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java
trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceImpl.java
trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/test/StorageServiceTest.java
Log:
Minor changes on storage services
Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java
===================================================================
--- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-01-16 16:56:10 UTC (rev 168)
+++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-01-16 16:56:35 UTC (rev 169)
@@ -20,20 +20,6 @@
public interface StorageService {
/**
- * Open storage
- *
- * @throws Exception
- */
- void open() throws Exception;
-
- /**
- * Close storage
- *
- * @throws Exception
- */
- void close() throws Exception;
-
- /**
* Commit in storage
*
* @throws Exception
Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceImpl.java
===================================================================
--- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceImpl.java 2008-01-16 16:56:10 UTC (rev 168)
+++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceImpl.java 2008-01-16 16:56:35 UTC (rev 169)
@@ -44,6 +44,12 @@
public StorageServiceImpl() {
super();
storageEngine = new StorageEngine();
+ try {
+ storageEngine.open();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
}
public void open() throws Exception {
Modified: trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/test/StorageServiceTest.java
===================================================================
--- trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/test/StorageServiceTest.java 2008-01-16 16:56:10 UTC (rev 168)
+++ trunk/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/test/StorageServiceTest.java 2008-01-16 16:56:35 UTC (rev 169)
@@ -26,12 +26,10 @@
super.setUp();
storageService = new StorageServiceImpl();
- storageService.open();
}
protected void tearDown() throws Exception {
super.tearDown();
- storageService.close();
}
public void testInsertElementZip() throws Exception {
1
0
r168 - in trunk/simexplorer-is-web/src: java/fr/cemagref/simexplorer/is/ui/web java/fr/cemagref/simexplorer/is/ui/web/components java/fr/cemagref/simexplorer/is/ui/web/grid java/fr/cemagref/simexplorer/is/ui/web/pages java/fr/cemagref/simexplorer/is/ui/web/pages/security java/fr/cemagref/simexplorer/is/ui/web/services main/webapp main/webapp/WEB-INF resources/fr/cemagref/simexplorer/is/ui/web/components resources/fr/cemagref/simexplorer/is/ui/web/pages
by glandais@users.labs.libre-entreprise.org 16 Jan '08
by glandais@users.labs.libre-entreprise.org 16 Jan '08
16 Jan '08
Author: glandais
Date: 2008-01-16 16:56:10 +0000 (Wed, 16 Jan 2008)
New Revision: 168
Added:
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/AdminPage.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/SuperAdminPage.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/UserPage.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/ServiceFactory.java
trunk/simexplorer-is-web/src/main/webapp/Login.tml
trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/Login.properties
Removed:
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/ContextListener.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/StorageServiceFactory.java
trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout_fr.properties
Modified:
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationExport.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java
trunk/simexplorer-is-web/src/main/webapp/GroupEdit.tml
trunk/simexplorer-is-web/src/main/webapp/GroupList.tml
trunk/simexplorer-is-web/src/main/webapp/UserEdit.tml
trunk/simexplorer-is-web/src/main/webapp/UserList.tml
trunk/simexplorer-is-web/src/main/webapp/WEB-INF/web.xml
trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.properties
trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml
trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.properties
Log:
Web app update
Deleted: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/ContextListener.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/ContextListener.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/ContextListener.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,26 +0,0 @@
-package fr.cemagref.simexplorer.is.ui.web;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-import fr.cemagref.simexplorer.is.ui.web.services.StorageServiceFactory;
-
-public class ContextListener implements ServletContextListener {
-
- public void contextDestroyed(ServletContextEvent arg0) {
- try {
- StorageServiceFactory.getService().close();
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
-
- public void contextInitialized(ServletContextEvent arg0) {
- try {
- StorageServiceFactory.getService().open();
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
-
-}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/components/Layout.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -20,6 +20,7 @@
import java.util.Locale;
+import org.apache.tapestry.annotations.ApplicationState;
import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.IncludeStylesheet;
import org.apache.tapestry.annotations.InjectPage;
@@ -31,7 +32,7 @@
import org.apache.tapestry.services.PersistentLocale;
import fr.cemagref.simexplorer.is.ui.web.pages.ElementList;
-import fr.cemagref.simexplorer.is.ui.web.pages.UserList;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.ProtectedPage;
/**
* AbstractPage.java
@@ -44,10 +45,13 @@
@IncludeStylesheet("css/Layout.css")
public class Layout {
- /* linked state "UserList" */
- @InjectPage
- private UserList userList;
+ @Inject
+ @Service("PersistentLocale")
+ private PersistentLocale persistentLocale;
+ @ApplicationState
+ private String token;
+
@Component
private TextField searchField;
@@ -83,10 +87,6 @@
title = "";
}
- @Inject
- @Service("PersistentLocale")
- private PersistentLocale persistentLocale;
-
Object onActionFromSwitchLocaleFr() {
persistentLocale.set(new Locale("fr"));
return null;
@@ -97,14 +97,6 @@
return null;
}
- Object onActionFromAdministration() {
- return userList;
- }
-
- public boolean getAdministrator() {
- return true;
- }
-
Object onSuccess() {
elementList.searchQuery(searchText);
// form.recordError(searchField, "Invalid request.");
@@ -117,6 +109,11 @@
return elementList;
}
+ public Object onActionFromLogout() throws Exception {
+ token = null;
+ return elementList;
+ }
+
public String getSearchText() {
return searchText;
}
@@ -125,4 +122,28 @@
this.searchText = searchText;
}
+ public String getLoginName() {
+ return ProtectedPage.getUserLogged(getToken()).getLogin();
+ }
+
+ public boolean getLogged() {
+ return ProtectedPage.isUserLogged(getToken());
+ }
+
+ public boolean getAdministrator() {
+ return ProtectedPage.isUserAdmin(getToken());
+ }
+
+ public boolean getSuperAdministrator() {
+ return ProtectedPage.isUserSuperAdmin(getToken());
+ }
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -6,7 +6,7 @@
import org.apache.tapestry.grid.GridDataSource;
import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity;
-import fr.cemagref.simexplorer.is.ui.web.services.StorageServiceFactory;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
public class ElementDataSource implements GridDataSource {
@@ -27,11 +27,11 @@
public int getAvailableRows() {
int result = 0;
try {
- if (query.isEmpty()) {
- result = StorageServiceFactory.getService()
+ if (query.equals("")) {
+ result = ServiceFactory.getStorageService()
.findApplicationsCount(false);
} else {
- result = StorageServiceFactory.getService().findFullTextCount(
+ result = ServiceFactory.getStorageService().findFullTextCount(
query, false);
}
} catch (NamingException e) {
@@ -67,12 +67,12 @@
}
}
- if (query.isEmpty()) {
- entities = StorageServiceFactory.getService()
+ if (query.equals("")) {
+ entities = ServiceFactory.getStorageService()
.findApplications(false, startIndex,
1 + endIndex - startIndex, dateOrder);
} else {
- entities = StorageServiceFactory.getService().findFullText(
+ entities = ServiceFactory.getStorageService().findFullText(
query, false, startIndex, 1 + endIndex - startIndex,
dateOrder);
}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationExport.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationExport.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationExport.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,9 +1,7 @@
package fr.cemagref.simexplorer.is.ui.web.pages;
-import org.apache.tapestry.annotations.Component;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
-import fr.cemagref.simexplorer.is.ui.web.components.Layout;
+public class ApplicationExport extends UserPage {
-public class ApplicationExport {
-
}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ApplicationImport.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,15 +1,14 @@
package fr.cemagref.simexplorer.is.ui.web.pages;
-import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.upload.services.UploadedFile;
import com.healthmarketscience.rmiio.RemoteInputStreamServer;
import com.healthmarketscience.rmiio.SimpleRemoteInputStream;
-import fr.cemagref.simexplorer.is.ui.web.components.Layout;
-import fr.cemagref.simexplorer.is.ui.web.services.StorageServiceFactory;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
-public class ApplicationImport {
+public class ApplicationImport extends UserPage {
private UploadedFile fileEA;
private UploadedFile fileLib;
@@ -34,7 +33,7 @@
if (fileEA != null) {
RemoteInputStreamServer zipRemoteStream = new SimpleRemoteInputStream(
fileEA.getStream());
- StorageServiceFactory.getService().saveElement(
+ ServiceFactory.getStorageService().saveElement(
zipRemoteStream.export());
}
}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDetail.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -28,10 +28,11 @@
import fr.cemagref.simexplorer.is.entities.data.Result;
import fr.cemagref.simexplorer.is.entities.data.Structure;
import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity;
-import fr.cemagref.simexplorer.is.ui.web.services.StorageServiceFactory;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
import fr.cemagref.simexplorer.is.ui.web.tools.XMLAttachment;
-public class ElementDetail {
+public class ElementDetail extends UserPage {
@Inject
private ComponentResources resources;
@@ -40,7 +41,7 @@
private LoggableElement element;
public void setup(String uuid, String version) throws Exception {
- element = StorageServiceFactory.getService().getElement(uuid, version);
+ element = ServiceFactory.getStorageService().getElement(uuid, version);
}
public List<String> getHeaders() {
@@ -64,10 +65,10 @@
ByteArrayOutputStream bos = new ByteArrayOutputStream();
RemoteOutputStreamServer xmlRemoteOutputStream = new SimpleRemoteOutputStream(
bos);
- StorageServiceFactory.getService().exportElement(
+ ServiceFactory.getStorageService().exportElement(
xmlRemoteOutputStream.export(), uuid, version);
- MetaDataEntity mde = StorageServiceFactory.getService().getMetadata(
+ MetaDataEntity mde = ServiceFactory.getStorageService().getMetadata(
uuid, version);
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
response = new XMLAttachment(bis, mde.getType() + "." + mde.getUuid()
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -14,8 +14,9 @@
import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity;
import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
-public class ElementList {
+public class ElementList extends UserPage {
@Retain
private BeanModel model;
@@ -60,7 +61,7 @@
}
public void searchQuery(String query) {
- if (query == null || query.isEmpty()) {
+ if (query == null || query.equals("")) {
elementDataSource = new ElementDataSource();
} else {
elementDataSource = new ElementDataSource(query);
@@ -87,8 +88,7 @@
return result;
}
- public Object onActionFromDetailElement(String context)
- throws Exception {
+ public Object onActionFromDetailElement(String context) throws Exception {
StringTokenizer st = new StringTokenizer(context, ",");
String uuid = st.nextToken();
String version = st.nextToken();
@@ -99,7 +99,7 @@
public String getWindowTitle() {
String windowTitle = null;
if (elementDataSource.getQuery() != null
- && !elementDataSource.getQuery().isEmpty()) {
+ && !elementDataSource.getQuery().equals("")) {
windowTitle = String.format("Search results for \"%s\"",
elementDataSource.getQuery());
} else {
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,14 +1,98 @@
package fr.cemagref.simexplorer.is.ui.web.pages;
+import java.util.StringTokenizer;
+
+import javax.naming.NamingException;
+
+import org.apache.tapestry.annotations.InjectPage;
import org.apache.tapestry.annotations.Persist;
+import org.apache.tapestry.internal.services.StringValueEncoder;
-public class GroupEdit {
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
+public class GroupEdit extends AdminPage {
+
@Persist
- private int groupId;
+ private Group group;
- void onActivate(int groupId) {
- this.groupId = groupId;
+ @InjectPage
+ private GroupList groupList;
+
+ private StringValueEncoder stringEncoder = new StringValueEncoder();
+
+ @Persist
+ private String[] usersInGroup;
+
+ void setup(int groupId) throws NamingException {
+ if (groupId == -1) {
+ this.group = new Group();
+ this.usersInGroup = new String[0];
+ } else {
+ this.group = ServiceFactory.getSecurityService().getGroup(groupId);
+ User[] users = ServiceFactory.getSecurityService().getUsersOfGroup(
+ group);
+ this.usersInGroup = new String[users.length];
+ for (int i = 0; i < users.length; i++) {
+ this.usersInGroup[i] = users[i].getId() + "/"
+ + users[i].getLogin();
+ }
+ }
}
+ public Object onSuccess() throws NamingException {
+ if (group.getId() == null) {
+ ServiceFactory.getSecurityService().saveGroup(group.getName(),
+ getUserLogged(getToken()));
+ } else {
+ ServiceFactory.getSecurityService().updateGroup(group);
+ }
+ Integer[] usersIds = new Integer[usersInGroup.length];
+ for (int i = 0; i < usersIds.length; i++) {
+ StringTokenizer st = new StringTokenizer(usersInGroup[i], "/");
+ usersIds[i] = new Integer(st.nextToken());
+ }
+ ServiceFactory.getSecurityService().setUsersOfGroup(group, usersIds);
+ return groupList;
+ }
+
+ public Object onActionFromCancel() {
+ return groupList;
+ }
+
+ public String[] getUsers() throws NamingException {
+ User[] users = ServiceFactory.getSecurityService().getUsers();
+ String[] result = new String[users.length];
+ for (int i = 0; i < users.length; i++) {
+ result[i] = users[i].getId() + "/" + users[i].getLogin();
+ }
+ return result;
+ }
+
+ public String[] getUsersInGroup() throws NamingException {
+ return usersInGroup;
+ }
+
+ public void setUsersInGroup(String[] usersInGroup) throws NamingException {
+ this.usersInGroup = usersInGroup;
+ }
+
+ public Group getGroup() {
+ return group;
+ }
+
+ public StringValueEncoder getStringEncoder() {
+ return stringEncoder;
+ }
+
+ public GroupList getGroupList() {
+ return groupList;
+ }
+
+ public void setGroupList(GroupList groupList) {
+ this.groupList = groupList;
+ }
+
}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,6 +1,95 @@
package fr.cemagref.simexplorer.is.ui.web.pages;
+import java.util.ArrayList;
+import java.util.List;
-public class GroupList {
+import javax.naming.NamingException;
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.annotations.Retain;
+import org.apache.tapestry.beaneditor.BeanModel;
+import org.apache.tapestry.ioc.annotations.Inject;
+import org.apache.tapestry.services.BeanModelSource;
+
+import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity;
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
+
+public class GroupList extends AdminPage {
+
+ @Retain
+ private BeanModel model;
+
+ private Group group;
+
+ @Inject
+ private BeanModelSource beanModelSource;
+
+ @Inject
+ private ComponentResources resources;
+
+ @InjectPage
+ private GroupEdit groupEdit;
+
+ void pageLoaded() {
+ model = beanModelSource.create(Group.class, true, resources);
+ List<String> wantedProperties = new ArrayList<String>();
+ wantedProperties.add("name");
+ List<String> properties = model.getPropertyNames();
+ for (String property : properties) {
+ if (!wantedProperties.contains(property)) {
+ model = model.remove(property);
+ }
+ }
+ model.add("edit", null);
+ model.add("delete", null);
+ }
+
+ public Group[] getGroups() throws NamingException {
+ Group[] groups = null;
+ if (isUserSuperAdmin(getToken())) {
+ groups = ServiceFactory.getSecurityService().getGroups();
+ } else {
+ groups = ServiceFactory.getSecurityService().getGroupsOwnedBy(getUserLogged(getToken()));
+ }
+ return groups;
+ }
+
+ public Object onActionFromDelete(Integer context) throws Exception {
+ ServiceFactory.getSecurityService().deleteGroup(context);
+ return null;
+ }
+
+ public Object onActionFromEdit(Integer context) throws Exception {
+ groupEdit.setup(context);
+ return groupEdit;
+ }
+
+ public Object onActionFromAdd() throws Exception {
+ groupEdit.setup(-1);
+ return groupEdit;
+ }
+
+ public Group getGroup() {
+ return group;
+ }
+
+ public void setGroup(Group group) {
+ this.group = group;
+ }
+
+ public BeanModel getModel() {
+ return model;
+ }
+
+ public GroupEdit getGroupEdit() {
+ return groupEdit;
+ }
+
+ public void setGroupEdit(GroupEdit groupEdit) {
+ this.groupEdit = groupEdit;
+ }
+
}
Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java (rev 0)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,57 @@
+package fr.cemagref.simexplorer.is.ui.web.pages;
+
+import javax.naming.NamingException;
+
+import org.apache.tapestry.annotations.ApplicationState;
+import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.annotations.Persist;
+
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
+
+public class Login {
+
+ @Persist
+ private String user;
+ private String password;
+
+ @InjectPage
+ private ElementList elementList;
+
+ @ApplicationState
+ private String token;
+
+ public Object onSuccess() throws NamingException {
+ Object result = null;
+ token = ServiceFactory.getSecurityService().loginUser(user,
+ password);
+ if (token != null) {
+ result = elementList;
+ }
+ return result;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public ElementList getElementList() {
+ return elementList;
+ }
+
+ public String getWindowTitle() {
+ return "Login";
+ }
+
+}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,14 +1,54 @@
package fr.cemagref.simexplorer.is.ui.web.pages;
+import javax.naming.NamingException;
+
+import org.apache.tapestry.annotations.InjectPage;
import org.apache.tapestry.annotations.Persist;
-public class UserEdit {
+import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
+public class UserEdit extends AdminPage {
+
@Persist
- private int userId;
+ private User user;
- void onActivate(int userId) {
- this.userId = userId;
+ @InjectPage
+ private UserList userList;
+
+ void setup(int groupId) throws NamingException {
+ if (groupId == -1) {
+ this.user = new User();
+ } else {
+ this.user = ServiceFactory.getSecurityService().getUser(groupId);
+ }
}
+ public Object onSuccess() throws NamingException {
+ if (user.getId() == null) {
+ ServiceFactory.getSecurityService().saveUser(user.getLogin(),
+ user.getMail());
+ } else {
+ ServiceFactory.getSecurityService().updateUser(user);
+ }
+ return userList;
+ }
+
+ public Object onActionFromCancel() {
+ return userList;
+ }
+
+ public UserList getUserList() {
+ return userList;
+ }
+
+ public void setUserList(UserList userList) {
+ this.userList = userList;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
}
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,6 +1,94 @@
package fr.cemagref.simexplorer.is.ui.web.pages;
+import java.util.ArrayList;
+import java.util.List;
-public class UserList {
+import javax.naming.NamingException;
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.annotations.Retain;
+import org.apache.tapestry.beaneditor.BeanModel;
+import org.apache.tapestry.ioc.annotations.Inject;
+import org.apache.tapestry.services.BeanModelSource;
+
+import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
+
+public class UserList extends AdminPage {
+
+ @Retain
+ private BeanModel model;
+
+ private User user;
+
+ @Inject
+ private BeanModelSource beanModelSource;
+
+ @Inject
+ private ComponentResources resources;
+
+ @InjectPage
+ private UserEdit userEdit;
+
+ void pageLoaded() {
+ model = beanModelSource.create(User.class, true, resources);
+ List<String> wantedProperties = new ArrayList<String>();
+ wantedProperties.add("login");
+ wantedProperties.add("name");
+ wantedProperties.add("admin");
+ wantedProperties.add("superAdmin");
+
+ List<String> properties = model.getPropertyNames();
+ for (String property : properties) {
+ if (!wantedProperties.contains(property)) {
+ model = model.remove(property);
+ }
+ }
+ model.add("edit", null);
+ model.add("delete", null);
+ }
+
+ public User[] getUsers() throws NamingException {
+ User[] users = null;
+ users = ServiceFactory.getSecurityService().getUsers();
+ return users;
+ }
+
+ public Object onActionFromDelete(Integer context) throws Exception {
+ ServiceFactory.getSecurityService().deleteUser(context);
+ return null;
+ }
+
+ public Object onActionFromEdit(Integer context) throws Exception {
+ userEdit.setup(context);
+ return userEdit;
+ }
+
+ public Object onActionFromAdd() throws Exception {
+ userEdit.setup(-1);
+ return userEdit;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
+ public void setUser(User user) {
+ this.user = user;
+ }
+
+ public UserEdit getUserEdit() {
+ return userEdit;
+ }
+
+ public void setUserEdit(UserEdit userEdit) {
+ this.userEdit = userEdit;
+ }
+
+ public BeanModel getModel() {
+ return model;
+ }
+
}
Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/AdminPage.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/AdminPage.java (rev 0)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/AdminPage.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,9 @@
+package fr.cemagref.simexplorer.is.ui.web.pages.security;
+
+public abstract class AdminPage extends ProtectedPage {
+
+ public boolean hasAccessToPage() {
+ return isUserAdmin(getToken());
+ }
+
+}
Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java (rev 0)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,82 @@
+package fr.cemagref.simexplorer.is.ui.web.pages.security;
+
+import javax.naming.NamingException;
+
+import org.apache.tapestry.annotations.ApplicationState;
+
+import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.ui.web.services.ServiceFactory;
+
+public abstract class ProtectedPage {
+
+ @ApplicationState
+ private String token;
+
+ Object onActivate() {
+ if (!hasAccessToPage())
+ return "Login";
+ return null;
+ }
+
+ public static User getUserLogged(String aToken) {
+ User loggedUser = null;
+ if (aToken != null) {
+ try {
+ loggedUser = ServiceFactory.getSecurityService().getLoggedUser(
+ aToken);
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+ }
+ return loggedUser;
+ }
+
+ public static boolean isUserLogged(String aToken) {
+ boolean result = false;
+ try {
+ if (getUserLogged(aToken) != null) {
+ result = true;
+ }
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+ return result;
+ }
+
+ public static boolean isUserAdmin(String aToken) {
+ boolean result = false;
+ try {
+ User user = getUserLogged(aToken);
+ if (user != null && user.isAdmin()) {
+ result = true;
+ }
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+ return result;
+ }
+
+ public static boolean isUserSuperAdmin(String aToken) {
+ boolean result = false;
+ try {
+ User user = getUserLogged(aToken);
+ if (user != null && user.isSuperAdmin()) {
+ result = true;
+ }
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+ return result;
+ }
+
+ abstract boolean hasAccessToPage();
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
+}
\ No newline at end of file
Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/SuperAdminPage.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/SuperAdminPage.java (rev 0)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/SuperAdminPage.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,9 @@
+package fr.cemagref.simexplorer.is.ui.web.pages.security;
+
+public abstract class SuperAdminPage extends ProtectedPage {
+
+ public boolean hasAccessToPage() {
+ return isUserSuperAdmin(getToken());
+ }
+
+}
Added: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/UserPage.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/UserPage.java (rev 0)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/UserPage.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,9 @@
+package fr.cemagref.simexplorer.is.ui.web.pages.security;
+
+public abstract class UserPage extends ProtectedPage {
+
+ public boolean hasAccessToPage() {
+ return isUserLogged(getToken());
+ }
+
+}
Copied: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/ServiceFactory.java (from rev 163, trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/StorageServiceFactory.java)
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/ServiceFactory.java (rev 0)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/ServiceFactory.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,42 @@
+package fr.cemagref.simexplorer.is.ui.web.services;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import fr.cemagref.simexplorer.is.security.service.AuthenticationService;
+import fr.cemagref.simexplorer.is.service.StorageService;
+
+public class ServiceFactory {
+
+ private static StorageService serviceProjets = null;
+ private static AuthenticationService securityProjets = null;
+
+ public static StorageService getStorageService() throws NamingException {
+ if (serviceProjets == null) {
+ serviceProjets = (StorageService) getService("StorageService");
+ }
+ return serviceProjets;
+ }
+
+ public static AuthenticationService getSecurityService() throws NamingException {
+ if (securityProjets == null) {
+ securityProjets = (AuthenticationService) getService("AuthenticationService");
+ }
+ return securityProjets;
+ }
+
+ private static Object getService(String serviceName) throws NamingException {
+ Properties properties = (Properties) System.getProperties().clone();
+ properties.put("java.naming.provider.url", "jnp://localhost:1099");
+ properties.put("java.naming.factory.initial",
+ "org.jnp.interfaces.NamingContextFactory");
+ properties.put("java.naming.factory.url.pkgs", "org.jnp.interfaces");
+
+ Context context = new InitialContext(properties);
+ return context.lookup(serviceName);
+ }
+
+}
Deleted: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/StorageServiceFactory.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/StorageServiceFactory.java 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/StorageServiceFactory.java 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,32 +0,0 @@
-package fr.cemagref.simexplorer.is.ui.web.services;
-
-import java.util.Properties;
-import java.util.Map.Entry;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import fr.cemagref.simexplorer.is.service.StorageService;
-
-public class StorageServiceFactory {
-
- private static StorageService serviceProjets = null;
-
- public static StorageService getService() throws NamingException {
- if (serviceProjets == null) {
- Properties properties = (Properties) System.getProperties().clone();
- properties.put("java.naming.provider.url", "jnp://localhost:1099");
- properties.put("java.naming.factory.initial",
- "org.jnp.interfaces.NamingContextFactory");
- properties
- .put("java.naming.factory.url.pkgs", "org.jnp.interfaces");
-
- Context context = new InitialContext(properties);
- serviceProjets = (StorageService) context
- .lookup("StorageService");
- }
- return serviceProjets;
- }
-
-}
Modified: trunk/simexplorer-is-web/src/main/webapp/GroupEdit.tml
===================================================================
--- trunk/simexplorer-is-web/src/main/webapp/GroupEdit.tml 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/main/webapp/GroupEdit.tml 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,21 +1,28 @@
<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
title="message:windowtitle">
- <t:form>
- <t:errors/>
-
- <!--
-
+ <t:form>
+ <t:errors />
+
+ <t:errors/>
+
<p>${message:name} :
<input t:type="TextField" t:id="name" t:validate="required,minlength=3"
t:value="group.name" size="30"/></p>
-
- -->
-
- <input t:type="Submit" t:value="message:submit"/>
-
+
+ <p>${message:userMembers} :
+ <input t:type="Palette" model="users" selected="usersInGroup" encoder="stringEncoder"/>
+ </p>
+
+<!--
+ <p>${message:groupMembers} :
+ <input t:type="Palette" model="groups" selected="paletteSelectedValues" encoder="stringEncoder"/>
+ </p>
+ -->
+ <input t:type="Submit" t:value="message:submit" />
+
<a t:type="actionlink" t:id="cancel">${message:cancel}</a>
-
- </t:form>
-
+
+ </t:form>
+
</t:layout>
Modified: trunk/simexplorer-is-web/src/main/webapp/GroupList.tml
===================================================================
--- trunk/simexplorer-is-web/src/main/webapp/GroupList.tml 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/main/webapp/GroupList.tml 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,24 +1,15 @@
<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
title="message:windowtitle">
- <t:form>
- <t:errors />
+ <table t:type="Grid" source="groups" row="group" model="model">
+ <t:parameter name="editCell">
+ <t:actionlink t:id="edit" context="group.id">${message:modify}</t:actionlink>
+ </t:parameter>
+ <t:parameter name="deleteCell">
+ <t:actionlink t:id="delete" context="group.id">${message:delete}</t:actionlink>
+ </t:parameter>
+ </table>
+
+ <t:actionlink t:id="add">${message:addgroup}</t:actionlink>
- <table class="Large">
- <tr class="First">
- <td>${message:name}</td>
- <td>${message:modify}</td>
- <td>${message:delete}</td>
- </tr>
- <!-- t:loop source="groups" value="group">
- <tr>
- <td>${group.name}</td>
- <td><a t:type="ActionLink" t:id="edit" t:context="group.id">${message:modify}</a></td>
- <td><a t:type="ActionLink" t:id="delete" t:context="group.id">${message:delete}</a></td>
- </tr>
- </t:loop -->
- </table>
-
- </t:form>
-
</t:layout>
Added: trunk/simexplorer-is-web/src/main/webapp/Login.tml
===================================================================
--- trunk/simexplorer-is-web/src/main/webapp/Login.tml (rev 0)
+++ trunk/simexplorer-is-web/src/main/webapp/Login.tml 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,21 @@
+<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
+ title="${windowtitle}">
+
+ <h1 class="Title">${windowtitle}</h1>
+
+ <t:form>
+
+ <t:errors />
+
+ ${message:user} :
+ <input t:type="TextField" t:id="user"
+ t:validate="required,minlength=1" t:value="user" size="30" />
+ <br />
+ ${message:password} :
+ <input t:type="PasswordField" t:id="password"
+ t:validate="required,minlength=1" t:value="password" size="30" />
+ <br />
+ <input t:type="Submit" t:value="message:login" />
+ </t:form>
+
+</t:layout>
Modified: trunk/simexplorer-is-web/src/main/webapp/UserEdit.tml
===================================================================
--- trunk/simexplorer-is-web/src/main/webapp/UserEdit.tml 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/main/webapp/UserEdit.tml 2008-01-16 16:56:10 UTC (rev 168)
@@ -4,78 +4,22 @@
<t:form>
<t:errors />
- <!--
+ <p>${message:name} : ${user.login}</p>
- <p>${message:name} : <input t:type="TextField" t:id="name"
- t:validate="required,minlength=3" t:value="user.name" size="30" /></p>
+ <p><t:label for="mail" />: <input t:type="TextField" t:id="mail"
+ t:validate="required,minlength=4" t:value="user.mail" size="40" /></p>
- <p>${message:firstname} : <input t:type="TextField"
- t:id="firstName" t:validate="required,minlength=3"
- t:value="user.firstName" size="30" /></p>
+ <p><t:label for="isAdmin" />: <input t:type="checkbox"
+ t:id="isAdmin" t:value="user.admin" /></p>
- <p>${message:mail} : <input t:type="TextField" t:id="mail"
- t:validate="required,minlength=3" t:value="user.mail" size="30" /></p>
+ <p><t:label for="isSuperAdmin" />: <input t:type="checkbox"
+ t:id="isSuperAdmin" t:value="user.superAdmin" /></p>
- <h1 class="Title">${message:groups}</h1>
-
- <table class="Large">
- <tr class="First">
- <td>${message:name}</td>
- <td>${message:add}</td>
- <td>${message:remove}</td>
- </tr>
- <tr>
- <td class="Text">Member of :</td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td>XXXXX</td>
- <td></td>
- <td><a t:type="ActionLink" t:id="removeGroup0"
- t:context="0">${message:remove}</a></td>
- </tr>
- <tr>
- <td>YYYYYY</td>
- <td></td>
- <td><a t:type="ActionLink" t:id="removeGroup1"
- t:context="0">${message:remove}</a></td>
- </tr>
- <tr>
- <td>ZZZZZZZ</td>
- <td></td>
- <td><a t:type="ActionLink" t:id="removeGroup2"
- t:context="0">${message:remove}</a></td>
- </tr>
- <tr>
- <td class="Text">Available groups :</td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td>AAAAA</td>
- <td><a t:type="ActionLink" t:id="removeGroup3"
- t:context="0">${message:add}</a></td>
- <td></td>
- </tr>
- <tr>
- <td>BBBBB</td>
- <td><a t:type="ActionLink" t:id="removeGroup4"
- t:context="0">${message:add}</a></td>
- <td></td>
- </tr>
- <tr>
- <td>CCCCCCCC</td>
- <td><a t:type="ActionLink" t:id="removeGroup5"
- t:context="0">${message:add}</a></td>
- <td></td>
- </tr>
-
- </table>
- -->
-
+ <p>${message:password} : <a t:type="ActionLink"
+ t:id="resetPassword" t:context="user.id">${message:resetPassword}</a>
+ </p>
+
<input t:type="Submit" t:value="message:submit" />
-
<a t:type="actionlink" t:id="cancel">${message:cancel}</a>
</t:form>
Modified: trunk/simexplorer-is-web/src/main/webapp/UserList.tml
===================================================================
--- trunk/simexplorer-is-web/src/main/webapp/UserList.tml 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/main/webapp/UserList.tml 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,27 +1,16 @@
<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
title="message:windowtitle">
- <t:form>
- <t:errors/>
-
- <table class="Large">
- <tr class="First">
- <td>${message:name}</td>
- <td>${message:firstname}</td>
- <td>${message:modify}</td>
- <td>${message:delete}</td>
- </tr>
-
- <!-- t:loop source="users" value="user">
- <tr>
- <td>${user.name}</td>
- <td>${user.firstName}</td>
- <td><t:pagelink page="UserEdit" context="user.id">${message:modify}</t:pagelink></td>
- <td><a t:type="ActionLink" t:id="delete" t:context="user.id">${message:delete}</a></td>
- </tr>
- </t:loop -->
- </table>
-
- </t:form>
+ <table t:type="Grid" source="users" row="user" model="model">
+ <t:parameter name="editCell">
+ <t:actionlink t:id="edit" context="user.id">${message:modify}</t:actionlink>
+ </t:parameter>
+ <t:parameter name="deleteCell">
+ <t:actionlink t:id="delete" context="user.id">${message:delete}</t:actionlink>
+ </t:parameter>
+ </table>
+
+ <t:actionlink t:id="add">${message:adduser}</t:actionlink>
+
</t:layout>
Modified: trunk/simexplorer-is-web/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/simexplorer-is-web/src/main/webapp/WEB-INF/web.xml 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/main/webapp/WEB-INF/web.xml 2008-01-16 16:56:10 UTC (rev 168)
@@ -21,27 +21,7 @@
<url-pattern>/*</url-pattern>
</filter-mapping>
- <servlet>
- <servlet-name>dwr-invoker</servlet-name>
- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>true</param-value>
- </init-param>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>dwr-invoker</servlet-name>
- <url-pattern>/js/dwr/*</url-pattern>
- </servlet-mapping>
-
- <listener>
- <listener-class>
- fr.cemagref.simexplorer.is.ui.web.ContextListener
- </listener-class>
- </listener>
-
<welcome-file-list>
- <welcome-file>index.html</welcome-file>
+ <welcome-file>ElementList</welcome-file>
</welcome-file-list>
</web-app>
\ No newline at end of file
Modified: trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.properties
===================================================================
--- trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.properties 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.properties 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,24 +1,20 @@
-abstractpage-windowtitle=Simexplorer SI
-abstractpage-pagetitle=Simexplorer SI
+layout-windowtitle=Simexplorer SI
+layout-pagetitle=Simexplorer SI
-abstractpage-menutitle=Menu
-abstractpage-menusubtitle1=Application Menu
-abstractpage-menuitem1-1=List
-abstractpage-menuitem1-2=Import
+layout-menutitle=Menu
+layout-applications=Application Menu
+layout-list=List
+layout-import=Import
-abstractpage-menusubtitle2=Administration Menu
-abstractpage-menuitem2-1=User list
-abstractpage-menuitem2-2=Add user
-abstractpage-menuitem2-3=Group list
-abstractpage-menuitem2-4=Add group
+layout-administration=Administration Menu
+layout-userlist=User list
+layout-grouplist=Group list
-abstractpage-tip=Change your navigator language to see this website in another language.
+layout-localeen=English
+layout-localefr=Français
-abstractpage-localeen=English
-abstractpage-localefr=Français
+layout-logout=Logout
-abstractpage-administration=Administration
+layout-copyright=Copyright © 2007. Code Lutin - GPL
-abstractpage-copyright=Copyright © 2007. Code Lutin - GPL
-
search=Search
\ No newline at end of file
Modified: trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml
===================================================================
--- trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml 2008-01-16 16:56:10 UTC (rev 168)
@@ -6,69 +6,75 @@
<body>
<!-- titre -->
- <h1 id="Title">${message:abstractpage-pagetitle}</h1>
+ <h1 id="Title">${message:layout-pagetitle}</h1>
<!-- barre -->
<div id="Header">
<div class="Left">
- [<a t:type="actionlink" t:id="switchLocaleEn">${message:abstractpage-localeen}</a>]
+ [<a t:type="actionlink" t:id="switchLocaleEn">${message:layout-localeen}</a>]
-
- [<a t:type="actionlink" t:id="switchLocaleFr">${message:abstractpage-localefr}</a>]
- </div>
- <div class="Right">
- <!--
- <t:if test="administrator">
- <a t:type="actionlink" t:id="administration">${message:abstractpage-administration}</a>
- </t:if>
- -->
- </div>
-
+ [<a t:type="actionlink" t:id="switchLocaleFr">${message:layout-localefr}</a>]
+ </div>
+ <t:if test="logged">
+ <div class="Right">
+ ${loginName} [<a t:type="actionlink" t:id="logout">${message:layout-logout}</a>]
+ </div>
+ </t:if>
</div>
- <div id="Menu" class="">
- <!-- menu -->
- <h1 class="tab">${message:abstractpage-menutitle}</h1>
- <div id="tabMenu">
+ <t:if test="logged">
+
+ <div id="Menu" class="">
+
+ <!-- menu -->
+ <h1 class="tab">${message:layout-menutitle}</h1>
+ <div id="tabMenu">
+
+ <h2 class="Title">${message:layout-applications}</h2>
+ <menu class="menu">
+ <li>
+ <t:actionlink t:id="applicationList">${message:layout-list}</t:actionlink>
+ </li>
+ <li><t:pagelink page="ApplicationImport">${message:layout-import}</t:pagelink></li>
+ </menu>
+
+ <t:if test="administrator">
+
+ <h2 class="Title">${message:layout-administration}</h2>
+ <menu class="menu">
+ <t:if test="superadministrator">
+ <li><t:pagelink page="UserList">${message:layout-userlist}</t:pagelink></li>
+ </t:if>
+ <li><t:pagelink page="GroupList">${message:layout-grouplist}</t:pagelink></li>
+ </menu>
+
+ </t:if>
+
+ </div>
- <h2 class="Title">${message:abstractpage-menusubtitle1}</h2>
- <menu class="menu">
- <li>
- <t:actionlink t:id="applicationList">${message:abstractpage-menuitem1-1}</t:actionlink>
- </li>
- <li><t:pagelink page="ApplicationImport">${message:abstractpage-menuitem1-2}</t:pagelink></li>
- </menu>
+ <!-- menu -->
+ <h1 class="tab">${message:search}</h1>
+ <div id="tabMenu">
+
+ <t:form>
+ <t:errors/>
+ <h2 class="Title"><t:label for="searchField"/>:</h2>
+ <input t:type="TextField" t:id="searchField" t:value="searchText" t:validate="required,minlength=3" size="30"/>
+ <input type="submit" value="${message:search}"/>
+ </t:form>
+
+ </div>
- <!-- h2 class="Title">${message:abstractpage-menusubtitle2}</h2>
- <menu class="menu">
- <li><t:pagelink page="UserList">${message:abstractpage-menuitem2-1}</t:pagelink></li>
- <li><t:pagelink page="UserEdit" context="-1">${message:abstractpage-menuitem2-2}</t:pagelink></li>
- <li><t:pagelink page="GroupList">${message:abstractpage-menuitem2-3}</t:pagelink></li>
- <li><t:pagelink page="GroupEdit" context="-1">${message:abstractpage-menuitem2-4}</t:pagelink></li>
- </menu -->
-
</div>
- <!-- menu -->
- <h1 class="tab">${message:search}</h1>
- <div id="tabMenu">
-
- <t:form>
- <t:errors/>
- <h2 class="Title"><t:label for="searchField"/>:</h2>
- <input t:type="TextField" t:id="searchField" t:value="searchText" t:validate="required,minlength=3" size="30"/>
- <input type="submit" value="${message:search}"/>
- </t:form>
-
- </div>
-
- </div>
+ </t:if>
<div id="Content">
<!-- main template here -->
<t:body/>
</div>
- <div id="FooterAdd">${message:abstractpage-copyright}
+ <div id="FooterAdd">${message:layout-copyright}
</div>
</body>
</html>
\ No newline at end of file
Deleted: trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout_fr.properties
===================================================================
--- trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout_fr.properties 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout_fr.properties 2008-01-16 16:56:10 UTC (rev 168)
@@ -1,22 +0,0 @@
-abstractpage-windowtitle=Simexplorer SI
-abstractpage-pagetitle=Simexplorer SI
-
-abstractpage-menutitle=Menu
-abstractpage-menusubtitle1=Application Menu
-abstractpage-menuitem1-1=List
-abstractpage-menuitem1-2=Import
-
-abstractpage-menusubtitle2=Administration Menu
-abstractpage-menuitem2-1=User list
-abstractpage-menuitem2-2=Add user
-abstractpage-menuitem2-3=Group list
-abstractpage-menuitem2-4=Add group
-
-abstractpage-tip=Change your navigator language to see this website in another language.
-
-abstractpage-localeen=English
-abstractpage-localefr=Français
-
-abstractpage-administration=Administration
-
-abstractpage-copyright=Copyright © 2007. Code Lutin - GPL
Added: trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/Login.properties
===================================================================
--- trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/Login.properties (rev 0)
+++ trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/Login.properties 2008-01-16 16:56:10 UTC (rev 168)
@@ -0,0 +1,4 @@
+windowtitle=Login
+user=User
+password=Password
+login=Login
Modified: trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.properties
===================================================================
--- trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.properties 2008-01-16 16:55:22 UTC (rev 167)
+++ trunk/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.properties 2008-01-16 16:56:10 UTC (rev 168)
@@ -5,4 +5,6 @@
add=Add
remove=Remove
submit=Submit
-cancel=Cancel
\ No newline at end of file
+cancel=Cancel
+password=Password
+resetPassword=Reset password
\ No newline at end of file
1
0
r167 - in trunk: simexplorer-is simexplorer-is-entities simexplorer-is-service simexplorer-is-service-ear simexplorer-is-storage simexplorer-is-web
by glandais@users.labs.libre-entreprise.org 16 Jan '08
by glandais@users.labs.libre-entreprise.org 16 Jan '08
16 Jan '08
Author: glandais
Date: 2008-01-16 16:55:22 +0000 (Wed, 16 Jan 2008)
New Revision: 167
Added:
trunk/simexplorer-is-entities/profiles.xml
trunk/simexplorer-is-service-ear/profiles.xml
trunk/simexplorer-is-service/profiles.xml
trunk/simexplorer-is-storage/profiles.xml
trunk/simexplorer-is-web/profiles.xml
Modified:
trunk/simexplorer-is-service-ear/deploy.sh
trunk/simexplorer-is-service-ear/pom.xml
trunk/simexplorer-is-web/pom.xml
trunk/simexplorer-is/pom.xml
Log:
Integration update
Modified: trunk/simexplorer-is/pom.xml
===================================================================
--- trunk/simexplorer-is/pom.xml 2008-01-16 16:54:21 UTC (rev 166)
+++ trunk/simexplorer-is/pom.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -131,10 +131,11 @@
</dependencies>
<modules>
+ <module>../simexplorer-is-security</module>
<module>../simexplorer-is-entities</module>
<module>../simexplorer-is-storage</module>
<module>../simexplorer-is-service</module>
<module>../simexplorer-is-web</module>
- <module>../simexplorer-is-service-ear</module>
+ <module>../simexplorer-is-ear</module>
</modules>
</project>
\ No newline at end of file
Added: trunk/simexplorer-is-entities/profiles.xml
===================================================================
--- trunk/simexplorer-is-entities/profiles.xml (rev 0)
+++ trunk/simexplorer-is-entities/profiles.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<settings>
+ <profiles>
+ <profile>
+ <id>project</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <properties>
+ <!-- id du projet du labs (buix) -->
+ <labs.id>130</labs.id>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <!--Main class in JAR
+ <maven.jar.main.class>
+ jaxx.compiler.JAXXCompiler
+ </maven.jar.main.class>
+ -->
+ </properties>
+ </profile>
+ </profiles>
+</settings>
\ No newline at end of file
Added: trunk/simexplorer-is-service/profiles.xml
===================================================================
--- trunk/simexplorer-is-service/profiles.xml (rev 0)
+++ trunk/simexplorer-is-service/profiles.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<settings>
+ <profiles>
+ <profile>
+ <id>project</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <properties>
+ <!-- id du projet du labs (buix) -->
+ <labs.id>130</labs.id>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <!--Main class in JAR
+ <maven.jar.main.class>
+ jaxx.compiler.JAXXCompiler
+ </maven.jar.main.class>
+ -->
+ </properties>
+ </profile>
+ </profiles>
+</settings>
\ No newline at end of file
Modified: trunk/simexplorer-is-service-ear/deploy.sh
===================================================================
--- trunk/simexplorer-is-service-ear/deploy.sh 2008-01-16 16:54:21 UTC (rev 166)
+++ trunk/simexplorer-is-service-ear/deploy.sh 2008-01-16 16:55:22 UTC (rev 167)
@@ -1 +1 @@
-mvn clean package jboss:harddeploy
+mvn -o clean package jboss:harddeploy
Modified: trunk/simexplorer-is-service-ear/pom.xml
===================================================================
--- trunk/simexplorer-is-service-ear/pom.xml 2008-01-16 16:54:21 UTC (rev 166)
+++ trunk/simexplorer-is-service-ear/pom.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -42,6 +42,12 @@
<version>0.0.1-SNAPSHOT</version>
<type>ejb</type>
</dependency>
+ <dependency>
+ <groupId>simexplorer-is</groupId>
+ <artifactId>simexplorer-is-security</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <type>ejb</type>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Added: trunk/simexplorer-is-service-ear/profiles.xml
===================================================================
--- trunk/simexplorer-is-service-ear/profiles.xml (rev 0)
+++ trunk/simexplorer-is-service-ear/profiles.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<settings>
+ <profiles>
+ <profile>
+ <id>project</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <properties>
+ <!-- id du projet du labs (buix) -->
+ <labs.id>130</labs.id>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <!--Main class in JAR
+ <maven.jar.main.class>
+ jaxx.compiler.JAXXCompiler
+ </maven.jar.main.class>
+ -->
+ </properties>
+ </profile>
+ </profiles>
+</settings>
\ No newline at end of file
Added: trunk/simexplorer-is-storage/profiles.xml
===================================================================
--- trunk/simexplorer-is-storage/profiles.xml (rev 0)
+++ trunk/simexplorer-is-storage/profiles.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<settings>
+ <profiles>
+ <profile>
+ <id>project</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <properties>
+ <!-- id du projet du labs (buix) -->
+ <labs.id>130</labs.id>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <!--Main class in JAR
+ <maven.jar.main.class>
+ jaxx.compiler.JAXXCompiler
+ </maven.jar.main.class>
+ -->
+ </properties>
+ </profile>
+ </profiles>
+</settings>
\ No newline at end of file
Modified: trunk/simexplorer-is-web/pom.xml
===================================================================
--- trunk/simexplorer-is-web/pom.xml 2008-01-16 16:54:21 UTC (rev 166)
+++ trunk/simexplorer-is-web/pom.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
-
+
<groupId>simexplorer-is</groupId>
<artifactId>simexplorer-is-web</artifactId>
<name>Web</name>
-
+
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<description></description>
@@ -18,39 +18,51 @@
<build>
<plugins>
+ <!--WebApp in JAR -->
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>tomcat-maven-plugin</artifactId>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.0.1</version><!-- force version because maven seem to can't find automaticaly -->
<configuration>
- <server>tomcat</server>
- <url>http://localhost:18080/manager</url>
- <path>/simexplorer</path>
- <update>true</update>
+ <warSourceDirectory>
+ ${basedir}/src/main/webapp
+ </warSourceDirectory>
</configuration>
</plugin>
- <plugin><!-- clean up from war:inplace -->
- <artifactId>maven-clean-plugin</artifactId>
+
+ <!-- Run the application using "mvn jetty:run" -->
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>maven-jetty-plugin</artifactId>
<configuration>
- <filesets>
- <fileset>
- <directory>
- ${basedir}/src/main/webapp/WEB-INF/lib
- </directory>
- </fileset>
- <fileset>
- <directory>
- ${basedir}/src/main/webapp/WEB-INF/classes
- </directory>
- </fileset>
- </filesets>
+ <!-- Log to the console. -->
+ <requestLog
+ implementation="org.mortbay.jetty.NCSARequestLog">
+ <!-- This doesn't do anything for Jetty, but is a workaround for a Maven bug
+ that prevents the requestLog from being set. -->
+ <append>true</append>
+ </requestLog>
+ <connectors>
+ <connector
+ implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+ <port>9090</port>
+ <maxIdleTime>60000</maxIdleTime>
+ </connector>
+ </connectors>
</configuration>
</plugin>
+
</plugins>
</build>
<dependencies>
<dependency>
<groupId>simexplorer-is</groupId>
+ <artifactId>simexplorer-is-security</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>simexplorer-is</groupId>
<artifactId>simexplorer-is-entities</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Added: trunk/simexplorer-is-web/profiles.xml
===================================================================
--- trunk/simexplorer-is-web/profiles.xml (rev 0)
+++ trunk/simexplorer-is-web/profiles.xml 2008-01-16 16:55:22 UTC (rev 167)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<settings>
+ <profiles>
+ <profile>
+ <id>project</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <properties>
+ <!-- id du projet du labs (buix) -->
+ <labs.id>130</labs.id>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <!--Main class in JAR
+ <maven.jar.main.class>
+ jaxx.compiler.JAXXCompiler
+ </maven.jar.main.class>
+ -->
+ </properties>
+ </profile>
+ </profiles>
+</settings>
\ No newline at end of file
1
0
r166 - in trunk/simexplorer-is-security: . src src/java src/java/META-INF src/java/fr src/java/fr/cemagref src/java/fr/cemagref/simexplorer src/java/fr/cemagref/simexplorer/is src/java/fr/cemagref/simexplorer/is/security src/java/fr/cemagref/simexplorer/is/security/credentials src/java/fr/cemagref/simexplorer/is/security/dao src/java/fr/cemagref/simexplorer/is/security/entities src/java/fr/cemagref/simexplorer/is/security/service src/test src/test/fr src/test/fr/cemagref src/test/fr
by glandais@users.labs.libre-entreprise.org 16 Jan '08
by glandais@users.labs.libre-entreprise.org 16 Jan '08
16 Jan '08
Author: glandais
Date: 2008-01-16 16:54:21 +0000 (Wed, 16 Jan 2008)
New Revision: 166
Added:
trunk/simexplorer-is-security/pom.xml
trunk/simexplorer-is-security/profiles.xml
trunk/simexplorer-is-security/src/
trunk/simexplorer-is-security/src/java/
trunk/simexplorer-is-security/src/java/META-INF/
trunk/simexplorer-is-security/src/java/META-INF/orm.xml
trunk/simexplorer-is-security/src/java/META-INF/persistence.xml
trunk/simexplorer-is-security/src/java/fr/
trunk/simexplorer-is-security/src/java/fr/cemagref/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManager.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurity.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurityImpl.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Actor.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Group.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/LoginAction.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/User.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationService.java
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationServiceImpl.java
trunk/simexplorer-is-security/src/java/h2-ds.xml
trunk/simexplorer-is-security/src/site/
trunk/simexplorer-is-security/src/test/
trunk/simexplorer-is-security/src/test/fr/
trunk/simexplorer-is-security/src/test/fr/cemagref/
trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/
trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/is/
trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/is/security/
trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/is/security/test/
trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/is/security/test/SecurityTestCase.java
Modified:
trunk/simexplorer-is-security/
Log:
Initial import.
Property changes on: trunk/simexplorer-is-security
___________________________________________________________________
Name: svn:ignore
+ target
.*
Added: trunk/simexplorer-is-security/pom.xml
===================================================================
--- trunk/simexplorer-is-security/pom.xml (rev 0)
+++ trunk/simexplorer-is-security/pom.xml 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,53 @@
+<?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/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>simexplorer-is</groupId>
+ <artifactId>simexplorer-is-security</artifactId>
+ <name>Security</name>
+
+ <version>0.0.1-SNAPSHOT</version>
+ <description></description>
+ <packaging>ejb</packaging>
+
+ <parent>
+ <groupId>simexplorer-is</groupId>
+ <artifactId>simexplorer-is</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3x</artifactId>
+ <version>4.2.2.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-annotations-ejb3</artifactId>
+ <version>4.2.2.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.0.64</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jbossall-client</artifactId>
+ <version>4.2.2.GA</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: trunk/simexplorer-is-security/profiles.xml
===================================================================
--- trunk/simexplorer-is-security/profiles.xml (rev 0)
+++ trunk/simexplorer-is-security/profiles.xml 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<settings>
+ <profiles>
+ <profile>
+ <id>project</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <properties>
+ <!-- id du projet du labs (buix) -->
+ <labs.id>130</labs.id>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <!--Main class in JAR
+ <maven.jar.main.class>
+ jaxx.compiler.JAXXCompiler
+ </maven.jar.main.class>
+ -->
+ </properties>
+ </profile>
+ </profiles>
+</settings>
\ No newline at end of file
Added: trunk/simexplorer-is-security/src/java/META-INF/orm.xml
===================================================================
--- trunk/simexplorer-is-security/src/java/META-INF/orm.xml (rev 0)
+++ trunk/simexplorer-is-security/src/java/META-INF/orm.xml 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
+ version="1.0">
+
+ <persistence-unit-metadata>
+ <xml-mapping-metadata-complete />
+ </persistence-unit-metadata>
+
+ <package>fr.cemagref.simexplorer.is.security.entities</package>
+
+ <mapped-superclass class="Actor">
+ <attributes>
+ <id name="id">
+ <generated-value strategy="SEQUENCE" />
+ </id>
+ <many-to-many name="groups" target-entity="Group">
+ <cascade>
+ <cascade-all />
+ </cascade>
+ </many-to-many>
+ </attributes>
+ </mapped-superclass>
+
+ <entity class="Group">
+ <table name="GROUPS" />
+ <attributes>
+ <basic name="name"></basic>
+ <one-to-one name="owner" fetch="EAGER" />
+ </attributes>
+ </entity>
+
+ <entity class="User">
+ <table name="USERS" />
+ <attributes>
+ <basic name="login"></basic>
+ <basic name="mail"></basic>
+ <basic name="passwordHash"></basic>
+ <basic name="admin"></basic>
+ <basic name="superAdmin"></basic>
+ </attributes>
+ </entity>
+
+ <entity class="LoginAction">
+ <table name="LOGINS" />
+ <attributes>
+ <id name="id">
+ <generated-value strategy="SEQUENCE" />
+ </id>
+ <basic name="token" />
+ <basic name="time">
+ <temporal>TIME</temporal>
+ </basic>
+ <one-to-one name="loggedUser" fetch="EAGER" />
+ </attributes>
+ </entity>
+
+</entity-mappings>
Added: trunk/simexplorer-is-security/src/java/META-INF/persistence.xml
===================================================================
--- trunk/simexplorer-is-security/src/java/META-INF/persistence.xml (rev 0)
+++ trunk/simexplorer-is-security/src/java/META-INF/persistence.xml 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,30 @@
+<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_1_0.xsd"
+ version="1.0">
+ <persistence-unit name="simexploreris-security">
+
+ <!-- le fournisseur JPA est Hibernate -->
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+
+ <!-- la DataSource JTA gérée par l'environnement Java EE5 -->
+ <jta-data-source>java:/h2datasource</jta-data-source>
+
+ <mapping-file>META-INF/orm.xml</mapping-file>
+
+ <properties>
+ <!-- logs SQL Hibernate -->
+ <property name="hibernate.show_sql" value="true"/>
+ <property name="hibernate.format_sql" value="true"/>
+ <property name="use_sql_comments" value="true"/>
+ <!-- -->
+
+ <!-- le type de SGBD géré -->
+ <property name="hibernate.dialect"
+ value="org.hibernate.dialect.H2Dialect" />
+
+ <!-- recréation de toutes les tables (drop+create) au déploiement de l'unité de persistence -->
+ <property name="hibernate.hbm2ddl.auto" value="create" />
+ </properties>
+ </persistence-unit>
+</persistence>
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManager.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManager.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManager.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,8 @@
+package fr.cemagref.simexplorer.is.security.credentials;
+
+import javax.ejb.Local;
+
+ at Local
+public interface CredentialManager {
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,10 @@
+package fr.cemagref.simexplorer.is.security.credentials;
+
+import javax.ejb.Local;
+import javax.ejb.Stateless;
+
+ at Stateless(name = "CredentialManager")
+ at Local(CredentialManager.class)
+public class CredentialManagerImpl implements CredentialManager {
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurity.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurity.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurity.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,43 @@
+package fr.cemagref.simexplorer.is.security.dao;
+
+import java.util.List;
+
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.security.entities.LoginAction;
+import fr.cemagref.simexplorer.is.security.entities.User;
+
+public interface DaoSecurity {
+
+ public void saveUser(User user);
+
+ public User getUser(Integer id);
+
+ public User getUser(String login);
+
+ public User updateUser(User user);
+
+ public void deleteUser(Integer id);
+
+ public void saveGroup(Group group);
+
+ public Group getGroup(Integer id);
+
+ public Group updateGroup(Group group);
+
+ public void deleteGroup(Integer id);
+
+ public User getLoggedUser(String token);
+
+ public User loginUser(String login, String passwordHash);
+
+ public void saveToken(LoginAction loginAction);
+
+ public List<Group> getGroups();
+
+ public List<Group> getGroupsOwnedBy(User user);
+
+ public List<User> getUsers();
+
+ public List<User> getUsersOfGroup(Group group);
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurityImpl.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurityImpl.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoSecurityImpl.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,108 @@
+package fr.cemagref.simexplorer.is.security.dao;
+
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.security.entities.LoginAction;
+import fr.cemagref.simexplorer.is.security.entities.User;
+
+ at Stateless(name = "DaoSecurity")
+public class DaoSecurityImpl implements DaoSecurity {
+
+ @PersistenceContext(unitName = "simexploreris-security")
+ private EntityManager em;
+
+ public void deleteGroup(Integer id) {
+ Group g = getGroup(id);
+ if (g != null) {
+ em.remove(g);
+ }
+ }
+
+ public void deleteUser(Integer id) {
+ User u = getUser(id);
+ if (u != null) {
+ em.remove(u);
+ }
+ }
+
+ public Group getGroup(Integer id) {
+ return em.find(Group.class, id);
+ }
+
+ public User getUser(Integer id) {
+ return em.find(User.class, id);
+ }
+
+ public void saveGroup(Group group) {
+ em.persist(group);
+ }
+
+ public void saveUser(User user) {
+ em.persist(user);
+ }
+
+ public Group updateGroup(Group group) {
+ return em.merge(group);
+ }
+
+ public User updateUser(User user) {
+ return em.merge(user);
+ }
+
+ public User getLoggedUser(String token) {
+ User loggedUser = null;
+ LoginAction loginAction = (LoginAction) em.createQuery(
+ "select la from LoginAction la where la.token=:token")
+ .setParameter("token", token).getSingleResult();
+ if (loginAction != null) {
+ loggedUser = loginAction.getLoggedUser();
+ }
+ return loggedUser;
+ }
+
+ public User loginUser(String login, String passwordHash) {
+ User user = (User) em
+ .createQuery(
+ "select u from User u where u.login=:login and u.passwordHash=:passwordHash")
+ .setParameter("login", login).setParameter("passwordHash",
+ passwordHash).getSingleResult();
+ return user;
+ }
+
+ public void saveToken(LoginAction loginAction) {
+ em.persist(loginAction);
+ }
+
+ public User getUser(String login) {
+ User user = (User) em.createQuery(
+ "select u from User u where u.login=:login").setParameter(
+ "login", login).getSingleResult();
+ return user;
+ }
+
+ public List<Group> getGroups() {
+ return em.createQuery("select g from Group g").getResultList();
+ }
+
+ public List<Group> getGroupsOwnedBy(User user) {
+ return em.createQuery("select g from Group g where g.owner=:owner")
+ .setParameter("owner", user).getResultList();
+ }
+
+ public List<User> getUsers() {
+ return em.createQuery("select u from User u").getResultList();
+ }
+
+ public List<User> getUsersOfGroup(Group group) {
+ return em
+ .createQuery(
+ "select distinct u from User u where :group member of u.groups")
+ .setParameter("group", group).getResultList();
+ }
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Actor.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Actor.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Actor.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,34 @@
+package fr.cemagref.simexplorer.is.security.entities;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class Actor implements Serializable {
+
+ private static final long serialVersionUID = 813823268950750281L;
+
+ private Integer id;
+
+ private List<Group> groups;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public List<Group> getGroups() {
+ if (groups == null) {
+ groups = new ArrayList<Group>();
+ }
+ return groups;
+ }
+
+ public void setGroups(List<Group> groups) {
+ this.groups = groups;
+ }
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Group.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Group.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Group.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,25 @@
+package fr.cemagref.simexplorer.is.security.entities;
+
+public class Group extends Actor {
+
+ private static final long serialVersionUID = 7378041114780247677L;
+ private String name;
+ private User owner;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public User getOwner() {
+ return owner;
+ }
+
+ public void setOwner(User owner) {
+ this.owner = owner;
+ }
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/LoginAction.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/LoginAction.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/LoginAction.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,44 @@
+package fr.cemagref.simexplorer.is.security.entities;
+
+import java.util.Date;
+
+public class LoginAction {
+
+ private Integer id;
+ private Date time;
+ private User loggedUser;
+ private String token;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Date getTime() {
+ return time;
+ }
+
+ public void setTime(Date time) {
+ this.time = time;
+ }
+
+ public User getLoggedUser() {
+ return loggedUser;
+ }
+
+ public void setLoggedUser(User loggedUser) {
+ this.loggedUser = loggedUser;
+ }
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/User.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/User.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/User.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,52 @@
+package fr.cemagref.simexplorer.is.security.entities;
+
+public class User extends Actor {
+
+ private static final long serialVersionUID = -3031385996413945685L;
+ private String login;
+ private String mail;
+ private String passwordHash;
+ private boolean admin;
+ private boolean superAdmin;
+
+ public String getLogin() {
+ return login;
+ }
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public String getMail() {
+ return mail;
+ }
+
+ public void setMail(String mail) {
+ this.mail = mail;
+ }
+
+ public String getPasswordHash() {
+ return passwordHash;
+ }
+
+ public void setPasswordHash(String passwordHash) {
+ this.passwordHash = passwordHash;
+ }
+
+ public boolean isAdmin() {
+ return admin;
+ }
+
+ public void setAdmin(boolean admin) {
+ this.admin = admin;
+ }
+
+ public boolean isSuperAdmin() {
+ return superAdmin;
+ }
+
+ public void setSuperAdmin(boolean superAdmin) {
+ this.superAdmin = superAdmin;
+ }
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationService.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationService.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationService.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,49 @@
+package fr.cemagref.simexplorer.is.security.service;
+
+import javax.ejb.Remote;
+
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.security.entities.User;
+
+ at Remote
+public interface AuthenticationService {
+
+ public User requestAccount(String login, String mail);
+
+ public User saveUser(String login, String mail);
+
+ public void resetPassword(String login);
+
+ public void changePassword(String login, String password);
+
+ public User getUser(Integer id);
+
+ public User getUser(String login);
+
+ public User updateUser(User user);
+
+ public void deleteUser(Integer id);
+
+ public User[] getUsers();
+
+ public User[] getUsersOfGroup(Group group);
+
+ public void setUsersOfGroup(Group group, Integer[] usersInGroup);
+
+ public Group saveGroup(String name, User owner);
+
+ public Group getGroup(Integer id);
+
+ public Group updateGroup(Group group);
+
+ public void deleteGroup(Integer id);
+
+ public Group[] getGroups();
+
+ public Group[] getGroupsOwnedBy(User user);
+
+ public String loginUser(String login, String password);
+
+ public User getLoggedUser(String token);
+
+}
Added: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationServiceImpl.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationServiceImpl.java (rev 0)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/service/AuthenticationServiceImpl.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,234 @@
+package fr.cemagref.simexplorer.is.security.service;
+
+import java.security.MessageDigest;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.UUID;
+
+import javax.ejb.EJB;
+import javax.ejb.Remote;
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+
+import org.jboss.annotation.ejb.RemoteBinding;
+
+import fr.cemagref.simexplorer.is.security.dao.DaoSecurity;
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.security.entities.LoginAction;
+import fr.cemagref.simexplorer.is.security.entities.User;
+
+ at Stateless(name = "AuthenticationService")
+ at Remote(AuthenticationService.class)
+ at RemoteBinding(jndiBinding = "AuthenticationService")
+ at TransactionAttribute(TransactionAttributeType.REQUIRED)
+public class AuthenticationServiceImpl implements AuthenticationService {
+
+ @EJB
+ private DaoSecurity dao;
+
+ private void sendMail(String login, String mail, String password) {
+ /*
+ javax.mail.Session mailSession = (javax.mail.Session) new InitialContext().lookup("java:/Mail");
+ javax.mail.Message msg = new MimeMessage(mailSession);
+ msg.setRecipients(javax.mail.Message.RecipientType.TO, InternetAddress.parse("AQui at aQui.be,siplusieuradresse at hotmail.com", false));
+ msg.setSubject("This is a test");
+ msg.setContent("<html><body><h2>Helle le monde mondial des terriens " +
+ " Petit test de jboss Mail-Service" +
+ " Ne m'en voulez pas si vous recevez ce mail alors que vous nedevrez pas " +
+ " Braim " +
+ "</h2></body></html>", "text/html");
+ msg.setHeader("X-Mailer", "JavaMailer");
+ msg.setSentDate(new java.util.Date());
+ Transport.send(msg);
+ */
+ }
+
+ private String computeHash(String clearString) {
+ MessageDigest messageDigest = null;
+ try {
+ messageDigest = MessageDigest.getInstance("SHA-1");
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+ messageDigest.reset();
+ messageDigest.update(clearString.getBytes());
+ String hashedPassword = new String(messageDigest.digest());
+ return hashedPassword;
+ }
+
+ private String generatePassword() {
+ // FIXME
+ return "password";
+ }
+
+ private void removeUserFromGroup(User user, Group group) {
+ List<Group> toRemove = new ArrayList<Group>();
+ for (Group testGroup : user.getGroups()) {
+ if (testGroup.getId() == group.getId()) {
+ toRemove.add(testGroup);
+ }
+ }
+ for (Group groupToRemove : toRemove) {
+ user.getGroups().remove(groupToRemove);
+ }
+ }
+
+ public void deleteGroup(Integer id) {
+ dao.deleteGroup(id);
+ }
+
+ public void deleteUser(Integer id) {
+ dao.deleteUser(id);
+ }
+
+ public Group getGroup(Integer id) {
+ return dao.getGroup(id);
+ }
+
+ public User getUser(Integer id) {
+ return dao.getUser(id);
+ }
+
+ public User getUser(String login) {
+ return dao.getUser(login);
+ }
+
+ public Group saveGroup(String name, User owner) {
+ Group group = new Group();
+ group.setName(name);
+ group.setOwner(owner);
+ dao.saveGroup(group);
+ group = getGroup(group.getId());
+ return group;
+ }
+
+ public User saveUser(String login, String mail) {
+ User user = new User();
+ user.setLogin(login);
+ user.setMail(mail);
+ String password = generatePassword();
+ sendMail(login, mail, password);
+ String passwordHash = computeHash(password);
+ user.setPasswordHash(passwordHash);
+ user.setAdmin(false);
+ dao.saveUser(user);
+ user = getUser(user.getId());
+ return user;
+ }
+
+ public Group updateGroup(Group group) {
+ return dao.updateGroup(group);
+ }
+
+ public User updateUser(User user) {
+ return dao.updateUser(user);
+ }
+
+ public User getLoggedUser(String token) {
+ User loggedUser = dao.getLoggedUser(token);
+ return loggedUser;
+ }
+
+ public String loginUser(String login, String password) {
+ String token = null;
+ User loggedUser = dao.loginUser(login, computeHash(password));
+ if (loggedUser != null) {
+ LoginAction loginAction = new LoginAction();
+ loginAction.setLoggedUser(loggedUser);
+ loginAction.setTime(new Date());
+ loginAction.setToken(UUID.randomUUID().toString());
+ dao.saveToken(loginAction);
+ token = loginAction.getToken();
+ }
+ return token;
+ }
+
+ public User requestAccount(String login, String mail) {
+ User user = new User();
+ user.setLogin(login);
+ user.setMail(mail);
+ String password = generatePassword();
+ sendMail(login, mail, password);
+ String passwordHash = computeHash(password);
+ user.setPasswordHash(passwordHash);
+ dao.saveUser(user);
+ return user;
+ }
+
+ public void changePassword(String login, String password) {
+ User user = getUser(login);
+ String passwordHash = computeHash(password);
+ user.setPasswordHash(passwordHash);
+ dao.saveUser(user);
+ }
+
+ public void resetPassword(String login) {
+ User user = getUser(login);
+ String password = generatePassword();
+ sendMail(login, user.getMail(), password);
+ String passwordHash = computeHash(password);
+ user.setPasswordHash(passwordHash);
+ dao.saveUser(user);
+ }
+
+ public Group[] getGroups() {
+ List<Group> groups = dao.getGroups();
+ Group[] result = groups.toArray(new Group[0]);
+ return result;
+ }
+
+ public Group[] getGroupsOwnedBy(User user) {
+ return dao.getGroupsOwnedBy(user).toArray(new Group[0]);
+ }
+
+ public User[] getUsers() {
+ return dao.getUsers().toArray(new User[0]);
+ }
+
+ public User[] getUsersOfGroup(Group group) {
+ return dao.getUsersOfGroup(group).toArray(new User[0]);
+ }
+
+ public void setUsersOfGroup(Group group, Integer[] usersInGroup) {
+ List<Integer> newUsers = new ArrayList<Integer>();
+ for (int i = 0; i < usersInGroup.length; i++) {
+ newUsers.add(usersInGroup[i]);
+ }
+
+ List<Integer> usersToAdd = new ArrayList<Integer>();
+ List<Integer> usersToRemove = new ArrayList<Integer>();
+
+ List<User> users = dao.getUsersOfGroup(group);
+
+ List<Integer> currentUsers = new ArrayList<Integer>();
+ for (User user : users) {
+ currentUsers.add(user.getId());
+ }
+
+ for (Integer user : currentUsers) {
+ if (!newUsers.contains(user)) {
+ usersToRemove.add(user);
+ }
+ }
+ for (Integer user : newUsers) {
+ if (!currentUsers.contains(user)) {
+ usersToAdd.add(user);
+ }
+ }
+
+ for (Integer idUser : usersToAdd) {
+ User user = dao.getUser(idUser);
+ user.getGroups().add(group);
+ dao.saveUser(user);
+ }
+ for (Integer idUser : usersToRemove) {
+ User user = dao.getUser(idUser);
+ removeUserFromGroup(user, group);
+ dao.saveUser(user);
+ }
+ }
+
+}
Added: trunk/simexplorer-is-security/src/java/h2-ds.xml
===================================================================
--- trunk/simexplorer-is-security/src/java/h2-ds.xml (rev 0)
+++ trunk/simexplorer-is-security/src/java/h2-ds.xml 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- JBoss Server Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: postgres-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ -->
+<!-- ==================================================================== -->
+<!-- Datasource config for Postgres -->
+<!-- ==================================================================== -->
+
+
+<datasources>
+ <local-tx-datasource>
+ <jndi-name>h2datasource</jndi-name>
+ <connection-url>
+ jdbc:h2:/var/local/simexplorer/security/database
+ </connection-url>
+ <driver-class>org.h2.Driver</driver-class>
+ <user-name></user-name>
+ <password></password>
+ </local-tx-datasource>
+
+</datasources>
Added: trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/is/security/test/SecurityTestCase.java
===================================================================
--- trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/is/security/test/SecurityTestCase.java (rev 0)
+++ trunk/simexplorer-is-security/src/test/fr/cemagref/simexplorer/is/security/test/SecurityTestCase.java 2008-01-16 16:54:21 UTC (rev 166)
@@ -0,0 +1,89 @@
+package fr.cemagref.simexplorer.is.security.test;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import junit.framework.TestCase;
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.security.service.AuthenticationService;
+
+public class SecurityTestCase extends TestCase {
+
+ AuthenticationService authenticationService = null;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ Properties properties = (Properties) System.getProperties().clone();
+ properties.put("java.naming.provider.url", "jnp://localhost:1099");
+ properties.put("java.naming.factory.initial",
+ "org.jnp.interfaces.NamingContextFactory");
+ properties.put("java.naming.factory.url.pkgs", "org.jnp.interfaces");
+
+ Context context = new InitialContext(properties);
+ authenticationService = (AuthenticationService) context
+ .lookup("AuthenticationService");
+
+ }
+
+ public void testSecurityEntities() {
+ User[] simpleUsers = new User[20];
+ for (int i = 0; i < 20; i++) {
+ simpleUsers[i] = authenticationService.saveUser("user" + i,
+ "landais+simtest at codelutin.com");
+ simpleUsers[i].setAdmin(false);
+ simpleUsers[i].setSuperAdmin(false);
+ authenticationService.updateUser(simpleUsers[i]);
+ }
+
+ User[] adminUsers = new User[4];
+ Group[] groups = new Group[4];
+ for (int i = 0; i < 4; i++) {
+ adminUsers[i] = authenticationService.saveUser("admin" + i,
+ "landais+simtest at codelutin.com");
+ adminUsers[i].setAdmin(true);
+ adminUsers[i].setSuperAdmin(false);
+ authenticationService.updateUser(adminUsers[i]);
+
+ groups[i] = authenticationService.saveGroup("group" + i,
+ adminUsers[i]);
+ for (int j = i * 4; j < (i * 4 + 5); j++) {
+ simpleUsers[j].getGroups().add(groups[i]);
+ authenticationService.updateUser(simpleUsers[j]);
+ }
+ }
+
+ User superAdminUser = authenticationService.saveUser("superadmin",
+ "landais+simtest at codelutin.com");
+ superAdminUser.setAdmin(true);
+ superAdminUser.setSuperAdmin(true);
+ authenticationService.updateUser(superAdminUser);
+
+ /*
+ User[] users = new User[10];
+ Group[] groups = new Group[10];
+ for (int i = 0; i < 10; i++) {
+ users[i] = authenticationService.saveUser("user" + i,
+ "user1 at abc.fr");
+ users[i].setAdmin(true);
+ users[i].setSuperAdmin(true);
+ authenticationService.updateUser(users[i]);
+ groups[i] = authenticationService.saveGroup("group" + i, users[i]);
+ }
+
+ for (int i = 0; i < 10; i++) {
+ System.out.println(users[i].getId());
+ System.out.println(groups[i].getId());
+ }
+
+ String token = authenticationService.loginUser(users[4].getLogin(),
+ "hierugheriugh");
+ User userLogged = authenticationService.getLoggedUser(token);
+
+ assertEquals(userLogged.getLogin(), users[4].getLogin());
+ */
+ }
+
+}
1
0
Author: glandais
Date: 2008-01-15 17:55:06 +0000 (Tue, 15 Jan 2008)
New Revision: 165
Added:
trunk/simexplorer-is-security/
Log:
Initial import.
1
0
Author: glandais
Date: 2008-01-14 12:46:24 +0000 (Mon, 14 Jan 2008)
New Revision: 164
Modified:
trunk/simexplorer-is/pom.xml
Log:
Modified: trunk/simexplorer-is/pom.xml
===================================================================
--- trunk/simexplorer-is/pom.xml 2008-01-14 10:35:33 UTC (rev 163)
+++ trunk/simexplorer-is/pom.xml 2008-01-14 12:46:24 UTC (rev 164)
@@ -131,10 +131,10 @@
</dependencies>
<modules>
- <module>simexplorer-is-entities</module>
- <module>simexplorer-is-storage</module>
- <module>simexplorer-is-service</module>
- <module>simexplorer-is-web</module>
- <module>simexplorer-is-service-ear</module>
+ <module>../simexplorer-is-entities</module>
+ <module>../simexplorer-is-storage</module>
+ <module>../simexplorer-is-service</module>
+ <module>../simexplorer-is-web</module>
+ <module>../simexplorer-is-service-ear</module>
</modules>
</project>
\ No newline at end of file
1
0
r163 - in trunk/simexplorer-is-web/src: . main
by glandais@users.labs.libre-entreprise.org 14 Jan '08
by glandais@users.labs.libre-entreprise.org 14 Jan '08
14 Jan '08
Author: glandais
Date: 2008-01-14 10:35:33 +0000 (Mon, 14 Jan 2008)
New Revision: 163
Added:
trunk/simexplorer-is-web/src/main/webapp/
Removed:
trunk/simexplorer-is-web/src/webapp/
Log:
Copied: trunk/simexplorer-is-web/src/main/webapp (from rev 162, trunk/simexplorer-is-web/src/webapp)
1
0