Wikitty-commits
Threads by month
- ----- 2026 -----
- August
- July
- 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
August 2012
- 3 participants
- 18 discussions
Author: tchemit
Date: 2012-08-30 16:44:42 +0200 (Thu, 30 Aug 2012)
New Revision: 1509
Url: http://nuiton.org/repositories/revision/wikitty/1509
Log:
Update mavenpom4redmine to 3.3.7.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
+++ trunk/pom.xml 2012-08-30 14:44:42 UTC (rev 1509)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.3.6</version>
+ <version>3.3.7</version>
</parent>
<!-- ************************************************************* -->
1
0
r1508 - in trunk: . wikitty-api wikitty-dto wikitty-generators wikitty-hessian-client wikitty-hessian-server wikitty-jdbc wikitty-perf-test wikitty-solr wikitty-struts
by maven-release@users.nuiton.org Aug. 24, 2012
by maven-release@users.nuiton.org Aug. 24, 2012
Aug. 24, 2012
Author: maven-release
Date: 2012-08-24 15:16:34 +0200 (Fri, 24 Aug 2012)
New Revision: 1508
Url: http://nuiton.org/repositories/revision/wikitty/1508
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/pom.xml
trunk/wikitty-api/pom.xml
trunk/wikitty-dto/pom.xml
trunk/wikitty-generators/pom.xml
trunk/wikitty-hessian-client/pom.xml
trunk/wikitty-hessian-server/pom.xml
trunk/wikitty-jdbc/pom.xml
trunk/wikitty-perf-test/pom.xml
trunk/wikitty-solr/pom.xml
trunk/wikitty-struts/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -15,7 +15,7 @@
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
<modules>
@@ -802,10 +802,10 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/wikitty-3.8</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/wikitty-3.8
+ <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk
</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/wikitty/tags/wikitty-3.8</url>
+ <url>http://www.nuiton.org/repositories/browse/wikitty/trunk</url>
</scm>
<distributionManagement>
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-api/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-dto/pom.xml
===================================================================
--- trunk/wikitty-dto/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-dto/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-generators/pom.xml
===================================================================
--- trunk/wikitty-generators/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-generators/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-hessian-client/pom.xml
===================================================================
--- trunk/wikitty-hessian-client/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-hessian-client/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-hessian-server/pom.xml
===================================================================
--- trunk/wikitty-hessian-server/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-hessian-server/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-jdbc/pom.xml
===================================================================
--- trunk/wikitty-jdbc/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-jdbc/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-perf-test/pom.xml
===================================================================
--- trunk/wikitty-perf-test/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-perf-test/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-solr/pom.xml
===================================================================
--- trunk/wikitty-solr/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-solr/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-struts/pom.xml
===================================================================
--- trunk/wikitty-struts/pom.xml 2012-08-24 13:16:31 UTC (rev 1507)
+++ trunk/wikitty-struts/pom.xml 2012-08-24 13:16:34 UTC (rev 1508)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8</version>
+ <version>3.9-SNAPSHOT</version>
</parent>
<!-- ************************************************************* -->
1
0
Author: maven-release
Date: 2012-08-24 15:16:31 +0200 (Fri, 24 Aug 2012)
New Revision: 1507
Url: http://nuiton.org/repositories/revision/wikitty/1507
Log:
[maven-release-plugin] copy for tag wikitty-3.8
Added:
tags/wikitty-3.8/
Property changes on: tags/wikitty-3.8
___________________________________________________________________
Added: svn:ignore
+ .settings
.project
target
*.iml
*.ipr
*.iws
Added: svn:mergeinfo
+ /branches/2.0-eugene2:164-179
1
0
r1506 - in trunk: . wikitty-api wikitty-dto wikitty-generators wikitty-hessian-client wikitty-hessian-server wikitty-jdbc wikitty-perf-test wikitty-solr wikitty-struts
by maven-release@users.nuiton.org Aug. 24, 2012
by maven-release@users.nuiton.org Aug. 24, 2012
Aug. 24, 2012
Author: maven-release
Date: 2012-08-24 15:13:30 +0200 (Fri, 24 Aug 2012)
New Revision: 1506
Url: http://nuiton.org/repositories/revision/wikitty/1506
Log:
[maven-release-plugin] prepare release wikitty-3.8
Modified:
trunk/pom.xml
trunk/wikitty-api/pom.xml
trunk/wikitty-dto/pom.xml
trunk/wikitty-generators/pom.xml
trunk/wikitty-hessian-client/pom.xml
trunk/wikitty-hessian-server/pom.xml
trunk/wikitty-jdbc/pom.xml
trunk/wikitty-perf-test/pom.xml
trunk/wikitty-solr/pom.xml
trunk/wikitty-struts/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -15,7 +15,7 @@
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
<modules>
@@ -802,10 +802,10 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk
+ <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/wikitty-3.8</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/wikitty-3.8
</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/wikitty/trunk</url>
+ <url>http://www.nuiton.org/repositories/browse/wikitty/tags/wikitty-3.8</url>
</scm>
<distributionManagement>
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-api/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-dto/pom.xml
===================================================================
--- trunk/wikitty-dto/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-dto/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-generators/pom.xml
===================================================================
--- trunk/wikitty-generators/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-generators/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-hessian-client/pom.xml
===================================================================
--- trunk/wikitty-hessian-client/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-hessian-client/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-hessian-server/pom.xml
===================================================================
--- trunk/wikitty-hessian-server/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-hessian-server/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-jdbc/pom.xml
===================================================================
--- trunk/wikitty-jdbc/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-jdbc/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-perf-test/pom.xml
===================================================================
--- trunk/wikitty-perf-test/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-perf-test/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-solr/pom.xml
===================================================================
--- trunk/wikitty-solr/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-solr/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-struts/pom.xml
===================================================================
--- trunk/wikitty-struts/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
+++ trunk/wikitty-struts/pom.xml 2012-08-24 13:13:30 UTC (rev 1506)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.8-SNAPSHOT</version>
+ <version>3.8</version>
</parent>
<!-- ************************************************************* -->
1
0
r1505 - in trunk: . wikitty-api/src/main/java/org/nuiton/wikitty/entities
by maven-release@users.nuiton.org Aug. 24, 2012
by maven-release@users.nuiton.org Aug. 24, 2012
Aug. 24, 2012
Author: maven-release
Date: 2012-08-24 15:11:02 +0200 (Fri, 24 Aug 2012)
New Revision: 1505
Url: http://nuiton.org/repositories/revision/wikitty/1505
Log:
updates to mavenpom 3.3.6 + fix license header
Modified:
trunk/pom.xml
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-23 23:33:41 UTC (rev 1504)
+++ trunk/pom.xml 2012-08-24 13:11:02 UTC (rev 1505)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.3.4</version>
+ <version>3.3.6</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2012-08-23 23:33:41 UTC (rev 1504)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2012-08-24 13:11:02 UTC (rev 1505)
@@ -6,7 +6,7 @@
* $HeadURL$
* %%
* Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
- * %%gete
+ * %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
1
0
r1504 - trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr
by bpoussin@users.nuiton.org Aug. 23, 2012
by bpoussin@users.nuiton.org Aug. 23, 2012
Aug. 23, 2012
Author: bpoussin
Date: 2012-08-24 01:33:41 +0200 (Fri, 24 Aug 2012)
New Revision: 1504
Url: http://nuiton.org/repositories/revision/wikitty/1504
Log:
amelioration du convertisseur, si une sous requete ne retourne
pas de resultat, ca ne plante plus
Modified:
trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java
Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java
===================================================================
--- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java 2012-08-23 11:06:44 UTC (rev 1503)
+++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittyQueryVisitorToSolr.java 2012-08-23 23:33:41 UTC (rev 1504)
@@ -156,17 +156,18 @@
private String escape2solr(String value) {
String result;
- if (value != null) {
+ if (StringUtils.isNotEmpty(value)) {
final String LUCENE_REPLACE_PATTERN = "\\+" + "|-" + "|&&" + "|\\|"
+ "|!" + "|\\(|\\)" + "|\\[|\\]" + "|\\{|\\}" + "|\"" + "|:";
result = value.replaceAll(LUCENE_REPLACE_PATTERN, "\\\\$0");
+ if (result.contains(" ")) {
+ result = "\"" + result + "\"";
+ }
} else {
- throw new WikittyException("Parse error, value must be not empty");
+// throw new WikittyException("Parse error, value must be not empty");
+ result = "\"\"";
}
- if (result.contains(" ")) {
- result = "\"" + result + "\"";
- }
return result;
}
1
0
r1503 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities
by bpoussin@users.nuiton.org Aug. 23, 2012
by bpoussin@users.nuiton.org Aug. 23, 2012
Aug. 23, 2012
Author: bpoussin
Date: 2012-08-23 13:06:44 +0200 (Thu, 23 Aug 2012)
New Revision: 1503
Url: http://nuiton.org/repositories/revision/wikitty/1503
Log:
ajout de setVersion pour permettre la modif d'une extension programmatiquement
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java 2012-08-23 09:04:02 UTC (rev 1502)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java 2012-08-23 11:06:44 UTC (rev 1503)
@@ -315,6 +315,10 @@
return version;
}
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
public List<String> getRequires() {
return requires;
}
1
0
r1502 - in trunk/wikitty-api/src/main/java/org/nuiton/wikitty: query services
by bpoussin@users.nuiton.org Aug. 23, 2012
by bpoussin@users.nuiton.org Aug. 23, 2012
Aug. 23, 2012
Author: bpoussin
Date: 2012-08-23 11:04:02 +0200 (Thu, 23 Aug 2012)
New Revision: 1502
Url: http://nuiton.org/repositories/revision/wikitty/1502
Log:
Evolution #1871: Change query in Security service to add condition on user logged for right management
(debut d'implantation)
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java 2012-08-23 08:23:10 UTC (rev 1501)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/query/WikittyQuery.java 2012-08-23 09:04:02 UTC (rev 1502)
@@ -34,6 +34,7 @@
import org.nuiton.wikitty.query.conditions.Condition;
import org.nuiton.wikitty.entities.Element;
import org.nuiton.wikitty.entities.ElementField;
+import org.nuiton.wikitty.query.conditions.Select;
/**
* Classe permettant de faire des recherches dans les données.
@@ -107,6 +108,15 @@
dangereuse pour les performances. */
protected int wikittyFieldSearchDepth = 0;
+ /**
+ * indique si dans les resultats on doit ajouter les id des objets que
+ * l'utilisateur ne peut pas lire.
+ * par defaut on ne remonte pas les objets que l'utilisateur ne peut pas lire.
+ * Si vrai alors on ne remonte pas les objets, si faux et que la requete
+ * n'est pas un select on remonte les objets non lisible
+ */
+ protected boolean checkAuthorisation = true;
+
/** create anonymous query */
public WikittyQuery() {
}
@@ -115,6 +125,27 @@
setCondition(condition);
}
+ /**
+ * indique si dans les resultats on doit ajouter les id des objets que
+ * l'utilisateur ne peut pas lire.
+ * par defaut on ne remonte pas les objets que l'utilisateur ne peut pas lire.
+ * Si vrai alors on ne remonte pas les objets, si faux et que la requete
+ * n'est pas un select on remonte les objets non lisible
+ *
+ * si checkAuthorisation est:
+ * <li>true alors filtre actif
+ * <li>false et requete sans select alors filtre inactif
+ * <li>false et requete select alors filtre <strong>actif</strong>
+ */
+ public boolean isCheckAuthorisation() {
+ boolean result = checkAuthorisation || condition instanceof Select;
+ return result;
+ }
+
+ public void setCheckAuthorisation(boolean checkAuthorisation) {
+ this.checkAuthorisation = checkAuthorisation;
+ }
+
public WikittyQuery copy() {
WikittyQueryVisitorCopy v = new WikittyQueryVisitorCopy();
accept(v);
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java 2012-08-23 08:23:10 UTC (rev 1501)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java 2012-08-23 09:04:02 UTC (rev 1502)
@@ -24,6 +24,11 @@
*/
package org.nuiton.wikitty.services;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -43,15 +48,9 @@
import org.nuiton.wikitty.entities.WikittyTreeNode;
import org.nuiton.wikitty.query.WikittyQuery;
import org.nuiton.wikitty.query.WikittyQueryMaker;
+import org.nuiton.wikitty.query.WikittyQueryResult;
+import org.nuiton.wikitty.query.WikittyQueryResultTreeNode;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import static org.nuiton.i18n.I18n._;
-
/**
* Cette classe gere les autorisations d'acces en utilisant les
* WikittyAuthorization, il faut donc que la personne soit loggue et donc
@@ -97,16 +96,6 @@
}
@Override
- public void addWikittyServiceListener(WikittyListener listener, ServiceListenerType type) {
- getDelegate().addWikittyServiceListener(listener, type);
- }
-
- @Override
- public void removeWikittyServiceListener(WikittyListener listener, ServiceListenerType type) {
- getDelegate().addWikittyServiceListener(listener, type);
- }
-
- @Override
public WikittyEvent clear(String securityToken) {
String userId = getUserId(securityToken);
if (isAppAdmin(securityToken, userId)) {
@@ -114,7 +103,9 @@
WikittyEvent result = getDelegate().clear(securityToken);
return result;
} else {
- throw new SecurityException(_("user %s can't clear data", userId));
+ throw new SecurityException(String.format(
+ "user %s can't clear data",
+ userId));
}
}
@@ -135,7 +126,9 @@
// peut sortir de la boucle
break;
} else {
- throw new SecurityException(_("user %s can't clear data", userId));
+ throw new SecurityException(String.format(
+ "user %s can't replay data",
+ userId));
}
}
if (e.getType().contains(WikittyEvent.WikittyEventType.PUT_WIKITTY)) {
@@ -190,7 +183,96 @@
return result;
}
+ @Override
+ public List<Wikitty> restore(String securityToken, List<String> ids) {
+ String userId = getUserId(securityToken);
+ List<Wikitty> wikitties = getDelegate().restore(securityToken, ids);
+
+ long start = TimeLog.getTime();
+ for (Wikitty wikitty : wikitties) {
+ if (wikitty != null) {
+ refuseUnauthorizedRead(securityToken, userId, wikitty);
+ }
+ }
+ timeLog.log(start, "restore");
+ return wikitties;
+ }
+
/**
+ * Ajoute dans les queries si demande (WikittyQuery#checkAuthorisation) ou si
+ * necessaire (WikittyQuery commence par un Select) une condition supplementaire
+ * qui filtre les objets remontes en fonction de ce qu'a le droit l'utilisateur
+ * courant.
+ * @param securityToken
+ * @param queries
+ * @return
+ */
+ @Override
+ public List<WikittyQueryResult<String>> findAllByQuery(
+ String securityToken, List<WikittyQuery> queries) {
+ List<WikittyQuery> qs = new ArrayList<WikittyQuery>(queries.size());
+ for (WikittyQuery q : queries) {
+ if (q != null && q.isCheckAuthorisation()) {
+ q = addAuthorisationCondition(q);
+ }
+ qs.add(q);
+ }
+ return super.findAllByQuery(securityToken, qs);
+ }
+
+ /**
+ * Ajoute dans les queries si demande (WikittyQuery#checkAuthorisation) ou si
+ * necessaire (WikittyQuery commence par un Select) une condition supplementaire
+ * qui filtre les objets remontes en fonction de ce qu'a le droit l'utilisateur
+ * courant.
+ * @param securityToken
+ * @param queries
+ * @return
+ */
+ @Override
+ public List<String> findByQuery(String securityToken, List<WikittyQuery> queries) {
+ List<WikittyQuery> qs = new ArrayList<WikittyQuery>(queries.size());
+ for (WikittyQuery q : queries) {
+ if (q != null && q.isCheckAuthorisation()) {
+ q = addAuthorisationCondition(q);
+ }
+ qs.add(q);
+ }
+ return super.findByQuery(securityToken, qs);
+ }
+
+ /**
+ * Ajoute dans filter (si non null) et si demande (WikittyQuery#checkAuthorisation)
+ * une condition supplementaire qui filtre les objets remontes en fonction
+ * de ce qu'a le droit l'utilisateur courant.
+ *
+ * @param securityToken
+ * @param queries
+ * @return
+ */
+ @Override
+ public WikittyQueryResultTreeNode<String> findTreeNode(
+ String securityToken, String wikittyId, int depth, boolean count, WikittyQuery filter) {
+ if (filter != null && filter.isCheckAuthorisation()) {
+ filter = addAuthorisationCondition(filter);
+ }
+ return super.findTreeNode(securityToken, wikittyId, depth, count, filter);
+ }
+
+ /**
+ * Ajoute une condition pour filtre en plus les objets seulement lisible
+ * par l'utilisateur loggue.
+ * @param q La requete a modifier
+ * @return une nouvelle requete avec la clause en plus
+ */
+ protected WikittyQuery addAuthorisationCondition(WikittyQuery q) {
+ // FIXME poussin 20120823 a implanter, il faut trouver la bonne
+ // requete en fonction du stockage des droits dans solr.
+ // il faut donc faire un point sur le stockage des droits
+ return q;
+ }
+
+ /**
* Indique si on a bien le droit d'enregistrer tout les wikitties de la
* collection. Des que pour un wikitty on a pas les droits, une exception
* est levee.
@@ -225,7 +307,7 @@
boolean canCreate = extensionRights == null ||
canRead(securityToken, userId, null, extensionRights);
if ( ! canCreate ) {
- throw new SecurityException(_(
+ throw new SecurityException(String.format(
"user %s can't create instance of extension %s",
userId, extensionRights));
}
@@ -271,11 +353,12 @@
// Object newValue = wikitty.getFqField(fqFieldDirtyName);
// oldVersion.setFqField(fqFieldDirtyName, newValue);
// } else {
-// throw new SecurityException(_("user %s can't write field %s on wikitty %s",
+// throw new SecurityException(String.format("user %s can't write field %s on wikitty %s",
// userId, fqFieldDirtyName, wikitty));
// }
if (!canChange) {
- throw new SecurityException(_("user %s can't write field %s on wikitty %s",
+ throw new SecurityException(String.format(
+ "user %s can't write field %s on wikitty %s",
userId, fqFieldDirtyName, wikitty));
}
}
@@ -283,21 +366,6 @@
}
}
- @Override
- public List<Wikitty> restore(String securityToken, List<String> ids) {
- String userId = getUserId(securityToken);
- List<Wikitty> wikitties = getDelegate().restore(securityToken, ids);
-
- long start = TimeLog.getTime();
- for (Wikitty wikitty : wikitties) {
- if (wikitty != null) {
- refuseUnauthorizedRead(securityToken, userId, wikitty);
- }
- }
- timeLog.log(start, "restore");
- return wikitties;
- }
-
/** throw an exception if read is not allowed */
protected void refuseUnauthorizedRead( String securityToken,
String userId,
@@ -305,7 +373,7 @@
if (wikitty != null) {
for (String extensionName : wikitty.getExtensionNames()) {
if ( ! canRead(securityToken, userId, extensionName, wikitty)) {
- throw new SecurityException(_(
+ throw new SecurityException(String.format(
"user %s can't read extension %s on wikitty %s,"
+ " it may be due to a global policy on the wikitty",
userId, extensionName, wikitty));
@@ -416,7 +484,7 @@
if (wikitty != null) {
for (String extensionName : wikitty.getExtensionNames()) {
if ( ! canWrite(securityToken, userId, extensionName, wikitty)) {
- throw new SecurityException(_(
+ throw new SecurityException(String.format(
"user %s doesn't have rights on extension %s on wikitty %s",
userId, extensionName, wikitty));
}
@@ -485,7 +553,9 @@
// canWrite is true if this user can modify the field for this extension
boolean canWrite = canWrite(securityToken, userId, null, extensionAuthorisation);
if ( ! canWrite) {
- throw new SecurityException(_("user %s don't have write right for extension %s", userId, extension));
+ throw new SecurityException(String.format(
+ "user %s don't have write right for extension %s",
+ userId, extension));
}
}
}
@@ -552,7 +622,8 @@
// seul les AppAdmin on le droit a cette method
getDelegate().syncSearchEngine(securityToken);
} else {
- throw new SecurityException(_("user %s can't sync search engine",
+ throw new SecurityException(String.format(
+ "user %s can't sync search engine",
getUserId(securityToken)));
}
}
1
0
r1501 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services
by bpoussin@users.nuiton.org Aug. 23, 2012
by bpoussin@users.nuiton.org Aug. 23, 2012
Aug. 23, 2012
Author: bpoussin
Date: 2012-08-23 10:23:10 +0200 (Thu, 23 Aug 2012)
New Revision: 1501
Url: http://nuiton.org/repositories/revision/wikitty/1501
Log:
ajout d'un FIXME pour la securite
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java 2012-08-23 08:22:26 UTC (rev 1500)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java 2012-08-23 08:23:10 UTC (rev 1501)
@@ -56,6 +56,10 @@
* Last update : $Date$
* By : $Author$
*/
+// FIXME poussin 20120823 probleme de securte certain event remonte des wikitties
+// que les utilisateurs n'auraient potentiellement pas le droit de lire. Il ne faudrait
+// jamais remonter des objets mais seulement des ids. Voir l'impact sur le fonctionne
+// global avant de faire quoi que se soit
public class WikittyEvent extends EventObject {
/** serialVersionUID. */
1
0
Author: bpoussin
Date: 2012-08-23 10:22:26 +0200 (Thu, 23 Aug 2012)
New Revision: 1500
Url: http://nuiton.org/repositories/revision/wikitty/1500
Log:
renomage du fichier
Added:
trunk/src/site/rst/user/generation.rst
Removed:
trunk/src/site/rst/user/generation.rst.vm
Added: trunk/src/site/rst/user/generation.rst
===================================================================
--- trunk/src/site/rst/user/generation.rst (rev 0)
+++ trunk/src/site/rst/user/generation.rst 2012-08-23 08:22:26 UTC (rev 1500)
@@ -0,0 +1,191 @@
+.. -
+.. * #%L
+.. * Wikitty
+.. *
+.. * $Id: generation.rst.vm 1442 2012-03-05 19:01:08Z bpoussin $
+.. * $HeadURL: http://svn.nuiton.org/svn/wikitty/trunk/src/site/rst/user/generation.rst.vm $
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+
+======================================
+Générer son modèle métier vers Wikitty
+======================================
+
+Modélisation
+============
+
+Vous pouvez modéliser votre modèle métier en utilisant n'importe quel modéliseur
+UML pouvant enregistrer le modèle au format xmi (ArgoUML, Topcased,...). Les
+entités que vous souhaitez générer doivent avoir le stéréotype *entity*.
+
+Configuration Maven
+===================
+
+Pour générer le code, nous utilisons EUGene_ et son plugin Maven.
+
+Dans le pom de votre projet, rajoutez la définition du plugin::
+
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${eugeneVersion}/version>
+ <executions>
+ <execution>
+ <id>api generator</id>
+ <phase>process-sources</phase>
+ <configuration>
+ <inputs>
+ <input>zargo:src/main/xmi/:*.zargo</input>
+ <input>classpath:model:/:wikitty.objectmodel
+ </input>
+ </inputs>
+ <fullPackagePath>your.app.package</fullPackagePath>
+ <defaultPackage>your.app.package</defaultPackage>
+ <extractedPackages>
+ your.app.package,org.nuiton.wikitty
+ </extractedPackages>
+ <generatedPackages>your.app.package</generatedPackages>
+ <templates>
+ org.nuiton.wikitty.generator.WikittyMetaGenerator,
+ org.nuiton.wikitty.generator.WikittyDTOGenerator
+ </templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+Dans la section *inputs*, on spécifie le(s) modèle(s) métier::
+
+ zargo:src/main/xmi/:*.zargo
+
+ainsi que le modèle Wikitty (en cas de dépendance de votre modèle métier vers le
+modèle Wikitty).
+
+Dans la section *templates*, vous pouvez spécifier quoi générer :
+*org.nuiton.wikitty.generator.WikittyMetaGenerator* pour la génération Wikitty
+standard et *org.nuiton.wikitty.generator.WikittyDTOGenerator* pour la
+génération des DTOs si besoin (utilisation d'une UI GWT par exemple).
+
+Génération
+==========
+
+La génération est effectuée ensuite à chaque fois que vous lancez un build.
+
+Vous pourriez être étonné que le lien entre vos entités soit représenté par une
+chaîne de caractère. En fait, dans vos entité Wikitty, un lien vers un autre
+Wikitty est représenté par son identifiant qui est une chaîne de caractères.
+Ainsi, un getXXXXX vous retournera l'identifiant d'un Wikitty qu'il faudra
+récupérer en passant par le WikittyClient. Vous pouvez alors utiliser le cache
+pour limiter les appels côté serveur.
+
+Subtilités de modélisation
+==========================
+
+Dépendances vers l'API de Wikitty
+---------------------------------
+
+Il est possible de rajouter une dépendance vers un objet de l'API Wikitty (par
+example WikittyUser) en rajoutant simplement la classe dans votre modèle dans le
+package *org.nuiton.wikitty.entities*. Elle ne sera pas générée mais interviendra
+comme une autre classe de votre modèle (héritage,...).
+
+.. image:: wikittyDependency.png
+
+Arbres
+------
+
+Si vous souhaitez qu'une entité crée un arbre, vous avez juste à faire hériter
+cette entité de WikittyTreeNode (pas besoin de référence sur elle-même). De
+cette manière, la gestion de l'arbre est assurée par Wikitty, de même que
+l'indexation et la recherche.
+
+.. image:: wikittyTree.png
+
+.. _EUGene:http://maven-site.nuiton.org/eugene/
+
+Tag Value disponible
+====================
+
+L'ensemble des tags disponible se trouve dans la classe WikittyTagValue.
+
+:version: s'applique au extension, indique la version de l'extension. Il est
+ obligatoire de modifier la valeur de la version lorsque vous modifiez la
+ définition de votre extension.
+
+:alternativeName: s'applique au champs, ce tag peut etre mis pour qu'a la
+ generation un des accesseur avec un autre nom soit genere.
+
+:documentation: s'applicque au extension et au champs. Il indique la
+ documentation a mettre lors de la generation peut aussi servir de
+ documentation utilisateur a l'execution.
+
+:toString: s'applique au extension et indique la facon de representer une
+ extension textuellement. Par exemple::
+
+ %Person.lastName$s %Person.firstName$s: %Person.birthday$tm %Person.birthday$te,%Person.birthday$tY
+ Hello %Person.firstName|unknow$s
+
+In last example, if firstName field doesn't exist, unknow is used
+
+:sortOrder: s'applique au extension et indique le tri par defaut pour cette
+ extension. C'est une liste des champs dans l'importance de l'ordre de trie.
+ Il est possible d'ajouter asc ou desc apres le champs pour indique qu'il faut
+ trier en ordre croissant ou decroissant. Par exemple::
+
+ "Person.lastName asc, Person.firstName, Person.birthday desc"
+
+:Unique: s'applique au champs de type collection et indique s'il vaut
+ true que la collection ne peut pas contenir de doublon (Set) si unique
+ est false alors la collection peut contenir des doublons (List).
+
+:notNull: s'applique au champs et indique que le champs ne peut pas etre null,
+ il doit forcement avoir une valeur lors de la sauvegarde.
+
+:pattern: s'applique au champs et indique pour une String indique que le champs
+ doit respecter un certain pattern, sinon la sauvegarde echoue. Pour un numeric
+ ou une date pattern peut-etre utilise comme masque de saisie. Exemple::
+
+ on"A.*" le champs doit commencer par 'A'
+ "[0-9]+\.[0-9][0-9]" le nombre doit avoir deux chiffres apres la virgule
+
+:indexed: s'applique au champs et indique si un champs doit etre indexe ou non.
+ par defaut si ce tag value n'existe pas il vaut true. Il faut donc le
+ positionner explicitement a false si on ne veut pas indexer un champs
+
+:crypt: s'applique au champs et indique que le champs doit etre crypte avant
+ d'etre sauve et decrypter lors de la restauration, de plus le champs ne
+ sera pas indexe. Si le cryptage n'est pas possible, la sauvegarde ne se
+ fera pas (Exeption). Par exemple::
+
+ crypt=Blowfish:password
+
+:extensionAllowed: s'applique au champs de type Wikitty et indique que le champs
+ ne peut prendre comme valeur que des wikitties ayant les extensions specifiees.
+ Par exemple::
+
+ Person,Employee;Company
+ Ici il faut que l'objet ait les extensions Person et Employee ou l'extension Company
+
+:preload: s'applique au extension et indique les champs de type Wikitty qui
+ doivent etre preloade lors du chargement de cette extension. Par exemple::
+
+ preload="Company.employee,Employee.person;Company.address"
Deleted: trunk/src/site/rst/user/generation.rst.vm
===================================================================
--- trunk/src/site/rst/user/generation.rst.vm 2012-08-23 08:10:35 UTC (rev 1499)
+++ trunk/src/site/rst/user/generation.rst.vm 2012-08-23 08:22:26 UTC (rev 1500)
@@ -1,188 +0,0 @@
-.. -
-.. * #%L
-.. * Wikitty
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
-======================================
-Générer son modèle métier vers Wikitty
-======================================
-
-Modélisation
-============
-
-Vous pouvez modéliser votre modèle métier en utilisant n'importe quel modéliseur
-UML pouvant enregistrer le modèle au format xmi (ArgoUML, Topcased,...). Les
-entités que vous souhaitez générer doivent avoir le stéréotype *entity*.
-
-Configuration Maven
-===================
-
-Pour générer le code, nous utilisons EUGene_ et son plugin Maven.
-
-Dans le pom de votre projet, rajoutez la définition du plugin::
-
- <plugin>
- <groupId>org.nuiton.eugene</groupId>
- <artifactId>maven-eugene-plugin</artifactId>
- <version>${eugeneVersion}/version>
- <executions>
- <execution>
- <id>api generator</id>
- <phase>process-sources</phase>
- <configuration>
- <inputs>
- <input>zargo:src/main/xmi/:*.zargo</input>
- <input>classpath:model:/:wikitty.objectmodel
- </input>
- </inputs>
- <fullPackagePath>your.app.package</fullPackagePath>
- <defaultPackage>your.app.package</defaultPackage>
- <extractedPackages>
- your.app.package,org.nuiton.wikitty
- </extractedPackages>
- <generatedPackages>your.app.package</generatedPackages>
- <templates>
- org.nuiton.wikitty.generator.WikittyMetaGenerator,
- org.nuiton.wikitty.generator.WikittyDTOGenerator
- </templates>
- </configuration>
- <goals>
- <goal>smart-generate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
-Dans la section *inputs*, on spécifie le(s) modèle(s) métier::
-
- zargo:src/main/xmi/:*.zargo
-
-ainsi que le modèle Wikitty (en cas de dépendance de votre modèle métier vers le
-modèle Wikitty).
-
-Dans la section *templates*, vous pouvez spécifier quoi générer :
-*org.nuiton.wikitty.generator.WikittyMetaGenerator* pour la génération Wikitty
-standard et *org.nuiton.wikitty.generator.WikittyDTOGenerator* pour la
-génération des DTOs si besoin (utilisation d'une UI GWT par exemple).
-
-Génération
-==========
-
-La génération est effectuée ensuite à chaque fois que vous lancez un build.
-
-Vous pourriez être étonné que le lien entre vos entités soit représenté par une
-chaîne de caractère. En fait, dans vos entité Wikitty, un lien vers un autre
-Wikitty est représenté par son identifiant qui est une chaîne de caractères.
-Ainsi, un getXXXXX vous retournera l'identifiant d'un Wikitty qu'il faudra
-récupérer en passant par le WikittyClient. Vous pouvez alors utiliser le cache
-pour limiter les appels côté serveur.
-
-Subtilités de modélisation
-==========================
-
-Dépendances vers l'API de Wikitty
----------------------------------
-
-Il est possible de rajouter une dépendance vers un objet de l'API Wikitty (par
-example WikittyUser) en rajoutant simplement la classe dans votre modèle dans le
-package *org.nuiton.wikitty.entities*. Elle ne sera pas générée mais interviendra
-comme une autre classe de votre modèle (héritage,...).
-
-.. image:: wikittyDependency.png
-
-Arbres
-------
-
-Si vous souhaitez qu'une entité crée un arbre, vous avez juste à faire hériter
-cette entité de WikittyTreeNode (pas besoin de référence sur elle-même). De
-cette manière, la gestion de l'arbre est assurée par Wikitty, de même que
-l'indexation et la recherche.
-
-.. image:: wikittyTree.png
-
-.. _EUGene::http://maven-site.nuiton.org/eugene/
-
-Tag Value disponible
-====================
-
-L'ensemble des tags disponible se trouve dans la classe WikittyTagValue.
-
-:version: s'applique au extension, indique la version de l'extension. Il est
- obligatoire de modifier la valeur de la version lorsque vous modifiez la
- définition de votre extension.
-
-:alternativeName: s'applique au champs, ce tag peut etre mis pour qu'a la
- generation un des accesseur avec un autre nom soit genere.
-
-:documentation: s'applicque au extension et au champs. Il indique la
- documentation a mettre lors de la generation peut aussi servir de
- documentation utilisateur a l'execution.
-
-:toString: s'applique au extension et indique la facon de representer une
- extension textuellement. Par exemple::
-
- %Person.lastName$s %Person.firstName$s: %Person.birthday$tm %Person.birthday$te,%Person.birthday$tY"
- "Hello %Person.firstName|unknow$s" if firstName field doesn't exist, unknow is used
-
-:sortOrder: s'applique au extension et indique le tri par defaut pour cette
- extension. C'est une liste des champs dans l'importance de l'ordre de trie.
- Il est possible d'ajouter asc ou desc apres le champs pour indique qu'il faut
- trier en ordre croissant ou decroissant. Par exemple::
-
- "Person.lastName asc, Person.firstName, Person.birthday desc"
-
-:Unique: s'applique au champs de type collection et indique s'il vaut
- true que la collection ne peut pas contenir de doublon (Set) si unique
- est false alors la collection peut contenir des doublons (List).
-
-:notNull: s'applique au champs et indique que le champs ne peut pas etre null,
- il doit forcement avoir une valeur lors de la sauvegarde.
-
-:pattern: s'applique au champs et indique pour une String indique que le champs
- doit respecter un certain pattern, sinon la sauvegarde echoue. Pour un numeric
- ou une date pattern peut-etre utilise comme masque de saisie. Exemple::
-
- "A.*" le champs doit commencer par 'A'
- "[0-9]+\.[0-9][0-9]" le nombre doit avoir deux chiffres apres la virgule
-
-:indexed: s'applique au champs et indique si un champs doit etre indexe ou non.
- par defaut si ce tag value n'existe pas il vaut true. Il faut donc le
- positionner explicitement a false si on ne veut pas indexer un champs
-
-:crypt: s'applique au champs et indique que le champs doit etre crypte avant
- d'etre sauve et decrypter lors de la restauration, de plus le champs ne
- sera pas indexe. Si le cryptage n'est pas possible, la sauvegarde ne se
- fera pas (Exeption). Par exemple::
-
- crypt=Blowfish:password
-
-:extensionAllowed: s'applique au champs de type Wikitty et indique que le champs
- ne peut prendre comme valeur que des wikitties ayant les extensions specifiees.
- Par exemple::
-
- Person,Employee;Company
- Ici il faut que l'objet ait les extensions Person et Employee ou l'extension Company
-
-:preload: s'applique au extension et indique les champs de type Wikitty qui
- doivent etre preloade lors du chargement de cette extension. Par exemple::
-
- preload="Company.employee,Employee.person;Company.address"
1
0
r1499 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services
by bpoussin@users.nuiton.org Aug. 23, 2012
by bpoussin@users.nuiton.org Aug. 23, 2012
Aug. 23, 2012
Author: bpoussin
Date: 2012-08-23 10:10:35 +0200 (Thu, 23 Aug 2012)
New Revision: 1499
Url: http://nuiton.org/repositories/revision/wikitty/1499
Log:
refactoring de la classe
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java 2012-08-22 06:09:40 UTC (rev 1498)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthentication.java 2012-08-23 08:10:35 UTC (rev 1499)
@@ -24,19 +24,15 @@
*/
package org.nuiton.wikitty.services;
-import java.util.Arrays;
import java.util.Collections;
-import java.util.Date;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.TimeLog;
import org.nuiton.wikitty.WikittyConfigOption;
import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyImpl;
-import org.nuiton.wikitty.entities.WikittyTokenHelper;
import org.nuiton.wikitty.entities.WikittyUser;
import org.nuiton.wikitty.entities.WikittyUserHelper;
import org.nuiton.wikitty.query.WikittyQuery;
@@ -68,38 +64,64 @@
super(config, ws);
if (config != null) {
long timeToLogInfo = config.getOptionAsInt(WikittyConfigOption.
- WIKITTY_SECURITY_TIME_TO_LOG_INFO.getKey());
+ WIKITTY_SERVICE_TIME_TO_LOG_INFO.getKey());
long timeToLogWarn = config.getOptionAsInt(WikittyConfigOption.
- WIKITTY_SECURITY_TIME_TO_LOG_WARN.getKey());
+ WIKITTY_SERVICE_TIME_TO_LOG_WARN.getKey());
timeLog.setTimeToLogInfo(timeToLogInfo);
timeLog.setTimeToLogWarn(timeToLogWarn);
}
}
+ /**
+ * L'exception lever en cas de mauvais login ou mot de passe contient toujours
+ * le même message pour ne pas aider les attaquants a trouver des comptes
+ * existant.
+ *
+ * @param login le login (ne doit pas etre vide)
+ * @param password le mot de passe de l'utilisateur
+ * @return le token de securite a utiliser pour les autres appels
+ * @throws SecurityException si l'authentification echoue
+ */
@Override
public String login(String login, String password) {
long start = TimeLog.getTime();
- String tokenId;
+ if (StringUtils.isBlank(login)) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("User try to authenticate with bad blank login: '%s'", login));
+ }
+ throw new SecurityException("bad login or password");
+ }
+ // recherche de l'utilisateur
WikittyQuery criteria = new WikittyQueryMaker()
.eq(WikittyUser.FQ_FIELD_WIKITTYUSER_LOGIN, login).end();
String userId = getDelegate().findByQuery(null,
Collections.singletonList(criteria)).get(0);
if (userId == null) {
- throw new SecurityException(String.format("no such account '%s'", login));
- } else {
- Wikitty user = WikittyServiceEnhanced.restore(
- getDelegate(), null, userId);
- // check password is valid
- if (WikittyUserHelper.getPassword(user).equals(password)) {
- tokenId = getToken(user);
- } else {
- throw new SecurityException("bad login or password");
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("User try to authenticate with bad login: '%s'", login));
}
+ throw new SecurityException("bad login or password");
}
+ // on a trouver l'utilisateur on le restore pour verifier le mot de passe
+ Wikitty user = WikittyServiceEnhanced.restore(
+ getDelegate(), null, userId);
+ // check password is valid
+ if (!StringUtils.equals(WikittyUserHelper.getPassword(user), password)) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("User '%s' try to authenticate with bad password", login));
+ }
+ throw new SecurityException("bad login or password");
+ }
+
+ String tokenId = getToken(user);
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("User logged: '%s'", login));
+ }
+
timeLog.log(start, "login");
return tokenId;
}
1
0
r1498 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty
by bpoussin@users.nuiton.org Aug. 22, 2012
by bpoussin@users.nuiton.org Aug. 22, 2012
Aug. 22, 2012
Author: bpoussin
Date: 2012-08-22 08:09:40 +0200 (Wed, 22 Aug 2012)
New Revision: 1498
Url: http://nuiton.org/repositories/revision/wikitty/1498
Log:
meilleur parsing des NUMBER (BigDecimal)
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-08-15 17:48:49 UTC (rev 1497)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-08-22 06:09:40 UTC (rev 1498)
@@ -48,6 +48,8 @@
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.security.Key;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -141,6 +143,9 @@
"yyyy-MM-dd",
"yyyy-MM-dd hh:mm",
};
+
+ /** no break space, used to parse BigDecimal */
+ static final public String nbsp = new String(new int[]{160}, 0, 1);
// /** All date format parser used to convert string to date */
// static final protected DateFormat[] parserDateFormats = new DateFormat[] {
@@ -545,12 +550,39 @@
} else if (value instanceof BigDecimal) {
result = (BigDecimal) value;
} else {
+ String s = value.toString();
+ // suppression de tous les blancs pour un parsing plus sur
+ s = StringUtils.deleteWhitespace(s);
+ s = StringUtils.remove(s, nbsp);
try {
- result = new BigDecimal(value.toString());
+ // on commence par essayer par la methode la plus simple
+ result = new BigDecimal(s);
} catch (NumberFormatException eee) {
- throw new WikittyException(
- String.format("Can't convert value '%s' to numeric",
- getClass(value)), eee);
+ // on essaie avec un parse, en dernier ressort
+ // si jamais le nombre etait localise (ex: 99,987.76)
+ try {
+ DecimalFormat parser = new DecimalFormat();
+ // on veut des BigDecimal en resultat et pas un Double
+ parser.setParseBigDecimal(true);
+
+ Number n = parser.parse(s);
+ // meme si on demande au parser un BigDecimal, il retourne
+ // certaine fois un Double (NaN, Infinit, ...).
+ // mais dans ce cas la, ca revient a une erreur de parsing
+ // qui explosera avec le cast
+ result = (BigDecimal)n;
+ } catch (Exception zzz) {
+ // on fait suivre eee et non pas zzz car l'erreur initial
+ // est bien eee, zzz est juste le fallback, et certain fois
+ // on aurait un ClassCastException qui n'a rien a voir,
+ // mais on log tout de meme zzz
+ log.debug(String.format(
+ "Can't convert value '%s(%s)' to numeric, this exception is not throw but just logged",
+ value, getClass(value)), zzz);
+ throw new WikittyException(
+ String.format("Can't convert value '%s(%s)' to numeric",
+ value, getClass(value)), eee);
+ }
}
}
return result.stripTrailingZeros();
1
0
r1497 - in trunk/wikitty-api/src/main/java/org/nuiton/wikitty: . storage
by bpoussin@users.nuiton.org Aug. 15, 2012
by bpoussin@users.nuiton.org Aug. 15, 2012
Aug. 15, 2012
Author: bpoussin
Date: 2012-08-15 19:48:49 +0200 (Wed, 15 Aug 2012)
New Revision: 1497
Url: http://nuiton.org/repositories/revision/wikitty/1497
Log:
Anomalie #2258: When we have query with aggregate and use findByQuery the result is false
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineHelper.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java 2012-08-07 17:53:58 UTC (rev 1496)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java 2012-08-15 17:48:49 UTC (rev 1497)
@@ -64,6 +64,7 @@
import org.nuiton.wikitty.query.WikittyQueryMaker;
import org.nuiton.wikitty.query.WikittyQueryResult;
import org.nuiton.wikitty.query.WikittyQueryResultTreeNode;
+import org.nuiton.wikitty.query.conditions.Aggregate;
import org.nuiton.wikitty.query.conditions.Select;
import org.nuiton.wikitty.services.WikittyEvent;
import org.nuiton.wikitty.services.WikittyExtensionMigrationRegistry;
@@ -793,8 +794,13 @@
if (limitToFirst) {
for (WikittyQuery query : serviceQueries) {
- query.setOffset(0);
- query.setLimit(1);
+ // si on a une fonction d'aggreagation (SUM, MIN, ...) il ne
+ // faut pas modifier l'offset ni le limit
+ if (!(query.getCondition() instanceof Select) ||
+ ((Select)query.getCondition()).getAggregate() == null ) {
+ query.setOffset(0);
+ query.setLimit(1);
+ }
// lorsqu'on limit au premier, c'est qu'on utilise la methode
// pour retourne seulement un objet et pas un WikittyQueryResult
// on n'a donc pas a calculer les facets
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineHelper.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineHelper.java 2012-08-07 17:53:58 UTC (rev 1496)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineHelper.java 2012-08-15 17:48:49 UTC (rev 1497)
@@ -139,7 +139,15 @@
// on ne garde que ce qui est demande
if (query.getOffset() < topics.size()) {
int offset = query.getOffset();
- int last = Math.min(topics.size(), query.getOffset() + query.getLimit());
+ int limit = query.getLimit();
+
+ if (limit == Integer.MAX_VALUE) {
+ // WARNING It is necessary to substract 'offset' otherwise,
+ // there is a capacity overlow
+ limit = Integer.MAX_VALUE - offset;
+ }
+
+ int last = Math.min(topics.size(), offset + limit);
selectList = selectList.subList(offset, last);
}
1
0
r1496 - in trunk: wikitty-api/src/main/java/org/nuiton/wikitty/entities wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bpoussin@users.nuiton.org Aug. 7, 2012
by bpoussin@users.nuiton.org Aug. 7, 2012
Aug. 7, 2012
Author: bpoussin
Date: 2012-08-07 19:53:58 +0200 (Tue, 07 Aug 2012)
New Revision: 1496
Url: http://nuiton.org/repositories/revision/wikitty/1496
Log:
ajout de doc pour l'utilisation du TAG_TO_STRING pour les champs
ajout de doc pour l'utilisation du TAG_SUBTYPE pour les pourcentage
creation des accesseurs du tag toString pour les champs
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java 2012-08-07 15:46:11 UTC (rev 1495)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java 2012-08-07 17:53:58 UTC (rev 1496)
@@ -424,6 +424,13 @@
return result;
}
/**
+ * @see #TAG_TO_STRING
+ */
+ public String getToString() {
+ String result = getTagValue(TAG_TO_STRING);
+ return result;
+ }
+ /**
* @return list or null if not spcified allowed extension
* @see #TAG_ALLOWED
*/
@@ -482,4 +489,8 @@
boolean result = StringUtils.isNotBlank(getMaxQuery());
return result;
}
+ public boolean hasToString() {
+ boolean result = StringUtils.isNotBlank(getToString());
+ return result;
+ }
}
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java 2012-08-07 15:46:11 UTC (rev 1495)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java 2012-08-07 17:53:58 UTC (rev 1496)
@@ -65,6 +65,7 @@
* <li> "Hello %Person.firstName|unknow$s" if firstName field doesn't exist, unknow is used
* <p>
* <li> target: extension
+ * <li> target: field (pour surcharger le toString par defaut de l'objet pointe pour un champs en particulier)
*
* @see WikittyUtil#format
*/
@@ -112,6 +113,7 @@
* <li>"A.*" le champs doit commencer par 'A'
* <li>"[0-9]+\.[0-9][0-9]" le nombre doit avoir deux chiffres apres la virgule
* <p>
+ * Lors de l'affichage si un pattern est defini, il peut etre utilise
*
* <li> target: numeric or String field
*/
@@ -166,6 +168,7 @@
* <li> 'real' (defaut) indique que le nombre est de type reel</li>
* <li> 'integer' indique que le nombre est de type entier</li>
* <li> 'currency' indique que le nombre est de type reel et represente une somme d'argent</li>
+ * <li> 'percent' indique que le nombre est un pourcentage</li>
* <li> String
* <li> 'char' indique que la chaine ne peut qu'un caractere</li>
* <li> 'monoline' (defaut) indique que la chaine ne peut contenir qu'une ligne</li>
1
0
r1495 - in trunk: src/site/rst src/site/rst/user wikitty-api/src/site/en/rst wikitty-api/src/site/rst wikitty-generators/src/site/en/rst wikitty-generators/src/site/rst wikitty-jdbc/src/site/en/rst wikitty-jdbc/src/site/rst wikitty-solr/src/site/en/rst wikitty-solr/src/site/rst
by bpoussin@users.nuiton.org Aug. 7, 2012
by bpoussin@users.nuiton.org Aug. 7, 2012
Aug. 7, 2012
Author: bpoussin
Date: 2012-08-07 17:46:11 +0200 (Tue, 07 Aug 2012)
New Revision: 1495
Url: http://nuiton.org/repositories/revision/wikitty/1495
Log:
essaie de correction de generation de la documentation (du au nouveau parser rst)
Modified:
trunk/src/site/rst/features.rst
trunk/src/site/rst/fonctionnement.rst
trunk/src/site/rst/index.rst
trunk/src/site/rst/user/faq.rst
trunk/src/site/rst/user/hessian.rst
trunk/src/site/rst/user/migration.rst
trunk/src/site/rst/user/query.rst
trunk/src/site/rst/user/search.rst
trunk/src/site/rst/user/security.rst
trunk/wikitty-api/src/site/en/rst/index.rst
trunk/wikitty-api/src/site/rst/dataModel.rst
trunk/wikitty-api/src/site/rst/index.rst
trunk/wikitty-generators/src/site/en/rst/index.rst
trunk/wikitty-generators/src/site/rst/index.rst
trunk/wikitty-jdbc/src/site/en/rst/index.rst
trunk/wikitty-jdbc/src/site/rst/index.rst
trunk/wikitty-solr/src/site/en/rst/index.rst
trunk/wikitty-solr/src/site/rst/index.rst
Modified: trunk/src/site/rst/features.rst
===================================================================
--- trunk/src/site/rst/features.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/features.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
===============
Fonctionnalités
===============
Modified: trunk/src/site/rst/fonctionnement.rst
===================================================================
--- trunk/src/site/rst/fonctionnement.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/fonctionnement.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
=========================
Fonctionnement de Wikitty
=========================
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
=======
Wikitty
=======
@@ -101,7 +102,7 @@
Pour plus d'informations sur les différentes fonctionnalités, référez-vous à la
`page correspondante`_
-.. _page correspondante::features.html
+.. _page correspondante:features.html
Technologies
------------
Modified: trunk/src/site/rst/user/faq.rst
===================================================================
--- trunk/src/site/rst/user/faq.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/user/faq.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
=========================
FAQ - Foire aux questions
=========================
@@ -43,23 +44,23 @@
privateGroup soit on restreint les résultats aux objets dont le reader n'est pas
le privateGroup::
-// Récupère le privateGroup (méthode métier)
-WikittyGroup privateGroup = getPrivateGroup();
+ // Récupère le privateGroup (méthode métier)
+ WikittyGroup privateGroup = getPrivateGroup();
-// Récupère l'utilisateur authentifié
-WikittyUser user = wikittyClient.getUser();
+ // Récupère l'utilisateur authentifié
+ WikittyUser user = wikittyClient.getUser();
-// Récupère les membres du privateGroup
-Set<String> members = privateGroup.getMembers();
+ // Récupère les membres du privateGroup
+ Set<String> members = privateGroup.getMembers();
-// Vérifie si l'utilisateur fait partie du privateGroup
-if (members != null && user != null &&
+ // Vérifie si l'utilisateur fait partie du privateGroup
+ if (members != null && user != null &&
members.contains(user.getWikittyId())) {
// L'utilisateur fait partie du privateGroup, on ne change rien à la
// requête.
-} else {
+ } else {
// L'utilisateur ne fait pas partie du privateGroup, on restreint
// donc les résultats de notre query.
query.neq(WikittyAuthorisation.FQ_FIELD_WIKITTYAUTHORISATION_READER,
privateGroup.getWikittyId());
-}
\ No newline at end of file
+ }
Modified: trunk/src/site/rst/user/hessian.rst
===================================================================
--- trunk/src/site/rst/user/hessian.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/user/hessian.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Hessian
=======
Modified: trunk/src/site/rst/user/migration.rst
===================================================================
--- trunk/src/site/rst/user/migration.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/user/migration.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -72,12 +72,12 @@
Attention au coût d'une indexation au vu du volume de données, il n'est pas
toujours judicieux de réindexer toutes les données. Si vous avez beaucoup
d'objet, il est potentiellement judicieux d'utiliser la pagination pour restaurer
-les objets par paquet de 1000 par exemple.
+les objets par paquet de 1000 par exemple::
int LIMIT = 1000;
int first = 0;
Client example = new Client();
- WikittyQueryResult<Client> all = wikittyClient.findAllByExample(example, first, LIMIT);;
+ WikittyQueryResult<Client> all = wikittyClient.findAllByExample(example, first, LIMIT);
while (all.size() >= LIMIT) {
wikittyClient.store(all.getAll());
first += LIMIT;
Modified: trunk/src/site/rst/user/query.rst
===================================================================
--- trunk/src/site/rst/user/query.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/user/query.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
======================
Recherche avec Wikitty
======================
Modified: trunk/src/site/rst/user/search.rst
===================================================================
--- trunk/src/site/rst/user/search.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/user/search.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
======================
Recherche avec Wikitty
======================
Modified: trunk/src/site/rst/user/security.rst
===================================================================
--- trunk/src/site/rst/user/security.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/src/site/rst/user/security.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Utiliser la sécurité dans Wikitty
=================================
Modified: trunk/wikitty-api/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-api/src/site/en/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-api/src/site/en/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty API
===========
Modified: trunk/wikitty-api/src/site/rst/dataModel.rst
===================================================================
--- trunk/wikitty-api/src/site/rst/dataModel.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-api/src/site/rst/dataModel.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
====================
Le modèle de données
====================
Modified: trunk/wikitty-api/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-api/src/site/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-api/src/site/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty API
===========
Modified: trunk/wikitty-generators/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-generators/src/site/en/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-generators/src/site/en/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty Generators
==================
@@ -29,4 +30,4 @@
EUGene_ . This generator allow you to modelise the business using different UML
modellers, such as ArgoUML or TopCased.
-.. _EUGene::http://maven-site.nuiton.org/eugene/
\ No newline at end of file
+.. _EUGene:http://maven-site.nuiton.org/eugene/
\ No newline at end of file
Modified: trunk/wikitty-generators/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-generators/src/site/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-generators/src/site/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty Generators
==================
@@ -29,4 +30,4 @@
utilisé est EUGene_ . Cela permet de modéliser le métier en utilisant différents
logiciels comme ArgoUML ou TopCased.
-.. _EUGene::http://maven-site.nuiton.org/eugene/
\ No newline at end of file
+.. _EUGene:http://maven-site.nuiton.org/eugene/
\ No newline at end of file
Modified: trunk/wikitty-jdbc/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-jdbc/src/site/en/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-jdbc/src/site/en/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty JDBC Implementation
===========================
Modified: trunk/wikitty-jdbc/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-jdbc/src/site/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-jdbc/src/site/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty JDBC Implementation
===========================
Modified: trunk/wikitty-solr/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-solr/src/site/en/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-solr/src/site/en/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty SolR Implementation
===========================
Modified: trunk/wikitty-solr/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-solr/src/site/rst/index.rst 2012-08-07 14:01:14 UTC (rev 1494)
+++ trunk/wikitty-solr/src/site/rst/index.rst 2012-08-07 15:46:11 UTC (rev 1495)
@@ -22,6 +22,7 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+
Wikitty SolR implementation
===========================
1
0
Aug. 7, 2012
Author: bpoussin
Date: 2012-08-07 16:01:14 +0200 (Tue, 07 Aug 2012)
New Revision: 1494
Url: http://nuiton.org/repositories/revision/wikitty/1494
Log:
Evolution #2232: BusinessEntity with Wikitty Field must be capable to use preload for this field
Evolution #2233: Wikitty and BusinessEntity interface must have same methods name for same behaviour
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportCSV.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportXML.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheJCS.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheSimple.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyUtilTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/entities/WikittyTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyCacheJCSTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceCajoTest.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java
trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyClient.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -350,7 +350,7 @@
// on met les objets restore dans available pour la prochaine fois
for (Wikitty wikitty : restored) {
if (wikitty != null) {
- available.put(wikitty.getId(), wikitty);
+ available.put(wikitty.getWikittyId(), wikitty);
}
}
result.addAll(restored);
@@ -377,7 +377,7 @@
// par recursion (nextPattern)
String nextPattern = StringUtils.substringAfter(preloadPattern, ",");
- String wid = w.getId();
+ String wid = w.getWikittyId();
for (String fqField : w.fieldNames()) {
// si le couple wid + fqField n'a pas encore ete traite on le fait
if (!loaded.contains(wid + "+" + fqField)) {
@@ -439,7 +439,7 @@
Map<String, Wikitty> available = new HashMap<String, Wikitty>();
for (Wikitty w : wikitties) {
if (w != null) {
- available.put(w.getId(), w);
+ available.put(w.getWikittyId(), w);
if (StringUtils.isNotBlank(patterns)) {
// lorsqu'on apelle la methode pour le store, le preloadPattern
// est vide mais il ne faut pas perdre ce qu'il y avait avant
@@ -1545,7 +1545,7 @@
}
//manually set version
- result.setVersion(entity.getWikittyVersion());
+ result.setWikittyVersion(entity.getWikittyVersion());
}
timeLog.log(start, "getWikitty");
@@ -1574,7 +1574,7 @@
if (group != null && user != null) {
result = WikittySecurityUtil.isMember(wikittyService, securityToken,
- user.getWikittyId(), group.getId());
+ user.getWikittyId(), group.getWikittyId());
}
timeLog.log(start, "isMember");
@@ -1685,7 +1685,7 @@
for(int i=0; i<entities.length; i++) {
if (wikitties[i] != null) {
// le wikitty peut etre null, par exemple a cause de la security
- wikitties[i].setVersion(entities[i].getWikittyVersion());
+ wikitties[i].setWikittyVersion(entities[i].getWikittyVersion());
}
}
} catch (Exception eee) {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -1463,7 +1463,7 @@
if (group != null && user != null) {
result = WikittySecurityUtil.isMember(wikittyService, securityToken,
- user.getWikittyId(), group.getId());
+ user.getWikittyId(), group.getWikittyId());
}
timeLog.log(start, "isMember");
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -594,7 +594,7 @@
if (value instanceof String) {
result = (String) value;
} else if (value instanceof WikittyImpl) {
- result = ((Wikitty) value).getId();
+ result = ((Wikitty) value).getWikittyId();
} else if (value instanceof BusinessEntity) {
result = ((BusinessEntity) value).getWikittyId();
} else if (value instanceof Date) {
@@ -656,7 +656,7 @@
if (value instanceof String) {
result = (String) value;
} else if (value instanceof Wikitty) {
- result = ((Wikitty) value).getId();
+ result = ((Wikitty) value).getWikittyId();
} else if (value instanceof BusinessEntity) {
result = ((BusinessEntity) value).getWikittyId();
} else {
@@ -1052,7 +1052,7 @@
}
if (upgradeData) {
- String wikittyId = wikitty.getId();
+ String wikittyId = wikitty.getWikittyId();
result = WikittyServiceEnhanced.restore(
wikittyService, securityToken, wikittyId);
}
@@ -1231,7 +1231,7 @@
@SuppressWarnings({"unchecked"})
public static <E> E getFieldValueFromFQFieldName(String fqField, BusinessEntity entity) {
- return (E) entity.getField(WikittyUtil.getExtensionNameFromFQFieldName(fqField),
+ return (E) entity.getFieldAsObject(WikittyUtil.getExtensionNameFromFQFieldName(fqField),
WikittyUtil.getFieldNameFromFQFieldName(fqField));
}
@@ -1371,7 +1371,7 @@
}
//manually set version
- result.setVersion(entity.getWikittyVersion());
+ result.setWikittyVersion(entity.getWikittyVersion());
}
return result;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportCSV.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportCSV.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportCSV.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -283,7 +283,7 @@
correctQueries = false;
}
else {
- resultValue += separator + wikitty.getId();
+ resultValue += separator + wikitty.getWikittyId();
separator = ",";
}
}
@@ -339,7 +339,7 @@
String[] wikittyField = new String[extensionHeader.size()];
// first, add technical id
- wikittyField[extensionHeader.indexOf(FIELD_WIKITTY_ID)] = w.getId();
+ wikittyField[extensionHeader.indexOf(FIELD_WIKITTY_ID)] = w.getWikittyId();
// second, add technical ext list
Collection<String> extNamesCollection = w.getExtensionNames();
String extNames = StringUtils.join(extNamesCollection, ',');
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportXML.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportXML.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportExportXML.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -116,7 +116,7 @@
client.storeExtension(Collections.singleton(ext));
ext = null;
} else if ("object".equals(name)) {
- w.setVersion(objectVersion);
+ w.setWikittyVersion(objectVersion);
client.getWikittyService().store(client.getSecurityToken(),
Collections.singleton(w), true);
w = null;
@@ -179,7 +179,7 @@
// delete first ','
extensionList = extensionList.substring(1);
}
- result.write(" <object id='" + w.getId() + "' version='" + w.getVersion() + "' extensions='" + extensionList + "'>\n");
+ result.write(" <object id='" + w.getWikittyId() + "' version='" + w.getWikittyVersion() + "' extensions='" + extensionList + "'>\n");
for (String fieldName : w.fieldNames()) {
FieldType type = w.getFieldType(fieldName);
if (type.isCollection()) {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -81,11 +81,22 @@
/**
* Return field value for the specific extension and field.
- *
+ *
* @param ext extension
* @param fieldName field name
* @return field value
*/
+ public Object getFieldAsObject(String ext, String fieldName);
+
+ /**
+ * Return field value for the specific extension and field.
+ *
+ * @param ext extension
+ * @param fieldName field name
+ * @return field value
+ * @deprecated use getFieldAsObject
+ */
+ @Deprecated
public Object getField(String ext, String fieldName);
/**
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -78,19 +78,19 @@
@Override
public String getWikittyId() {
- String result = getWikitty().getId();
+ String result = getWikitty().getWikittyId();
return result;
}
@Override
public String getWikittyVersion() {
- String result = getWikitty().getVersion();
+ String result = getWikitty().getWikittyVersion();
return result;
}
@Override
public void setWikittyVersion(String version) {
- getWikitty().setVersion(version);
+ getWikitty().setWikittyVersion(version);
}
public void setWikitty(Wikitty wikitty) {
@@ -140,12 +140,17 @@
}
@Override
- public Object getField(String ext, String fieldName) {
+ public Object getFieldAsObject(String ext, String fieldName) {
Object result = getWikitty().getFieldAsObject(ext, fieldName);
return result;
}
@Override
+ public Object getField(String ext, String fieldName) {
+ return getFieldAsObject(ext, fieldName);
+ }
+
+ @Override
public void setField(String ext, String fieldName, Object value) {
getWikitty().setField(ext, fieldName, value);
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -29,12 +29,9 @@
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.nuiton.wikitty.generator.WikittyTagValue;
/**
* Wikitty object, containing data as map.
@@ -139,12 +136,24 @@
/**
* Get wikkity id.
- *
+ *
* @return wikytty id
+ * @deprecated use getWikittyIdNNN
*/
+ @Deprecated
String getId();
+
/**
+ * Get wikkity id.
+ *
+ * @return wikytty id
+ * @since 3.8
+ */
+ String getWikittyId();
+
+
+ /**
* Return {@code true} is wikitty is deleted.
*
* @return {@code true} is wikitty is deleted
@@ -243,6 +252,14 @@
Collection<WikittyExtension> getExtensions();
/**
+ * Retourne tous les noms de champs pour un nom d'extension donne.
+ * @param ext le nom de l'extension
+ * @return la liste des noms de champs
+ * @since 3.8
+ */
+ Collection<String> getExtensionFields(String ext);
+
+ /**
* Recherche toutes les extensions de ce wikitty qui dependent d'une
* extension particuliere
*
@@ -410,15 +427,37 @@
*/
Object getFqField(String fqFieldName);
+ /**
+ *
+ * @deprecated use getWikittyVersionNNN
+ */
+ @Deprecated
String getVersion();
/**
+ * Return wikitty version (x.y).
+ *
+ * @return wikitty version
+ * @since 3.8
+ */
+ String getWikittyVersion();
+
+ /**
* Server only used
* @param version
+ * @deprecated use setWikittyVersionNNN
*/
+ @Deprecated
void setVersion(String version);
/**
+ * Server only used
+ * @param version
+ * @since 3.8
+ */
+ void setWikittyVersion(String version);
+
+ /**
* get the field modified after wikitty was restored
* @return a set of fully qualified field names
* @since 2.2.0
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -96,7 +96,7 @@
@Override
public void addPreloaded(Wikitty w) {
if (w != null) {
- if (!getPreloaded().containsKey(w.getId())) {
+ if (!getPreloaded().containsKey(w.getWikittyId())) {
substituteTargetWithCopy();
target.addPreloaded(w);
}
@@ -209,9 +209,13 @@
@Override
public String getId() {
- return target.getId();
+ return target.getWikittyId();
}
+ public String getWikittyId() {
+ return target.getWikittyId();
+ }
+
@Override
public boolean isDeleted() {
return target.isDeleted();
@@ -272,6 +276,12 @@
}
@Override
+ public Collection<String> getExtensionFields(String ext) {
+ Collection<String> result = target.getExtension(ext).getFieldNames();
+ return result;
+ }
+
+ @Override
public Collection<WikittyExtension> getExtensions() {
return target.getExtensions();
}
@@ -448,15 +458,26 @@
@Override
public String getVersion() {
- return target.getVersion();
+ return target.getWikittyVersion();
}
@Override
public void setVersion(String version) {
substituteTargetWithCopy();
- target.setVersion(version);
+ target.setWikittyVersion(version);
}
+ @Override
+ public String getWikittyVersion() {
+ return target.getWikittyVersion();
+ }
+
+ @Override
+ public void setWikittyVersion(String version) {
+ substituteTargetWithCopy();
+ target.setWikittyVersion(version);
+ }
+
/**
* @see org.nuiton.wikitty.Wikitty#getDirty()
*/
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -6,7 +6,7 @@
* $HeadURL$
* %%
* Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
- * %%
+ * %%gete
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
@@ -184,7 +184,7 @@
if (preloaded == null) {
preloaded = new HashMap<String, Wikitty>();
}
- this.preloaded.put(w.getId(), w);
+ this.preloaded.put(w.getWikittyId(), w);
}
}
@@ -219,8 +219,7 @@
// all time search for WikittyImpl to do copy (prevent error)
if (w instanceof WikittyCopyOnWrite) {
replaceWith(((WikittyCopyOnWrite)w).getTarget(), force);
- }
- if (force || this.getId().equals(w.getId())) {
+ } else if (force || this.getWikittyId().equals(w.getWikittyId())) {
// poussin 20120305 quid des listeners ? ne faudrait-il pas les copier aussi ?
// mais si on les copie, comment l'utilisateur sera-t-il qu'il faut les supprimer
// ne risque t-il pas d'y avoir des listeners recevant trop de notification.
@@ -260,7 +259,7 @@
if (!force) {
// we must change version after field value copy, because
// copy increment version because it use setField method
- this.version = w.getVersion();
+ this.version = w.getWikittyVersion();
this.deleteDate = w.getDeleteDate();
}
@@ -322,13 +321,18 @@
}
/*
- * @see org.nuiton.wikitty.Wikitty#getId()
+ * @see org.nuiton.wikitty.Wikitty#getWikittyId()
*/
@Override
public String getId() {
return id;
}
+ @Override
+ public String getWikittyId() {
+ return id;
+ }
+
/*
* @see org.nuiton.wikitty.Wikitty#isDeleted()
*/
@@ -498,6 +502,12 @@
return result;
}
+ @Override
+ public Collection<String> getExtensionFields(String ext) {
+ Collection<String> result = getExtension(ext).getFieldNames();
+ return result;
+ }
+
/*
* @see org.nuiton.wikitty.Wikitty#getExtensions()
*/
@@ -1029,7 +1039,7 @@
boolean result = false;
if (obj instanceof Wikitty) {
Wikitty other = (Wikitty) obj;
- result = id.equals(other.getId());
+ result = id.equals(other.getWikittyId());
}
return result;
}
@@ -1075,7 +1085,7 @@
public Object getFqField(String fqFieldName) {
Object result;
if (Element.ID.getValue().equalsIgnoreCase(fqFieldName)) {
- result = getId();
+ result = getWikittyId();
} else if (Element.ID.getValue().equalsIgnoreCase(fqFieldName)) {
result = getExtensionNames();
} else {
@@ -1085,7 +1095,7 @@
}
/*
- * @see org.nuiton.wikitty.Wikitty#getVersion()
+ * @see org.nuiton.wikitty.Wikitty#getWikittyVersion()
*/
@Override
public String getVersion() {
@@ -1093,13 +1103,23 @@
}
/*
- * @see org.nuiton.wikitty.Wikitty#setVersion(java.lang.String)
+ * @see org.nuiton.wikitty.Wikitty#setWikittyVersion(java.lang.String)
*/
@Override
public void setVersion(String version) {
this.version = version;
}
+ @Override
+ public String getWikittyVersion() {
+ return version;
+ }
+
+ @Override
+ public void setWikittyVersion(String version) {
+ this.version = version;
+ }
+
/**
* @see Wikitty#getDirty()
*/
@@ -1171,7 +1191,7 @@
@Override
public String toStringAllField() {
boolean cr = true;
- String str = "[" + getId() + ":" + getVersion() + "] {";
+ String str = "[" + getWikittyId() + ":" + getWikittyVersion() + "] {";
for ( String extName : getExtensionNames() ) {
WikittyExtension ext = getExtension(extName);
str += (cr ? "\n" : "") + "\t* " + extName + "\n";
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheJCS.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheJCS.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheJCS.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -147,9 +147,9 @@
if (Collections.disjoint(priorityExtensions,e.getExtensionNames())) {
// le wikitty ne contient pas d'extension prioritaire
// on le met dans le cache commun
- wikittyCache.put(e.getId(), e);
+ wikittyCache.put(e.getWikittyId(), e);
} else {
- priorityCache.put(e.getId(), e);
+ priorityCache.put(e.getWikittyId(), e);
}
} catch (CacheException eee) {
log.error(String.format("Can't put wikitty %s in cache", e), eee);
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheSimple.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheSimple.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyCacheSimple.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -137,9 +137,9 @@
if (Collections.disjoint(priorityExtensions, e.getExtensionNames())) {
// le wikitty ne contient pas d'extension prioritaire
// on le met dans le cache commun
- wikittyCache.put(e.getId(), e);
+ wikittyCache.put(e.getWikittyId(), e);
} else {
- priorityCache.put(e.getId(), e);
+ priorityCache.put(e.getWikittyId(), e);
}
}
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -184,7 +184,7 @@
wikitties = new LinkedHashMap<String, Wikitty>();
addType(WikittyEventType.PUT_WIKITTY);
}
- this.wikitties.put(wikitty.getId(), wikitty);
+ this.wikitties.put(wikitty.getWikittyId(), wikitty);
}
public Map<String, Date> getRemoveDate() {
@@ -270,7 +270,7 @@
public Wikitty update(Wikitty e) {
if (e != null) {
// update version
- String id = e.getId();
+ String id = e.getWikittyId();
if (type.contains(WikittyEventType.CLEAR_WIKITTY)) {
e = null;
} else {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyExtensionMigrationRename.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -84,11 +84,11 @@
public Wikitty migrate(WikittyService service, Wikitty wikitty,
WikittyExtension oldExt, WikittyExtension newExt) {
- String wikittyId = wikitty.getId();
- String wikittyVersion = wikitty.getVersion();
+ String wikittyId = wikitty.getWikittyId();
+ String wikittyVersion = wikitty.getWikittyVersion();
Wikitty result = new WikittyImpl(wikittyId);
- result.setVersion(wikittyVersion);
+ result.setWikittyVersion(wikittyVersion);
// Add all extension and replaceWith old by the new
for (WikittyExtension extension : wikitty.getExtensions()) {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -72,7 +72,7 @@
Wikitty user = proxy.findByCriteria(Search.query().eq(
WikittyUser.FQ_FIELD_WIKITTYUSER_LOGIN, login).criteria());
if (user != null) {
- userWikittyId = user.getId();
+ userWikittyId = user.getWikittyId();
}
return userWikittyId;
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAccessStat.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -179,7 +179,7 @@
Collection<String> exts = null;
if (o instanceof Wikitty) {
Wikitty w = ((Wikitty)o);
- id = w.getId();
+ id = w.getWikittyId();
exts = w.getExtensionNames();
} else if (o instanceof BusinessEntity) {
BusinessEntity e = ((BusinessEntity) o);
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthenticationAbstract.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -101,7 +101,7 @@
// on recherche si l'utilisateur n'est pas deja authentifier.
// s'il l'est on lui retourne le meme token.
WikittyQuery query = new WikittyQueryMaker()
- .eq(WikittyToken.ELEMENT_FIELD_WIKITTYTOKEN_USER, user.getId())
+ .eq(WikittyToken.ELEMENT_FIELD_WIKITTYTOKEN_USER, user.getWikittyId())
.end()
.setLimit(1);
@@ -122,7 +122,7 @@
Wikitty wikittyToken = new WikittyImpl(tokenId);
// force add extension to wikitty
WikittyTokenHelper.addExtension(wikittyToken);
- WikittyTokenHelper.setUser(wikittyToken, user.getId());
+ WikittyTokenHelper.setUser(wikittyToken, user.getWikittyId());
WikittyTokenHelper.setDate(wikittyToken, new Date());
getDelegate().store(null, Arrays.asList(wikittyToken), false);
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceAuthorisation.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -207,7 +207,7 @@
}
// usual case, a user want to store a wikitty
Wikitty oldVersion = WikittyServiceEnhanced.restore(
- getDelegate(), securityToken, wikitty.getId());
+ getDelegate(), securityToken, wikitty.getWikittyId());
Collection<String> newExtensions = new ArrayList<String>(
wikitty.getExtensionNames());
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceCached.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -207,20 +207,20 @@
w = ((WikittyCopyOnWrite) w).getTarget();
}
- Wikitty old = cache.getWikitty(w.getId());
+ Wikitty old = cache.getWikitty(w.getWikittyId());
if (old == null
- || WikittyUtil.versionGreaterThan(w.getVersion(), old.getVersion())) {
+ || WikittyUtil.versionGreaterThan(w.getWikittyVersion(), old.getWikittyVersion())) {
cache.putWikitty(w);
if (log.isTraceEnabled()) {
- log.trace("Replace cached wikitty : new version " + w.getVersion()
- + " > old version " + (old == null ? null : old.getVersion()));
+ log.trace("Replace cached wikitty : new version " + w.getWikittyVersion()
+ + " > old version " + (old == null ? null : old.getWikittyVersion()));
}
} else {
if (log.isTraceEnabled()) {
log.trace(String.format(
"Ignoring putWikittyEvent : new version %s < old version %s",
- w.getVersion(), old.getVersion()));
+ w.getWikittyVersion(), old.getWikittyVersion()));
}
}
}
@@ -385,7 +385,7 @@
// wrap new new retrieved wikitties
w = wrapWikitty(w);
- fromCache.put(w.getId(), w);
+ fromCache.put(w.getWikittyId(), w);
}
}
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -179,7 +179,7 @@
Wikitty wikittyToken = new WikittyImpl(tokenId);
// force add extension to wikitty
WikittyTokenHelper.addExtension(wikittyToken);
- WikittyTokenHelper.setUser(wikittyToken, user.getId());
+ WikittyTokenHelper.setUser(wikittyToken, user.getWikittyId());
WikittyTokenHelper.setDate(wikittyToken, new Date());
getDelegate().store(null, Arrays.asList(wikittyToken), false);
if (log.isDebugEnabled()) {
@@ -304,7 +304,7 @@
}
// usual case, a user want to store a wikitty
Wikitty oldVersion = WikittyServiceEnhanced.restore(
- getDelegate(), securityToken, wikitty.getId());
+ getDelegate(), securityToken, wikitty.getWikittyId());
Collection<String> newExtensions = new ArrayList<String>(
wikitty.getExtensionNames());
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -1340,7 +1340,7 @@
}
if (e.getType().contains(WikittyEvent.WikittyEventType.PUT_WIKITTY)) {
for (Wikitty w : e.getWikitties().values()) {
- toAddWikitty.put(w.getId(), w);
+ toAddWikitty.put(w.getWikittyId(), w);
}
}
if (e.getType().contains(WikittyEvent.WikittyEventType.REMOVE_WIKITTY)) {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -339,7 +339,7 @@
int totalResult = 0;
for (Wikitty w : wikitties) {
- String id = w.getId();
+ String id = w.getWikittyId();
Condition c = query.getCondition();
if (!w.isDeleted()) {
if (checkRestriction(this, transaction, c, w)) {
@@ -714,7 +714,7 @@
org.nuiton.wikitty.entities.Element e,
Map<String, Collection> values) {
if (e instanceof ElementId) {
- values.put(e.getValue(), Collections.singleton(w.getId()));
+ values.put(e.getValue(), Collections.singleton(w.getWikittyId()));
} else if (e instanceof ElementExtension) {
values.put(e.getValue(), w.getExtensionNames());
} else {
@@ -1358,10 +1358,10 @@
switch (restriction.getName()) {
case NOT_EQUALS:
- checked = !w.getId().equals(binOp.getValue());
+ checked = !w.getWikittyId().equals(binOp.getValue());
break;
case EQUALS:
- checked = w.getId().equals(binOp.getValue());
+ checked = w.getWikittyId().equals(binOp.getValue());
break;
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -62,12 +62,12 @@
}
String actualVersion = null;
Date deletionDate = null;
- Wikitty inMemoryWikitty = this.wikitties.get(wikitty.getId());
+ Wikitty inMemoryWikitty = this.wikitties.get(wikitty.getWikittyId());
if (inMemoryWikitty != null) {
- actualVersion = inMemoryWikitty.getVersion();
+ actualVersion = inMemoryWikitty.getWikittyVersion();
deletionDate = inMemoryWikitty.getDeleteDate();
}
- String requestedVersion = wikitty.getVersion();
+ String requestedVersion = wikitty.getWikittyVersion();
String newVersion = null;
if (force) {
// requestedVersion is never null
@@ -86,15 +86,15 @@
// no modification, continue
continue;
} else if (WikittyUtil.versionGreaterThan(actualVersion, requestedVersion)) {
- throw new WikittyObsoleteException(String.format("Your wikitty '%s' is obsolete", wikitty.getId()));
+ throw new WikittyObsoleteException(String.format("Your wikitty '%s' is obsolete", wikitty.getWikittyId()));
} else {
newVersion = WikittyUtil.incrementMajorRevision(actualVersion);
}
}
- wikitty.setVersion(newVersion);
+ wikitty.setWikittyVersion(newVersion);
wikitty.clearDirty();
try {
- this.wikitties.put(wikitty.getId(), wikitty.clone());
+ this.wikitties.put(wikitty.getWikittyId(), wikitty.clone());
} catch (CloneNotSupportedException eee) {
throw new WikittyException("Can't clone ?", eee);
}
@@ -152,7 +152,7 @@
public void scanWikitties(WikittyTransaction transaction, Scanner scanner) {
Collection<Wikitty> all = wikitties.values();
for (Wikitty wikitty : all) {
- scanner.scan(wikitty.getId());
+ scanner.scan(wikitty.getWikittyId());
}
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientAbstractTest.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -281,10 +281,10 @@
moviesNode.setParent(mediaNode.getWikittyId());
CatalogNode actionNode = new CatalogNodeImpl("Action");
actionNode.setParent(moviesNode.getWikittyId());
- actionNode.addAttachment(dieHardMovie.getId(), dnrMovie.getId());
+ actionNode.addAttachment(dieHardMovie.getWikittyId(), dnrMovie.getWikittyId());
CatalogNode biopicNode = new CatalogNodeImpl("Biopic");
biopicNode.setParent(moviesNode.getWikittyId());
- biopicNode.addAttachment(edgarMovie.getId());
+ biopicNode.addAttachment(edgarMovie.getWikittyId());
CatalogNode otherNode = new CatalogNodeImpl("Everything else");
otherNode.setParent(catalogNode.getWikittyId());
client.store(catalogNode, mediaNode, bookNode, bdNode, newsNode,
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -101,7 +101,7 @@
w.addExtension(MEDIA_EXTENSION);
w.addExtension(MOVIE_EXTENSION);
- String id = w.getId();
+ String id = w.getWikittyId();
wikittyClient.store(w);
w = wikittyClient.restore(id);
Assert.assertTrue(w.hasExtension(MOVIE_EXTENSION_NAME));
@@ -204,9 +204,9 @@
wikittyClient.store(gf1Movie, gf2Movie, gf3Movie);
List<String> ids = new ArrayList<String>();
- ids.add(gf1Movie.getId());
- ids.add(gf2Movie.getId());
- ids.add(gf3Movie.getId());
+ ids.add(gf1Movie.getWikittyId());
+ ids.add(gf2Movie.getWikittyId());
+ ids.add(gf3Movie.getWikittyId());
List<Wikitty> wikitties = wikittyClient.restore(ids);
@@ -218,10 +218,10 @@
@Test
public void testStorageRestoreSingle() throws Exception {
Wikitty w = new WikittyImpl();
- String id = w.getId();
+ String id = w.getWikittyId();
wikittyClient.store(w);
w = wikittyClient.restore(id);
- Assert.assertEquals(id, w.getId());
+ Assert.assertEquals(id, w.getWikittyId());
}
@Test
@@ -269,12 +269,12 @@
w.addToField("TestConstraint", "ext", "titi"); // titi ne doit pas s'ajouter
w = wikittyClient.store(w);
- Wikitty w2 = wikittyClient.restore(w.getId());
+ Wikitty w2 = wikittyClient.restore(w.getWikittyId());
w2.addToField("TestConstraint", "ext", "tata"); // tata ne doit pas s'ajouter
w2.addToField("TestConstraint", "ext", "toto");
wikittyClient.store(w2);
- Wikitty w3 = wikittyClient.restore(w.getId());
+ Wikitty w3 = wikittyClient.restore(w.getWikittyId());
Set<String> set = new HashSet<String>(Arrays.asList("tata", "titi", "toto"));
Assert.assertEquals(set, w3.getFieldAsSet("TestConstraint", "ext", String.class));
@@ -379,10 +379,10 @@
gf1Movie.setField(MOVIE_EXTENSION_NAME, "name", "The godfather");
gf1Movie.addToField(MOVIE_EXTENSION_NAME, "authors", "Coppola");
gf1Movie.setField(MOVIE_EXTENSION_NAME, "date", WikittyUtil.formatDate(df.parse("March 15, 1972")));
- String oldVersion = gf1Movie.getVersion();
+ String oldVersion = gf1Movie.getWikittyVersion();
Wikitty newWik = wikittyClient.store(gf1Movie);
- Assert.assertTrue(WikittyUtil.versionGreaterThan(newWik.getVersion(), oldVersion));
+ Assert.assertTrue(WikittyUtil.versionGreaterThan(newWik.getWikittyVersion(), oldVersion));
// search test
Wikitty w = new WikittyImpl();
@@ -395,7 +395,7 @@
Assert.assertEquals(w.getFieldAsString(MOVIE_EXTENSION_NAME, "name"),
resultFind.getFieldAsString(MOVIE_EXTENSION_NAME, "name"));
- Assert.assertEquals(gf1Movie.getId(), resultFind.getId());
+ Assert.assertEquals(gf1Movie.getWikittyId(), resultFind.getWikittyId());
// test equals implantation method
Assert.assertEquals(gf1Movie, resultFind);
@@ -408,12 +408,12 @@
// test to find deleted wikitty
// test if solr index is coherent with database
- WikittyQuery query1 = new WikittyQueryMaker().ideq(gf1Movie.getId()).end();
+ WikittyQuery query1 = new WikittyQueryMaker().ideq(gf1Movie.getWikittyId()).end();
Wikitty searchedWikitty1 = wikittyClient.findByQuery(Wikitty.class, query1);
Assert.assertNotNull(searchedWikitty1);
- wikittyClient.delete(gf1Movie.getId());
- Wikitty deletedObject = wikittyClient.restore(gf1Movie.getId());
+ wikittyClient.delete(gf1Movie.getWikittyId());
+ Wikitty deletedObject = wikittyClient.restore(gf1Movie.getWikittyId());
Assert.assertNull(deletedObject);
// test to find deleted wikitty
@@ -432,21 +432,21 @@
// labelisation test
Wikitty w1 = wikitties.get(0);
- WikittyLabelUtil.addLabel(wikittyClient, w1.getId(), "titi"+ts);
- WikittyLabelUtil.addLabel(wikittyClient, w1.getId(), "toto"+ts);
+ WikittyLabelUtil.addLabel(wikittyClient, w1.getWikittyId(), "titi"+ts);
+ WikittyLabelUtil.addLabel(wikittyClient, w1.getWikittyId(), "toto"+ts);
Wikitty w2 = wikitties.get(1);
- WikittyLabelUtil.addLabel(wikittyClient, w2.getId(), "tata"+ts);
- WikittyLabelUtil.addLabel(wikittyClient, w2.getId(), "titi"+ts);
+ WikittyLabelUtil.addLabel(wikittyClient, w2.getWikittyId(), "tata"+ts);
+ WikittyLabelUtil.addLabel(wikittyClient, w2.getWikittyId(), "titi"+ts);
Wikitty w3 = wikitties.get(2);
- WikittyLabelUtil.addLabel(wikittyClient, w3.getId(), "tutu"+ts);
- WikittyLabelUtil.addLabel(wikittyClient, w3.getId(), "titi"+ts);
+ WikittyLabelUtil.addLabel(wikittyClient, w3.getWikittyId(), "tutu"+ts);
+ WikittyLabelUtil.addLabel(wikittyClient, w3.getWikittyId(), "titi"+ts);
Wikitty wt = WikittyLabelUtil.findByLabel(wikittyClient, "toto"+ts );
Assert.assertEquals(w1, wt);
- Set<String> labels = WikittyLabelUtil.findAllAppliedLabels(wikittyClient, w2.getId());
+ Set<String> labels = WikittyLabelUtil.findAllAppliedLabels(wikittyClient, w2.getWikittyId());
Assert.assertEquals(new HashSet<String>(Arrays.asList("tata"+ts, "titi"+ts)), labels);
}
@@ -467,14 +467,14 @@
wikittyNodes.add( leaf.getWikitty() );
leaf.setName( "cat-"+i );
leaf.setParent( root.getWikittyId() );
- // root.addChild( leaf.getWikittyId() );
+ // root.addChild( leaf.getWikittyIdNNN() );
for ( int j = 0; j < 5; j++ ) {
WikittyTreeNodeImpl subLeaf = new WikittyTreeNodeImpl();
subLeaf.setName( "subcat-"+i+"-"+j );
subLeaf.setParent( leaf.getWikittyId() );
wikittyNodes.add( subLeaf.getWikitty() );
- // leaf.addChild( subLeaf.getWikittyId() );
+ // leaf.addChild( subLeaf.getWikittyIdNNN() );
}
}
wikittyClient.storeWikitty(wikittyNodes); // store treeNodes.
@@ -489,7 +489,7 @@
WikittyQueryResultTreeNode<WikittyTreeNode> t = wikittyClient.findTreeNode(
WikittyTreeNode.class,
- root.getWikitty().getId(), 0, false, null);
+ root.getWikitty().getWikittyId(), 0, false, null);
Assert.assertEquals("MyCategoryRoot", t.getObject().getName());
}
@@ -519,7 +519,7 @@
}
Assert.fail( "Unable to find node " + nodeName + " inside " + currentNode.getName() );
}
- currentNode.addAttachment(wikitty.getId());
+ currentNode.addAttachment(wikitty.getWikittyId());
wikittyClient.store(currentNode.getWikitty());
}
@@ -557,19 +557,19 @@
myWikitty.addExtension(WikittyTreeNodeImpl.extensions);
WikittyTreeNodeHelper.setName(myWikitty, "name");
myWikitty = wikittyClient.store(myWikitty);
- Assert.assertEquals("1.0", myWikitty.getVersion());
+ Assert.assertEquals("1.0", myWikitty.getWikittyVersion());
// store 2 : no modification
myWikitty = wikittyClient.store(myWikitty);
- Assert.assertEquals("1.0", myWikitty.getVersion());
+ Assert.assertEquals("1.0", myWikitty.getWikittyVersion());
// store 3 : modification
WikittyTreeNodeHelper.setName(myWikitty, "new name");
myWikitty = wikittyClient.store(myWikitty);
- Assert.assertEquals("2.0", myWikitty.getVersion());
+ Assert.assertEquals("2.0", myWikitty.getWikittyVersion());
// store 4 : new wikitty with same wikitty id (obsolete)
- Wikitty myNewWikitty = new WikittyImpl(myWikitty.getId());
+ Wikitty myNewWikitty = new WikittyImpl(myWikitty.getWikittyId());
myNewWikitty.addExtension(WikittyTreeNodeImpl.extensions);
WikittyTreeNodeHelper.setName(myNewWikitty, "new wikitty");
try {
@@ -586,14 +586,14 @@
WikittyEvent event = wikittyClient.getWikittyService().store(
null, Collections.singletonList(myWikitty), true);
event.update(myWikitty);
- Assert.assertEquals("3.0", myWikitty.getVersion());
+ Assert.assertEquals("3.0", myWikitty.getWikittyVersion());
// store 5 : fix version (not increased by force)
- myNewWikitty.setVersion("11.0");
+ myNewWikitty.setWikittyVersion("11.0");
event = wikittyClient.getWikittyService().store(
null, Collections.singletonList(myNewWikitty), true);
event.update(myNewWikitty);
- Assert.assertEquals("11.0", myNewWikitty.getVersion());
+ Assert.assertEquals("11.0", myNewWikitty.getWikittyVersion());
}
/**
@@ -609,13 +609,13 @@
myWikitty = wikittyClient.store(myWikitty);
// delete
- wikittyClient.delete(myWikitty.getId());
- Wikitty restoredWikitty = wikittyClient.restore(myWikitty.getId());
+ wikittyClient.delete(myWikitty.getWikittyId());
+ Wikitty restoredWikitty = wikittyClient.restore(myWikitty.getWikittyId());
Assert.assertNull(restoredWikitty);
// store again
myWikitty = wikittyClient.store(myWikitty);
- restoredWikitty = wikittyClient.restore(myWikitty.getId());
+ restoredWikitty = wikittyClient.restore(myWikitty.getWikittyId());
Assert.assertNotNull(restoredWikitty);
}
@@ -636,7 +636,7 @@
w = wikittyClient.store(w);
- Wikitty restoredWikitty = wikittyClient.restore(w.getId());
+ Wikitty restoredWikitty = wikittyClient.restore(w.getWikittyId());
Assert.assertNotNull(restoredWikitty);
Assert.assertEquals("LeBin", restoredWikitty.getFieldAsString(extName, "name"));
Assert.assertTrue(Arrays.equals(bytes, restoredWikitty.getFieldAsBytes(extName, "content")));
@@ -935,7 +935,7 @@
WikittyExtension ext = ExtensionFactory.create("test", "1")
.addField("toto", WikittyTypes.NUMERIC).extension();
Wikitty w = new WikittyImpl();
- String id = w.getId();
+ String id = w.getWikittyId();
w.addExtension(ext);
w.setField(ext.getName(), "toto", 42);
wikittyClient.store(w);
@@ -2150,8 +2150,8 @@
Wikitty treeNode = new WikittyImpl();
WikittyTreeNode treeNodeImpl = new WikittyTreeNodeImpl(treeNode);
treeNodeImpl.setName("root");
- treeNodeImpl.addAttachment(attach1.getId());
- treeNodeImpl.addAttachment(attach2.getId());
+ treeNodeImpl.addAttachment(attach1.getWikittyId());
+ treeNodeImpl.addAttachment(attach2.getWikittyId());
wikittyClient.store(treeNode);
// set resync
@@ -2187,8 +2187,8 @@
// store attachement
Wikitty attach1 = new WikittyImpl("att1");
Wikitty attach2 = new WikittyImpl("att2");
- treeNodeImpl.addAttachment(attach1.getId());
- treeNodeImpl.addAttachment(attach2.getId());
+ treeNodeImpl.addAttachment(attach1.getWikittyId());
+ treeNodeImpl.addAttachment(attach2.getWikittyId());
List<Wikitty> toStore = new ArrayList<Wikitty>();
toStore.add(attach1);
toStore.add(attach2);
@@ -2225,7 +2225,7 @@
Assert.assertEquals(1, wikittyClient.findAllByQuery(query).getTotalResult());
// delete it
- wikittyClient.delete(Collections.singleton(toDeleteWikitty.getId()));
+ wikittyClient.delete(Collections.singleton(toDeleteWikitty.getWikittyId()));
// try to look for it after deletion
Assert.assertEquals(0, wikittyClient.findAllByQuery(query).getTotalResult());
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyUtilTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyUtilTest.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyUtilTest.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -582,7 +582,7 @@
Wikitty labelWikitty = WikittyUtil.getWikitty(null,null,label);
- Assert.assertEquals(wikittyId, labelWikitty.getId());
+ Assert.assertEquals(wikittyId, labelWikitty.getWikittyId());
Assert.assertEquals(Collections.singleton("Test"),labelWikitty.getFieldAsObject(WikittyLabel.EXT_WIKITTYLABEL,WikittyLabel.FIELD_WIKITTYLABEL_LABELS));
ApplicationConfig config = WikittyConfig.getConfig();
@@ -656,8 +656,8 @@
WikittyLabelImpl labelCloned = new WikittyLabelImpl(cloned);
- Assert.assertTrue(labelWikitty.getId().equals(cloned.getId()));
- Assert.assertEquals(labelWikitty.getVersion(), cloned.getVersion());
+ Assert.assertTrue(labelWikitty.getWikittyId().equals(cloned.getWikittyId()));
+ Assert.assertEquals(labelWikitty.getWikittyVersion(), cloned.getWikittyVersion());
Assert.assertTrue(source.getWikittyId().equals(labelCloned.getWikittyId()));
Assert.assertEquals(source.getWikittyVersion(), labelCloned.getWikittyVersion());
Assert.assertEquals(source.getLabels(), labelCloned.getLabels());
@@ -673,8 +673,8 @@
WikittyLabelImpl labelCloned = new WikittyLabelImpl(cloned);
- Assert.assertFalse(labelWikitty.getId().equals(cloned.getId()));
- Assert.assertNotSame(labelWikitty.getVersion(), cloned.getVersion());
+ Assert.assertFalse(labelWikitty.getWikittyId().equals(cloned.getWikittyId()));
+ Assert.assertNotSame(labelWikitty.getWikittyVersion(), cloned.getWikittyVersion());
Assert.assertFalse(source.getWikittyId().equals(labelCloned.getWikittyId()));
Assert.assertNotSame(source.getWikittyVersion(), labelCloned.getWikittyVersion());
Assert.assertEquals(source.getLabels(), labelCloned.getLabels());
@@ -797,6 +797,11 @@
}
@Override
+ public Object getFieldAsObject(String ext, String fieldName) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
public void setField(String ext, String fieldName, Object value) {
throw new UnsupportedOperationException("Not supported yet.");
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/entities/WikittyTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/entities/WikittyTest.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/entities/WikittyTest.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -102,9 +102,9 @@
public void testWikittyId() {
Wikitty w = new WikittyImpl();
// as soon as a wikitty object is created, it got an ID.
- Assert.assertNotNull("Wikitty should got an ID", w.getId() );
+ Assert.assertNotNull("Wikitty should got an ID", w.getWikittyId() );
- Wikitty w2 = new WikittyImpl( w.getId() );
+ Wikitty w2 = new WikittyImpl( w.getWikittyId() );
// two wikitty with a similar id are equals.
Assert.assertEquals("Wikitty with same ID must be equals", w, w2);
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyCacheJCSTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyCacheJCSTest.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyCacheJCSTest.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -54,7 +54,7 @@
Wikitty w = new WikittyImpl();
cache.putWikitty(w);
- Wikitty w2 = cache.getWikitty(w.getId());
+ Wikitty w2 = cache.getWikitty(w.getWikittyId());
Assert.assertEquals(w, w2);
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyExtensionMigrationTest.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -90,7 +90,7 @@
client.storeExtension(ext2);
- Wikitty w2 = client.restore(w1.getId());
+ Wikitty w2 = client.restore(w1.getWikittyId());
Assert.assertEquals("hello", w2.getFieldAsString(extensionName, "string"));
}
@@ -98,7 +98,7 @@
public Wikitty migrate(WikittyService service, Wikitty wikitty, WikittyExtension oldExt, WikittyExtension newExt) {
System.out.println(String.format("migrate %s(%s) oldExt %s newExt %s",
- wikitty.getId(), wikitty.getExtension(extensionName).getId(),
+ wikitty.getWikittyId(), wikitty.getExtension(extensionName).getId(),
oldExt.getId(), newExt.getId()));
Wikitty result = super.migrate(service, wikitty, oldExt, newExt);
@@ -106,7 +106,7 @@
result.setField(extensionName, "date", new Date());
System.out.println(String.format("done %s(%s)",
- result.getId(), result.getExtension(extensionName).getId()));
+ result.getWikittyId(), result.getExtension(extensionName).getId()));
return result;
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceCajoTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceCajoTest.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceCajoTest.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -99,7 +99,7 @@
Wikitty w = new WikittyImpl();
proxy.store(w);
- List<Wikitty> list = server.restore(null, Collections.singletonList(w.getId()));
+ List<Wikitty> list = server.restore(null, Collections.singletonList(w.getWikittyId()));
Assert.assertEquals(1, list.size());
stopServer(server);
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -716,6 +716,16 @@
throw new UnsupportedOperationException("Not supported yet.");
}*/);
+ //adding getField method
+ ObjectModelOperation getFieldAsObject = addOperation(dtoClass, "getFieldAsObject", "Object");
+ addAnnotation(dtoClass, getFieldAsObject, "Override");
+ addParameter(getFieldAsObject, "String", "ext");
+ addParameter(getFieldAsObject, "String", "fieldName");
+ setOperationBody(getFieldAsObject, ""
+/*{
+ throw new UnsupportedOperationException("Not supported yet.");
+}*/);
+
//adding setField method
ObjectModelOperation setField = addOperation(dtoClass, "setField", "void");
addAnnotation(dtoClass, setField, "Override");
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -248,11 +248,20 @@
ObjectModelModifier.STATIC);
addParameter(getterObject, "Wikitty", "wikitty");
addParameter(getterObject, "boolean", "exceptionIfNotLoaded");
- String getterObjectBody = ""
+ String getterObjectBody = "";
+ if ("wikitty".equalsIgnoreCase(attributeObjectType)) {
+ getterObjectBody = ""
/*{
+ <%=attributeObjectTypeCollectionStrict%> result = wikitty.getFieldAsWikitty<%=collectionType%>(<%=extensionVariableName%>, <%=fieldVariableName%>, exceptionIfNotLoaded);
+ return result;
+}*/;
+ } else {
+ getterObjectBody = ""
+/*{
<%=attributeObjectTypeCollectionStrict%> result = WikittyUtil.newInstance(<%=attributeObjectType%>.class, wikitty.getFieldAsWikitty<%=collectionType%>(<%=extensionVariableName%>, <%=fieldVariableName%>, exceptionIfNotLoaded));
return result;
}*/;
+ }
setOperationBody(getterObject, getterObjectBody);
//
@@ -358,15 +367,25 @@
// GETTER
//
String getterObjectName = "get" + StringUtils.capitalize(attributeName);
- ObjectModelOperation getterObject = addOperation(helper,
- getterObjectName, attributeObjectType, ObjectModelModifier.STATIC);
- addParameter(getterObject, "Wikitty", "wikitty");
- addParameter(getterObject, "boolean", "exceptionIfNotLoaded");
- setOperationBody(getterObject, ""
+ ObjectModelOperation getterObject = addOperation(helper,
+ getterObjectName, attributeObjectType, ObjectModelModifier.STATIC);
+ addParameter(getterObject, "Wikitty", "wikitty");
+ addParameter(getterObject, "boolean", "exceptionIfNotLoaded");
+ String getterObjectBody = "";
+ if ("wikitty".equalsIgnoreCase(attributeObjectType)) {
+ getterObjectBody = ""
/*{
+ <%=attributeObjectType%> value = wikitty.getFieldAsWikitty(<%=extensionVariableName%>, <%=fieldVariableName%>, exceptionIfNotLoaded);
+ return value;
+}*/;
+ } else {
+ getterObjectBody = ""
+/*{
<%=attributeObjectType%> value = WikittyUtil.newInstance(<%=attributeObjectType%>.class, wikitty.getFieldAsWikitty(<%=extensionVariableName%>, <%=fieldVariableName%>, exceptionIfNotLoaded));
return value;
-}*/);
+}*/;
+ }
+ setOperationBody(getterObject, getterObjectBody);
//
// SETTER
@@ -668,14 +687,26 @@
addParameter(getterObject, "String", "extensionName");
addParameter(getterObject, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
addParameter(getterObject, "boolean", "exceptionIfNotLoaded");
- String getterObjectBody = ""
+ String getterObjectBody = "";
+ if ("wikitty".equalsIgnoreCase(attributeObjectType)) {
+ getterObjectBody = ""
/*{
String fqfieldName = getMetaFieldName(extensionName, "<%=attributeName%>");
String extName = WikittyExtension.extractExtensionName(fqfieldName);
String fieldName = WikittyExtension.extractFieldName(fqfieldName);
+ <%=attributeObjectTypeCollectionStrict%> result = wikitty.getFieldAsWikitty<%=collectionType%>(extName, fieldName, exceptionIfNotLoaded);
+ return result;
+}*/;
+ } else {
+ getterObjectBody = ""
+/*{
+ String fqfieldName = getMetaFieldName(extensionName, "<%=attributeName%>");
+ String extName = WikittyExtension.extractExtensionName(fqfieldName);
+ String fieldName = WikittyExtension.extractFieldName(fqfieldName);
<%=attributeObjectTypeCollectionStrict%> result = WikittyUtil.newInstance(<%=attributeObjectType%>.class, wikitty.getFieldAsWikitty<%=collectionType%>(extName, fieldName, exceptionIfNotLoaded));
return result;
}*/;
+ }
setOperationBody(getterObject, getterObjectBody);
String setterNameObject = "set" + capitalizedAttributeName + "Entity";
@@ -778,14 +809,27 @@
addParameter(getterObject, "String", "extensionName");
addParameter(getterObject, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
addParameter(getterObject, "boolean", "exceptionIfNotLoaded");
- setOperationBody(getterObject, ""
+ String getterObjectBody = "";
+ if ("wikitty".equalsIgnoreCase(attributeObjectType)) {
+ getterObjectBody = ""
/*{
String fqfieldName = getMetaFieldName(extensionName, "<%=attributeName%>");
String extName = WikittyExtension.extractExtensionName(fqfieldName);
String fieldName = WikittyExtension.extractFieldName(fqfieldName);
+ <%=attributeObjectType%> value = wikitty.getFieldAsWikitty(extName, fieldName, exceptionIfNotLoaded);
+ return value;
+}*/;
+ } else {
+ getterObjectBody = ""
+/*{
+ String fqfieldName = getMetaFieldName(extensionName, "<%=attributeName%>");
+ String extName = WikittyExtension.extractExtensionName(fqfieldName);
+ String fieldName = WikittyExtension.extractFieldName(fqfieldName);
<%=attributeObjectType%> value = WikittyUtil.newInstance(<%=attributeObjectType%>.class, wikitty.getFieldAsWikitty(extName, fieldName, exceptionIfNotLoaded));
return value;
-}*/);
+}*/;
+ }
+ setOperationBody(getterObject, getterObjectBody);
String setterNameObject = "set" + StringUtils.capitalize(attributeName);
ObjectModelOperation setterObject = addOperation(
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -176,7 +176,7 @@
protected static String generateResultObjectType(ObjectModelAttribute attribute,
boolean considerMultiplicity) {
String result = FQNtoSimpleName(attribute.getType());
- if (commonTypes.contains(result) || "Wikitty".equalsIgnoreCase(result)) {
+ if (commonTypes.contains(result)) { // FIXME poussin 20120807 test pour voir si on peut traiter le type Wikitty comme un business || "Wikitty".equalsIgnoreCase(result)) {
// On ne retourne quelque chose que si c'est un business entity type
result = null;
}
Modified: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
===================================================================
--- trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -219,14 +219,14 @@
String query = String.format(jdbcQuery.getProperty(QUERY_SELECT_TWO_WHERE),
COL_VERSION, COL_DELETION_DATE, TABLE_WIKITTY_ADMIN, COL_ID);
PreparedStatement statement = connection.prepareStatement(query);
- statement.setString(1, wikitty.getId());
+ statement.setString(1, wikitty.getWikittyId());
ResultSet versionResultSet = statement.executeQuery();
String extensionList = "";
boolean wikittyAlreadyExists = versionResultSet.next();
String actualVersion = null;
Date deletionDate = null;
- String requestedVersion = wikitty.getVersion();
+ String requestedVersion = wikitty.getWikittyVersion();
if (wikittyAlreadyExists) {
actualVersion = versionResultSet.getString(COL_VERSION);
@@ -252,7 +252,7 @@
continue;
} else if (WikittyUtil.versionGreaterThan(actualVersion, requestedVersion)) {
throw new WikittyObsoleteException(String.format(
- "Your wikitty '%s' is obsolete", wikitty.getId()));
+ "Your wikitty '%s' is obsolete", wikitty.getWikittyId()));
} else {
newVersion = WikittyUtil.incrementMajorRevision(actualVersion);
}
@@ -261,12 +261,12 @@
if (wikittyAlreadyExists) {
WikittyJDBCUtil.doQuery(connection,
jdbcQuery.getProperty(QUERY_DELETE_WIKITTY_DATA),
- wikitty.getId());
+ wikitty.getWikittyId());
}
else {
WikittyJDBCUtil.doQuery(connection,
jdbcQuery.getProperty(QUERY_INSERT_WIKITTY_ADMIN),
- wikitty.getId(), newVersion, "");
+ wikitty.getWikittyId(), newVersion, "");
}
@@ -284,7 +284,7 @@
String q = String.format(jdbcQuery.getProperty(
QUERY_INSERT_WIKITTY_DATA), colName);
WikittyJDBCUtil.doQuery(connection, q,
- wikitty.getId(),
+ wikitty.getWikittyId(),
ext.getName() + "." + fieldName + "[" + i + "/" + list.size() + "]",
value);
}
@@ -311,7 +311,7 @@
String q = String.format(jdbcQuery.getProperty(
QUERY_INSERT_WIKITTY_DATA), colName);
WikittyJDBCUtil.doQuery(connection, q,
- wikitty.getId(),
+ wikitty.getWikittyId(),
ext.getName() + "." + fieldName,
value);
} else {
@@ -334,11 +334,11 @@
// force all time deletion date to null
String q = jdbcQuery.getProperty(QUERY_UPDATE_WIKITTY_ADMIN);
WikittyJDBCUtil.doQuery(connection, q, newVersion, extensionList,
- null, wikitty.getId());
+ null, wikitty.getWikittyId());
// make a clone to prevent side effect
Wikitty newWikitty = wikitty.clone();
- newWikitty.setVersion(newVersion);
+ newWikitty.setWikittyVersion(newVersion);
newWikitty.clearDirty();
result.addWikitty(newWikitty);
}
@@ -498,7 +498,7 @@
ResultSet resultSet, String... fqFieldName) throws SQLException {
Set<String> acceptedField = new HashSet<String>(Arrays.asList(fqFieldName));
Wikitty result = new WikittyImpl(id);
- result.setVersion(version);
+ result.setWikittyVersion(version);
if (extensionList != null && !"".equals(extensionList)) {
for (String ext : extensionList.split(",")) {
String extName = WikittyExtension.computeName(ext);
Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java
===================================================================
--- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -225,7 +225,7 @@
* @param doc TreeNode document representation
*/
public void add(Wikitty w) {
- String id = w.getId();
+ String id = w.getWikittyId();
Set<String> att = WikittyTreeNodeHelper.getAttachment(w);
add(id, att);
}
Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java
===================================================================
--- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2012-08-03 09:02:38 UTC (rev 1493)
+++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2012-08-07 14:01:14 UTC (rev 1494)
@@ -198,19 +198,19 @@
// remplissage des collections
for(Wikitty w : wikitties) {
- allWikitties.put(w.getId(), w);
+ allWikitties.put(w.getWikittyId(), w);
if (force || !w.getDirty().isEmpty() ||
- WikittyUtil.versionGreaterThan("1", w.getVersion())) {
+ WikittyUtil.versionGreaterThan("1", w.getWikittyVersion())) {
// s'il y a au moins un champs a reindexer ou que l'objet
// n'a jamais ete sauve (1 > version)
- dirtyObject.add(w.getId());
+ dirtyObject.add(w.getWikittyId());
if (WikittyTreeNodeHelper.hasExtension(w) && (force
||w.getDirty().contains(WikittyTreeNode.FQ_FIELD_WIKITTYTREENODE_PARENT)
|| null == WikittyTreeNodeHelper.getParent(w))) {
// si le pere a change
// ou qu'il est null (creation d'un nouvel arbre)
// il faut indexer le noeud
- dirtyParent.add(w.getId());
+ dirtyParent.add(w.getWikittyId());
String parent = WikittyTreeNodeHelper.getParent(w);
if (parent != null) {
dirtyParentParentId.add(parent);
@@ -988,7 +988,7 @@
boolean mustIndex = true;
if (SOLR_ID.equals(fqfieldName)) {
// extra field #id
- fieldValue = w.getId();
+ fieldValue = w.getWikittyId();
} else if (SOLR_EXTENSIONS.equals(fqfieldName)) {
// extra field #extensions
fieldValue= w.getExtensionNames();
@@ -1022,7 +1022,7 @@
*/
protected SolrInputDocument createIndexDocument(Wikitty w) {
if (log.isTraceEnabled()) {
- log.trace(String.format("create index wikitty for '%s'", w.getId()));
+ log.trace(String.format("create index wikitty for '%s'", w.getWikittyId()));
}
SolrInputDocument doc = new SolrInputDocument();
1
0
r1493 - in trunk: wikitty-api/src/main/java/org/nuiton/wikitty/entities wikitty-api/src/main/xmi wikitty-api/src/test/java/org/nuiton/wikitty wikitty-api/src/test/resources/xml wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bpoussin@users.nuiton.org Aug. 3, 2012
by bpoussin@users.nuiton.org Aug. 3, 2012
Aug. 3, 2012
Author: bpoussin
Date: 2012-08-03 11:02:38 +0200 (Fri, 03 Aug 2012)
New Revision: 1493
Url: http://nuiton.org/repositories/revision/wikitty/1493
Log:
Anomalie #2222: Field extension order seems to be not maintened with JDBC storage
Maintenant on peut ajouter le tag: TAG_FIELD_ORDER (fieldOrder) pour forcer la position
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldTypeConstaintChecker.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java
trunk/wikitty-api/src/main/xmi/wikitty.properties
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
trunk/wikitty-api/src/test/resources/xml/importclient.xml
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldType.java 2012-08-03 09:02:38 UTC (rev 1493)
@@ -28,6 +28,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
@@ -255,6 +256,31 @@
}
/**
+ * @see #TAG_FIELD_INDEX
+ */
+ public boolean hasFieldIndex() {
+ return null != getTagValue(TAG_FIELD_INDEX);
+ }
+
+ /**
+ * @see #TAG_FIELD_INDEX
+ */
+ public double getFieldIndex() {
+ double result = Double.MAX_VALUE;
+ String fieldIndex = getTagValue(TAG_FIELD_INDEX);
+ if (fieldIndex != null) {
+ try {
+ result = Double.parseDouble(fieldIndex);
+ } catch (NumberFormatException eee) {
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Bad fieldIndex value '%s'", fieldIndex), eee);
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
* @see #TAG_UNIQUE
*/
public boolean isUnique() {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldTypeConstaintChecker.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldTypeConstaintChecker.java 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/FieldTypeConstaintChecker.java 2012-08-03 09:02:38 UTC (rev 1493)
@@ -296,9 +296,11 @@
// les ids en erreur refaire la meme requete sur le in memory
if (!result) {
result = true;
- log.warn(String.format(
- "Field '%s' contains unallowed Wikitty values %s",
- fqfield, unallowed));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format(
+ "Field '%s' contains unallowed Wikitty values %s",
+ fqfield, unallowed));
+ }
}
// FIN du FIXME
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyExtension.java 2012-08-03 09:02:38 UTC (rev 1493)
@@ -32,6 +32,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -134,11 +135,7 @@
setRequires(requires);
setTagValues(tagValues);
if (fields != null) {
- for (Map.Entry<String, FieldType> entry : fields.entrySet()) {
- String fieldName = entry.getKey();
- FieldType fieldType = entry.getValue();
- addField(fieldName, fieldType);
- }
+ addField(fields);
}
}
@@ -339,10 +336,49 @@
return result;
}
+ /**
+ * Cette methode ne doit-etre utilise que par des methodes qui tri par la
+ * suite la Map de champs, car celle-ci ne le fait pas
+ * @param fieldName
+ * @param type
+ */
+ protected void addField(Map<String, FieldType> newFields) {
+ // check fieldname and fieldType
+ for (Map.Entry<String, FieldType> e : newFields.entrySet()) {
+ if (null == e.getValue()) {
+ throw new IllegalArgumentException(
+ "FieldType must not be null for field '" + e.getKey() +"'");
+ }
+ Matcher matcher = fieldNamePattern.matcher(e.getKey());
+ if(!matcher.find()) {
+ throw new IllegalArgumentException(
+ "For field name [" + e.getKey() +"], only word character [a-zA-Z_0-9] is accepted");
+ }
+ }
+
+ fields.putAll(newFields);
+ // sort field on TAG_FIELD_INDEX after add
+ fields = sortField(fields);
+
+ getPropertyChangeSupport().firePropertyChange("fields", null, fields);
+ }
+
+ /**
+ * Ajoute un nouveau champs a l'extension, la liste des champs est automatiquement
+ * trie après chaque insertion.
+ * @param fieldName le nom du champs
+ * @param type le type du champs contenant un tag TAG_FIELD_INDEX pour le tri
+ */
public void addField(String fieldName, FieldType type) {
+ if (null == type) {
+ throw new IllegalArgumentException(
+ "FieldType must not be null for field '" + fieldName +"'");
+ }
Matcher matcher = fieldNamePattern.matcher(fieldName);
if(matcher.find()) {
fields.put(fieldName, type);
+ // sort field on TAG_FIELD_INDEX after add
+ fields = sortField(fields);
// TODO EC20100610 null for old value
getPropertyChangeSupport().firePropertyChange("fields", null, fields);
} else {
@@ -350,6 +386,28 @@
}
}
+ /**
+ * Tri la map en entree suivant la valeur de TAG_FIELD_INDEX de la valeur
+ */
+ protected LinkedHashMap<String, FieldType> sortField(Map<String, FieldType> map) {
+ List<Map.Entry<String, FieldType>> list =
+ new ArrayList<Map.Entry<String, FieldType>>(map.entrySet());
+ Collections.sort(list, new Comparator<Map.Entry<String, FieldType>>() {
+ public int compare(Map.Entry<String, FieldType> o1, Map.Entry<String, FieldType> o2) {
+ Double f1 = o1.getValue().getFieldIndex();
+ Double f2 = o2.getValue().getFieldIndex();
+ int result = f1.compareTo(f2);
+ return result;
+ }
+ });
+
+ LinkedHashMap<String, FieldType> result = new LinkedHashMap<String, FieldType>();
+ for (Map.Entry<String, FieldType> e : list) {
+ result.put(e.getKey(), e.getValue());
+ }
+ return result;
+ }
+
public void removeField(String fieldName) {
fields.remove(fieldName);
// TODO EC20100610 null for old value
@@ -476,7 +534,7 @@
String result = "Extension " + getId();
result += WikittyUtil.tagValuesToString(tagValues);
result += " {\n";
- for (String fieldName : fields.keySet()) {
+ for (String fieldName : getFieldNames()) {
result += fields.get(fieldName).toDefinition(fieldName) + "\n";
}
result += "}";
Modified: trunk/wikitty-api/src/main/xmi/wikitty.properties
===================================================================
--- trunk/wikitty-api/src/main/xmi/wikitty.properties 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-api/src/main/xmi/wikitty.properties 2012-08-03 09:02:38 UTC (rev 1493)
@@ -22,11 +22,11 @@
# <http://www.gnu.org/licenses/lgpl-3.0.html>.
# #L%
###
-org.nuiton.wikitty.entities.WikittyAuthorisation.class.tagvalue.version=2.0
-org.nuiton.wikitty.entities.WikittyGroup.class.tagvalue.version=2.0
-org.nuiton.wikitty.entities.WikittyLabel.class.tagvalue.version=2.0
-org.nuiton.wikitty.entities.WikittyToken.class.tagvalue.version=3.0
-org.nuiton.wikitty.entities.WikittyTreeNode.class.tagvalue.version=3.0
-org.nuiton.wikitty.entities.WikittyUser.class.tagvalue.version=2.0
-org.nuiton.wikitty.entities.WikittyI18n.class.tagvalue.version=2.0
-org.nuiton.wikitty.entities.WikittyAccessStat.class.tagvalue.version=2.0
+org.nuiton.wikitty.entities.WikittyAuthorisation.class.tagvalue.version=3.0
+org.nuiton.wikitty.entities.WikittyGroup.class.tagvalue.version=3.0
+org.nuiton.wikitty.entities.WikittyLabel.class.tagvalue.version=3.0
+org.nuiton.wikitty.entities.WikittyToken.class.tagvalue.version=4.0
+org.nuiton.wikitty.entities.WikittyTreeNode.class.tagvalue.version=4.0
+org.nuiton.wikitty.entities.WikittyUser.class.tagvalue.version=3.0
+org.nuiton.wikitty.entities.WikittyI18n.class.tagvalue.version=3.0
+org.nuiton.wikitty.entities.WikittyAccessStat.class.tagvalue.version=3.0
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-08-03 09:02:38 UTC (rev 1493)
@@ -742,11 +742,15 @@
String xmlExport = ieService.syncExportAllByQuery(FORMAT.XML, query);
// extension definition is present in xml export
- Assert.assertTrue(xmlExport.contains("<extension name='WikittyTreeNode' version='3.0'>"));
+ Assert.assertTrue("#### xmlExport ####\n" + xmlExport + "\n#############",
+ xmlExport.contains("<extension name='WikittyTreeNode' version='4.0'>"));
// some data too
- Assert.assertTrue(xmlExport.contains("<WikittyTreeNode.name>Books</WikittyTreeNode.name>"));
- Assert.assertTrue(xmlExport.contains("extensions='WikittyTreeNode[3.0],CatalogNode[2.0]'"));
- Assert.assertTrue(xmlExport.contains("<WikittyTreeNode.attachment>"));
+ Assert.assertTrue("#### xmlExport ####\n" + xmlExport + "\n#############",
+ xmlExport.contains("<WikittyTreeNode.name>Books</WikittyTreeNode.name>"));
+ Assert.assertTrue("#### xmlExport ####\n" + xmlExport + "\n#############",
+ xmlExport.contains("extensions='WikittyTreeNode[4.0],CatalogNode[2.0]'"));
+ Assert.assertTrue("#### xmlExport ####\n" + xmlExport + "\n#############",
+ xmlExport.contains("<WikittyTreeNode.attachment>"));
}
/**
@@ -785,12 +789,17 @@
String csvExport = ieService.syncExportAllByQuery(FORMAT.CSV, query);
// extension definition is present in xml export
- Assert.assertTrue(csvExport.startsWith("\"Wikitty.Id\",\"Wikitty.Ext\",\"WikittyTreeNode.attachment\",\"WikittyTreeNode.name\",\"WikittyTreeNode.parent\""));
+ Assert.assertTrue("#### csvExport ####\n" + csvExport + "\n#############",
+ csvExport.startsWith("\"Wikitty.Id\",\"Wikitty.Ext\",\"WikittyTreeNode.name\",\"WikittyTreeNode.attachment\",\"WikittyTreeNode.parent\""));
// some data too
- Assert.assertTrue(csvExport.contains("\"WikittyTreeNode,CatalogNode\",,\"Everything else\""));
- Assert.assertTrue(csvExport.contains("\"WikittyTreeNode,CatalogNode\",,\"Catalog\""));
- Assert.assertTrue(csvExport.contains("\"WikittyTreeNode,CatalogNode\",,\"Books\""));
- Assert.assertTrue(csvExport.contains("Nouvelles"));
+ Assert.assertTrue("#### csvExport ####\n" + csvExport + "\n#############",
+ csvExport.contains("\"WikittyTreeNode,CatalogNode\",\"Everything else\",,"));
+ Assert.assertTrue("#### csvExport ####\n" + csvExport + "\n#############",
+ csvExport.contains("\"WikittyTreeNode,CatalogNode\",\"Catalog\",,"));
+ Assert.assertTrue("#### csvExport ####\n" + csvExport + "\n#############",
+ csvExport.contains("\"WikittyTreeNode,CatalogNode\",\"Books\",,"));
+ Assert.assertTrue("#### csvExport ####\n" + csvExport + "\n#############",
+ csvExport.contains("Nouvelles"));
}
/**
Modified: trunk/wikitty-api/src/test/resources/xml/importclient.xml
===================================================================
--- trunk/wikitty-api/src/test/resources/xml/importclient.xml 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-api/src/test/resources/xml/importclient.xml 2012-08-03 09:02:38 UTC (rev 1493)
@@ -25,11 +25,11 @@
-->
<wikitty>
- <extension name='WikittyTreeNode' version='2.0'>
- <tagvalues> version="2.0"</tagvalues>
- <field>STRING name unique="true"</field>
- <field>WIKITTY attachment[0-*] unique="true" version="2.0"</field>
- <field>WIKITTY parent unique="true"</field>
+ <extension name='WikittyTreeNode' version='4.0'>
+ <tagvalues> version="4.0"</tagvalues>
+ <field>STRING name unique="true" fieldIndex=1</field>
+ <field>WIKITTY attachment[0-*] unique="true" version="2.0" fieldIndex=2</field>
+ <field>WIKITTY parent unique="true" fieldIndex=3</field>
</extension>
<extension name='Client' version='1.0'>
<tagvalues></tagvalues>
@@ -38,19 +38,19 @@
<object id='fbcc8aed-7f67-4e3c-a9aa-221373765f8d' version='0.1' extensions='Client[1.0]'>
<Client.name>Entreprise dupont</Client.name>
</object>
- <object id='4f6fc798-41f8-48d7-9398-119ef6ab02b6' version='0.1' extensions='WikittyTreeNode[2.0]'>
+ <object id='4f6fc798-41f8-48d7-9398-119ef6ab02b6' version='0.1' extensions='WikittyTreeNode[4.0]'>
<WikittyTreeNode.name>MyRootNode</WikittyTreeNode.name>
</object>
<extension name='Tag' version='1.0'>
<tagvalues></tagvalues>
<field>STRING tags</field>
</extension>
- <object id='1142aa4c-af5a-4264-9918-9f72d9ef9d59' version='0.3' extensions='Tag[1.0],WikittyTreeNode[2.0]'>
+ <object id='1142aa4c-af5a-4264-9918-9f72d9ef9d59' version='0.3' extensions='Tag[1.0],WikittyTreeNode[4.0]'>
<WikittyTreeNode.parent>4f6fc798-41f8-48d7-9398-119ef6ab02b6</WikittyTreeNode.parent>
<WikittyTreeNode.attachment>fbcc8aed-7f67-4e3c-a9aa-221373765f8d</WikittyTreeNode.attachment>
<WikittyTreeNode.name>MyTreeNode</WikittyTreeNode.name>
</object>
- <object id='0d13cb0b-bc06-431c-9438-7bcb357f45da' version='0.2' extensions='WikittyTreeNode[2.0]'>
+ <object id='0d13cb0b-bc06-431c-9438-7bcb357f45da' version='0.2' extensions='WikittyTreeNode[4.0]'>
<WikittyTreeNode.parent>1142aa4c-af5a-4264-9918-9f72d9ef9d59</WikittyTreeNode.parent>
<WikittyTreeNode.name>MySubNode</WikittyTreeNode.name>
</object>
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2012-08-03 09:02:38 UTC (rev 1493)
@@ -208,10 +208,10 @@
List<String> buildFieldMapExtensionParameters = new ArrayList<String>();
-
+ int fieldIndex = 0;
// now process attributes
for(ObjectModelAttribute attribute : businessEntity.getAttributes()) {
- if (attribute.isNavigable()) {
+ if (attribute.isNavigable()) {
// now add the attribute to the piece of code that build the extension
String wikittyType = WikittyTransformerUtil.typeToWikittyColumn(attribute.getType());
String multiplicity = "";
@@ -236,6 +236,12 @@
}
}
+ // si l'attribut n'a pas d'index on lui ajoute sa position par defaut
+ fieldIndex++;
+ if (null == attribute.getTagValue(TAG_FIELD_INDEX)) {
+ attribute.getTagValues().put(TAG_FIELD_INDEX, String.valueOf(fieldIndex));
+ }
+
// si le champs est de type wikitty et qu'il n'y a pas de tag value
// on regarde s'il faut en generer un
if (StringUtils.equals("Wikitty", wikittyType)
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java 2012-08-01 09:03:36 UTC (rev 1492)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTagValue.java 2012-08-03 09:02:38 UTC (rev 1493)
@@ -83,6 +83,13 @@
*/
public static final String TAG_SORT_ORDER = "sortOrder";
+ /**
+ * fieldIndex: indique la position de ce champs dans la liste des champs.
+ * *la valeur est un nombre réel pour facilement inserer un champs entre deux
+ * champs sans devoir tous les modifiers.
+ */
+ public static final String TAG_FIELD_INDEX = "fieldIndex";
+
/**
* Unique: le champs doit etre une collection, ce tag indique alors s'il vaut
* true que la collection ne peut pas contenir de doublon (Set) si unique
1
0
r1492 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty
by bpoussin@users.nuiton.org Aug. 1, 2012
by bpoussin@users.nuiton.org Aug. 1, 2012
Aug. 1, 2012
Author: bpoussin
Date: 2012-08-01 11:03:36 +0200 (Wed, 01 Aug 2012)
New Revision: 1492
Url: http://nuiton.org/repositories/revision/wikitty/1492
Log:
add support for other date format
"dd/MM/yyyy",
"dd/MM/yyyy hh:mm",
"dd-MM-yy",
"dd-MM-yy hh:mm",
"dd-MM-yyyy",
"dd-MM-yyyy hh:mm",
"yyyy-MM-dd",
"yyyy-MM-dd hh:mm",
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-07-07 19:45:56 UTC (rev 1491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2012-08-01 09:03:36 UTC (rev 1492)
@@ -131,7 +131,15 @@
new SimpleDateFormat().toPattern(),
"dd/MM/yy",
"dd/MM/yy hh:mm",
+ "dd/MM/yyyy",
+ "dd/MM/yyyy hh:mm",
+ "dd-MM-yy",
+ "dd-MM-yy hh:mm",
+ "dd-MM-yyyy",
+ "dd-MM-yyyy hh:mm",
"yyyyMMdd",
+ "yyyy-MM-dd",
+ "yyyy-MM-dd hh:mm",
};
// /** All date format parser used to convert string to date */
1
0