Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
August 2010
- 7 participants
- 66 discussions
r220 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty test/java/org/nuiton/wikitty/api test/java/org/nuiton/wikitty/conform test/java/org/nuiton/wikitty/memory
by bleny@users.nuiton.org 04 Aug '10
by bleny@users.nuiton.org 04 Aug '10
04 Aug '10
Author: bleny
Date: 2010-08-04 10:04:58 +0200 (Wed, 04 Aug 2010)
New Revision: 220
Url: http://nuiton.org/repositories/revision/wikitty/220
Log:
#780 adding parseDate and formatDate with tests
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-08-03 13:37:36 UTC (rev 219)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-08-04 08:04:58 UTC (rev 220)
@@ -19,7 +19,6 @@
import java.lang.reflect.Constructor;
import java.math.BigDecimal;
-import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
@@ -36,6 +35,8 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.lang.time.DateUtils;
+import org.apache.commons.lang.time.FastDateFormat;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -51,7 +52,12 @@
public static final String DEFAULT_VERSION = "0.0";
- public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
+ public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'Z";
+ public static final String[] DATE_FORMAT_ALLOWED = {
+ DATE_FORMAT,
+ new SimpleDateFormat().toPattern(),
+ "dd/MM/yy"
+ };
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(WikittyUtil.class);
@@ -60,24 +66,21 @@
protected static TimeZone CANONICAL_TZ = TimeZone.getTimeZone("UTC");
protected static final Locale CANONICAL_LOCALE = Locale.US;
- static final public SimpleDateFormat solrDateFormat = new SolrDateFormat();
+ // FastDateFormat is thread-safe
+ static final public FastDateFormat solrDateFormat = FastDateFormat.getInstance(
+ DATE_FORMAT, CANONICAL_TZ, CANONICAL_LOCALE);
- public static class SolrDateFormat extends SimpleDateFormat {
- /** serialVersionUID. */
- private static final long serialVersionUID = 8840047015546468704L;
+
+// /** All date format parser used to convert string to date */
+// static final protected DateFormat[] parserDateFormats = new DateFormat[] {
+// solrDateFormat, DateFormat.getInstance(),
+// // TODO poussin 20090813: add other date syntax
+// };
- public SolrDateFormat() {
- super(DATE_FORMAT, CANONICAL_LOCALE);
- setTimeZone(CANONICAL_TZ);
- }
+ static public Date parseDate(String dateAsString) throws ParseException {
+ return DateUtils.parseDate(dateAsString, DATE_FORMAT_ALLOWED);
}
-
- /** All date format parser used to convert string to date */
- static final protected DateFormat[] parserDateFormats = new DateFormat[] {
- solrDateFormat, DateFormat.getInstance(),
- // TODO poussin 20090813: add other date syntax
- };
-
+
// TODO poussin 20090902 use spring configuration to add mapping in this
// variable
/** contains mapping between interface and concret class that must be used */
@@ -432,7 +435,7 @@
if (value != null) {
if (value instanceof String) {
result = (String) value;
- } else if (value instanceof Wikitty) {
+ } else if (value instanceof WikittyImpl) {
result = ((Wikitty) value).getId();
} else if (value instanceof BusinessEntity) {
result = ((BusinessEntity) value).getWikittyId();
@@ -454,7 +457,7 @@
} else {
// try to convert to Date
try {
- result = solrDateFormat.parse(value.toString());
+ result = parseDate(value.toString());
} catch (ParseException eee) {
if (log.isDebugEnabled()) {
log.debug("Can't parse date, i try with next parser", eee);
@@ -484,7 +487,7 @@
if (value != null) {
if (value instanceof String) {
result = (String) value;
- } else if (value instanceof Wikitty) {
+ } else if (value instanceof WikittyImpl) {
result = ((Wikitty) value).getId();
} else if (value instanceof BusinessEntity) {
result = ((BusinessEntity) value).getWikittyId();
@@ -625,10 +628,10 @@
}
/**
- * Create new instance of WikittyDto with Wikitty object passed in argument.
- * If arguement is Interface try to add 'Impl' to find instanciable class.
+ * Create new instance of BusinessEntity from Wikitty object passed in argument.
+ * If argument is Interface try to add 'Impl' to find instanciable class.
* <p>
- * clazz parameter must be child of WikittyDto or business interface
+ * clazz parameter must be child of Business interface
*
*
* @param <E> entity type
@@ -665,7 +668,7 @@
try {
// try to find constructor with wikitty argument
Constructor<?> cons = clazzInstanciable
- .getConstructor(Wikitty.class);
+ .getConstructor(WikittyImpl.class);
Object[] parms = { null };
result = (E) cons.newInstance(parms);
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java 2010-08-03 13:37:36 UTC (rev 219)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java 2010-08-04 08:04:58 UTC (rev 220)
@@ -419,4 +419,13 @@
assertNull(label);
}
*/
+
+ /** check that a date is the same after parse and format */
+ @Test
+ public void testDateConsistency() throws Exception {
+ Date date = WikittyUtil.parseDate( "30/01/2009" );
+ Date dateFormatedAndParsed = WikittyUtil.parseDate(
+ WikittyUtil.solrDateFormat.format(date));
+ assertEquals(date, dateFormatedAndParsed);
+ }
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java 2010-08-03 13:37:36 UTC (rev 219)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java 2010-08-04 08:04:58 UTC (rev 220)
@@ -41,6 +41,7 @@
WikittyExtension ext = ExtensionFactory.create("testExt", "1")
.addField("name", TYPE.STRING)
.addField("age", TYPE.NUMERIC)
+ .addField("birth", TYPE.DATE)
.extension();
List<Wikitty> wikitties = new LinkedList<Wikitty>();
@@ -48,23 +49,45 @@
w.addExtension(ext);
w.setField(ext.getName(), "name", "Guillaume");
w.setField(ext.getName(), "age", "27");
+ w.setField(ext.getName(), "birth", "19/04/1968");
wikitties.add( w );
w = new WikittyImpl();
w.addExtension(ext);
w.setField(ext.getName(), "name", "Toto");
w.setField(ext.getName(), "age", "125");
+ w.setField(ext.getName(), "birth", "19/04/1968 15:12");
wikitties.add( w );
ws.store(null, wikitties);
-
+
+ // Testing search on a date criteria
Criteria criteria = Search.query()
- .eq("testExt.name", "Guillaume")
- .criteria();
+ .gt("testExt.birth", "19/04/1968 15:00")
+ .criteria();
PagedResult<String> result = ws.findAllByCriteria(null, criteria);
List<String> found = result.getAll();
assertEquals(1, found.size());
Wikitty wikittyFound = ws.restore(null, found.get(0));
+ log.info( wikittyFound.getFieldAsString(ext.getName(), "birth") );
+
+ // Testing search on a date criteria
+ criteria = Search.query()
+ .ge("testExt.birth", "19/04/1968")
+ .criteria();
+ result = ws.findAllByCriteria(null, criteria);
+ found = result.getAll();
+ assertEquals(2, found.size());
+ wikittyFound = ws.restore(null, found.get(0));
+ log.info( wikittyFound.getFieldAsString(ext.getName(), "birth") );
+
+ criteria = Search.query()
+ .eq("testExt.name", "Guillaume")
+ .criteria();
+ result = ws.findAllByCriteria(null, criteria);
+ found = result.getAll();
+ assertEquals(1, found.size());
+ wikittyFound = ws.restore(null, found.get(0));
log.info( wikittyFound.getFieldAsString(ext.getName(), "name") );
criteria = Search.query()
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java 2010-08-03 13:37:36 UTC (rev 219)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java 2010-08-04 08:04:58 UTC (rev 220)
@@ -35,6 +35,7 @@
@Test
public void testFilePersistance() throws Exception {
File tempPersistFile = File.createTempFile(InMemoryStorageTest.class.getName(), ".tmp");
+ tempPersistFile.delete();
tempPersistFile.deleteOnExit();
wikittyService = new WikittyServiceInMemory( tempPersistFile );
@@ -45,6 +46,7 @@
.addField("fieldName2", TYPE.DATE)
.extension();
Date date = dateFormater.parse( "30/01/2009" );
+
Wikitty w = createWikitty(
"MyExtName.fieldName0 = 123," +
"MyExtName.fieldName1 = 12.3," +
1
0
Author: bleny
Date: 2010-08-03 15:37:36 +0200 (Tue, 03 Aug 2010)
New Revision: 219
Url: http://nuiton.org/repositories/revision/wikitty/219
Log:
#793 extracted a Wikitty interface, main implementation is WikittyImpl
Added:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImpl.java
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java
trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyStorageHBase.java
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTestSupport.java
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTA.java
trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTAWithSync.java
trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/MultiStorageTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrSearchTest.java
trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/TreeTest.java
trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -51,7 +51,7 @@
}
public BusinessEntityWikitty() {
- this(new Wikitty());
+ this(new WikittyImpl());
}
protected PropertyChangeSupport getPropertyChangeSupport() {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -1,399 +1,80 @@
-/* *##%
- * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU 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 Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *##%*/
-
package org.nuiton.wikitty;
import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.Serializable;
import java.math.BigDecimal;
-import java.util.AbstractList;
-import java.util.AbstractSet;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Map;
import java.util.Set;
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class Wikitty implements Serializable {
+public interface Wikitty {
- /** serialVersionUID. */
- private static final long serialVersionUID = 4910886672760691052L;
+ void addPropertyChangeListener(PropertyChangeListener listener);
- /** Technical id for this wikitty object. id must be never null. */
- protected String id;
+ void removePropertyChangeListener(PropertyChangeListener listener);
- /** Current version of this wikitty object. */
- protected String version = WikittyUtil.DEFAULT_VERSION;
+ void addPropertyChangeListener(String propertyName,
+ PropertyChangeListener listener);
- /** If not null, date of deletion, if date this object is marked as deleted. */
- protected Date deleteDate = null;
+ void removePropertyChangeListener(String propertyName,
+ PropertyChangeListener listener);
- /**
- * Used to add property change support to wikitty object.
- *
- * Warning, this field can be null after deserialization.
- */
- private transient PropertyChangeSupport propertyChange;
+ String getId();
- /**
- * key: field name prefixed by extension name (dot separator)
- * value: value of field
- */
- protected HashMap<String, Object> fieldValue = new HashMap<String, Object>();
+ boolean isDeleted();
- /**
- * all field name currently modified (field name = extension . fieldname)
- */
- protected Set<String> fieldDirty = new HashSet<String>();
+ Date getDeleteDate();
/**
- * Map is LinkedHashMap to maintains order like user want
- * key: extension name
- * value: extension definition
- */
- protected Map<String, WikittyExtension> extensions =
- new LinkedHashMap<String, WikittyExtension>();
-
-
- public Wikitty() {
- this(null);
- }
-
- public Wikitty(String id) {
- if(id == null) {
- this.id = WikittyUtil.genUID();
- } else {
- this.id = id;
- }
- }
-
- /**
- * Always call this method because field is transient.
- *
- * @return
- */
- protected PropertyChangeSupport getPropertyChangeSupport() {
- if (propertyChange == null) {
- propertyChange = new PropertyChangeSupport(this);
- }
- return propertyChange;
- }
-
- public synchronized void addPropertyChangeListener(
- PropertyChangeListener listener) {
- getPropertyChangeSupport().addPropertyChangeListener(listener);
- }
-
-
- public synchronized void removePropertyChangeListener(
- PropertyChangeListener listener) {
- getPropertyChangeSupport().removePropertyChangeListener(listener);
- }
-
-
- public synchronized void addPropertyChangeListener(String propertyName,
- PropertyChangeListener listener) {
- getPropertyChangeSupport().addPropertyChangeListener(propertyName, listener);
- }
-
-
- public synchronized void removePropertyChangeListener(String propertyName,
- PropertyChangeListener listener) {
- getPropertyChangeSupport().removePropertyChangeListener(propertyName, listener);
- }
-
- public String getId() {
- return id;
- }
-
- public boolean isDeleted() {
- boolean result = deleteDate != null;
- return result;
- }
-
- public Date getDeleteDate() {
- return deleteDate;
- }
-
- /**
* Server only used
* @param delete
*/
- public void setDeleteDate(Date delete) {
- this.deleteDate = delete;
- }
+ void setDeleteDate(Date delete);
- /**
- * mark field as dirty
- * @param ext
- * @param fieldName
- */
- protected void setFieldDirty(String ext, String fieldName,
- Object oldValue, Object newValue) {
- String key = ext + "." + fieldName;
- fieldDirty.add(key);
- version = WikittyUtil.incrementMinorRevision(version);
- getPropertyChangeSupport().firePropertyChange(key, oldValue, newValue);
- }
+ void addExtension(WikittyExtension ext);
- public void addExtension(WikittyExtension ext) {
- String required = ext.getRequires();
- if (required != null && !required.isEmpty() &&
- !extensions.containsKey(required)) {
- throw new WikittyException(String.format(
- "You try to add extension '%s' that" +
- " required not available extension '%s' in this wikitty",
- ext.getName(), required));
- }
- extensions.put(ext.name, ext);
- }
+ void addExtension(List<WikittyExtension> exts);
- public void addExtension(List<WikittyExtension> exts) {
- for (WikittyExtension ext : exts) {
- extensions.put(ext.name, ext);
- }
- }
+ boolean hasExtension(String extName);
- public boolean hasExtension(String extName) {
- return extensions.containsKey(extName);
- }
+ boolean hasField(String extName, String fieldName);
- public boolean hasField(String extName, String fieldName) {
- boolean result = false;
- WikittyExtension ext = extensions.get(extName);
- if (ext != null) {
- result = ext.getFieldType(fieldName) != null;
- }
- return result;
- }
+ WikittyExtension getExtension(String ext);
- public WikittyExtension getExtension(String ext) {
- WikittyExtension result = extensions.get(ext);
- return result;
- }
+ Collection<String> getExtensionNames();
- public Collection<String> getExtensionNames() {
- Collection<String> result = extensions.keySet();
- return result;
- }
+ Collection<WikittyExtension> getExtensions();
- public Collection<WikittyExtension> getExtensions() {
- Collection<WikittyExtension> result = extensions.values();
- return result;
- }
+ Collection<WikittyExtension> getExtensionDependencies(String ext,
+ boolean recursively);
- public Collection<WikittyExtension> getExtensionDependencies(String ext, boolean recursively) {
- Collection<WikittyExtension> result = new HashSet<WikittyExtension>();
- Collection<WikittyExtension> all = extensions.values();
- for (WikittyExtension dependency : all) {
- String requires = dependency.getRequires();
- if(requires != null && !requires.isEmpty() && requires.equals(ext)) {
- result.add(dependency);
- if(recursively) {
- String dependencyName = dependency.getName();
- Collection<WikittyExtension> dependencies = getExtensionDependencies(dependencyName, recursively);
- result.addAll(dependencies);
- }
- }
- }
- return result;
- }
-
/**
* return field type for the given fieldName.
* @param fqfieldName fully qualified fieldName extension.fieldname
* @return field type
*/
- public FieldType getFieldType(String fqfieldName) {
- try {
- String[] field = fqfieldName.split("\\.");
- WikittyExtension ext = getExtension(field[0]);
- if (ext == null) {
- throw new WikittyException(String.format(
- "extension '%s' doesn't exists", field[0]));
- } else {
- String fieldName = field[1];
- int crochet = fieldName.indexOf("[");
- if (crochet != -1) {
- fieldName = fieldName.substring(0, crochet);
- }
- FieldType result = ext.getFieldType(fieldName);
- if (result == null) {
- throw new WikittyException(String.format(
- "field '%s' doesn't exists on extension '%s'", fieldName, field[0]));
+ FieldType getFieldType(String fqfieldName);
- }
- return result;
- }
- } catch (Exception eee) {
- throw new WikittyException(
- String.format("Field %s is not a fully qualified field name", fqfieldName),
- eee
- );
- }
- }
+ void setField(String ext, String fieldName, Object value);
- public void setField(String ext, String fieldName, Object value) {
- if (! hasField(ext, fieldName)) {
- String def = "";
- for ( WikittyExtension extension : extensions.values() ) {
- def += extension.toDefinition() + "\n";
- }
- throw new WikittyException(String.format(
- "field '%s' is not valid, extensions definition : %s", ext + "." + fieldName, def));
- }
- String key = ext + "." + fieldName;
+ Object getFieldAsObject(String ext, String fieldName);
- // take old value if needed
- Object oldValue = null;
- if (getPropertyChangeSupport().hasListeners(key)) {
- oldValue = fieldValue.get(key);
- }
+ boolean getFieldAsBoolean(String ext, String fieldName);
- // put new value
- FieldType fieldType = getExtension(ext).getFieldType(fieldName);
- Object validValue = fieldType.getValidValue(value);
- fieldValue.put(key, validValue);
+ BigDecimal getFieldAsBigDecimal(String ext, String fieldName);
- // mark field dirty and call listener
- setFieldDirty(ext, fieldName, oldValue, validValue);
- }
+ int getFieldAsInt(String ext, String fieldName);
- public Object getFieldAsObject(String ext, String fieldName) {
- if (!hasField(ext, fieldName)) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid field",
- ext + "." + fieldName));
- }
- String key = ext + "." + fieldName;
- Object result = fieldValue.get(key);
- return result;
- }
+ long getFieldAsLong(String ext, String fieldName);
- public boolean getFieldAsBoolean(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- boolean result = WikittyUtil.toBoolean(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid boolean",
- ext + "." + fieldName), eee);
- }
- }
+ float getFieldAsFloat(String ext, String fieldName);
- public BigDecimal getFieldAsBigDecimal(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- BigDecimal result = WikittyUtil.toBigDecimal(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid numeric",
- ext + "." + fieldName), eee);
- }
- }
+ double getFieldAsDouble(String ext, String fieldName);
- public int getFieldAsInt(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- int result = value.intValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid int",
- ext + "." + fieldName), eee);
- }
- }
+ String getFieldAsString(String ext, String fieldName);
- public long getFieldAsLong(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- long result = value.longValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid int",
- ext + "." + fieldName), eee);
- }
- }
+ Date getFieldAsDate(String ext, String fieldName);
- public float getFieldAsFloat(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- float result = value.floatValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid float",
- ext + "." + fieldName), eee);
- }
- }
-
- public double getFieldAsDouble(String ext, String fieldName) {
- try {
- BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
- double result = value.doubleValue();
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid float",
- ext + "." + fieldName), eee);
- }
- }
-
- public String getFieldAsString(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- String result = WikittyUtil.toString(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid String",
- ext + "." + fieldName), eee);
- }
- }
-
- public Date getFieldAsDate(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- try {
- Date result = WikittyUtil.toDate(value);
- return result;
- } catch (WikittyException eee) {
- throw new WikittyException(String.format(
- "field '%s' is not a valid Date",
- ext + "." + fieldName), eee);
- }
- }
-
/**
* return wikitty id and not wikitty objet because this method can be call
* on server or client side and it's better to keep conversion between id
@@ -403,11 +84,7 @@
* @return id of wikitty object or null
* @throws org.nuiton.wikitty.WikittyException
*/
- public String getFieldAsWikitty(String ext, String fieldName) {
- Object value = getFieldAsObject(ext, fieldName);
- String result = WikittyUtil.toWikitty(value);
- return result;
- }
+ String getFieldAsWikitty(String ext, String fieldName);
/**
* If object is a set, it is automatically transform to list.
@@ -415,28 +92,8 @@
* @param clazz
* @return unmodifiable list
*/
- public <E> List<E> getFieldAsList(String ext, String fieldName, final Class<E> clazz) {
- try {
- final Collection<E> collection = (Collection<E>) getFieldAsObject(ext, fieldName);
- if (collection != null) {
- // return unmodiable collection that check type of element
- return new AbstractList<E>() {
- List<E> contained = new ArrayList<E>(collection);
- @Override public E get(int index) {
- return WikittyUtil.cast( contained.get(index), clazz );
- }
- @Override public int size() {
- return contained.size();
- }
- };
- }
- return null;
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't add value to field '%s'",
- ext + "." + fieldName), eee);
- }
- }
+ <E> List<E> getFieldAsList(String ext, String fieldName,
+ final Class<E> clazz);
/**
*
@@ -444,212 +101,39 @@
* @param clazz
* @return unmodifiable list
*/
- public <E> Set<E> getFieldAsSet(String ext, String fieldName, final Class<E> clazz) {
- try {
- final Set<E> result = (Set<E>) getFieldAsObject(ext, fieldName);
- if (result != null) {
- // return unmodifable Set
- return new AbstractSet<E>() {
- Set<E> contained = result;
- @Override public int size() {
- return contained.size();
- }
- @Override
- public Iterator<E> iterator() {
- return new Iterator<E>() {
- Iterator containedIterator = contained.iterator();
- public boolean hasNext() {
- return containedIterator.hasNext();
- }
+ <E> Set<E> getFieldAsSet(String ext, String fieldName, final Class<E> clazz);
- public E next() {
- Object o = containedIterator.next();
- return WikittyUtil.cast(o, clazz);
- }
+ void addToField(String ext, String fieldName, Object value);
- public void remove() {
- throw new UnsupportedOperationException("Not supported operation");
- }
- };
+ void removeFromField(String ext, String fieldName, Object value);
- }
- };
- }
- return result;
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't add value to field '%s'",
- ext + "." + fieldName), eee);
- }
- }
+ void clearField(String ext, String fieldName);
- public void addToField(String ext, String fieldName, Object value) {
- try {
- FieldType fieldType = getExtension(ext).getFieldType(fieldName);
- Collection col = (Collection) getFieldAsObject(ext, fieldName);
- if (col == null) {
- if (fieldType.isUnique()) {
- col = new HashSet();
- } else {
- col = new ArrayList();
- }
- col.add(value);
- setField(ext, fieldName, col);
- // no call dirty, because already done in setField
- } else {
- // check upper bound only if col exists,
- // because ask upper bound == 0 is ridiculous
+ Set<String> fieldNames();
- if (fieldType.isUnique()) {
- if (!col.contains(value)) {
- // only add if not already in collection (unique)
- if (col.size() + 1 > fieldType.getUpperBound()) {
- // if upper bound reached, throw an exception
- throw new WikittyException(String.format(
- "Can't add value for field '%s', upper bound is reached",
- ext + "." + fieldName));
- }
- col.add(value);
- setFieldDirty(ext, fieldName, null, col);
- }
- } else {
- if (col.size() + 1 > fieldType.getUpperBound()) {
- throw new WikittyException(String.format(
- "Can't add value for field '%s', upper bound is reached",
- ext + "." + fieldName));
- }
- col.add(value);
- setFieldDirty(ext, fieldName, null, col);
- }
- }
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't add value to field '%s'",
- ext + "." + fieldName), eee);
- }
- }
+ Object getFqField(String fqFieldName);
- public void removeFromField(String ext, String fieldName, Object value) {
- try {
- Collection col = (Collection) getFieldAsObject(ext, fieldName);
- if (col != null) {
- FieldType type = getExtension(ext).getFieldType(fieldName);
- if (col.contains(value)) {
- if (col.size() - 1 < type.getLowerBound()) {
- throw new WikittyException(String.format(
- "Can't remove value for field '%s', lower bound is reached",
- ext + "." + fieldName));
- } else {
- if (col.remove(value)) {
- // field is dirty only if remove is done
- setFieldDirty(ext, fieldName, null, col);
- }
- }
- }
- }
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't remove value for field '%s'",
- ext + "." + fieldName), eee);
- }
- }
+ String getVersion();
- public void clearField(String ext, String fieldName) {
- FieldType type = getExtension(ext).getFieldType(fieldName);
- if (type.getLowerBound() > 0) {
- throw new WikittyException(String.format(
- "Can't clear values for field '%s', lower bound is > 0",
- ext + "." + fieldName));
- }
- try {
- Collection col = (Collection) getFieldAsObject(ext, fieldName);
- if (col != null) {
- col.clear();
- setFieldDirty(ext, fieldName, null, col);
- }
- } catch (Exception eee) {
- throw new WikittyException(String.format(
- "Can't clear value for field '%s'",
- ext + "." + fieldName), eee);
- }
- }
-
- @Override
- public boolean equals(Object obj) {
- boolean result = false;
- if (obj instanceof Wikitty) {
- Wikitty other = (Wikitty) obj;
- result = id.equals(other.id);
- }
- return result;
- }
-
- @Override
- public int hashCode() {
- if (id == null) {
- return super.hashCode();
- } else {
- return id.hashCode();
- }
- }
-
- public Set<String> fieldNames() {
- return fieldValue.keySet();
- }
-
- public Object getFqField(String fqFieldName) {
- return fieldValue.get(fqFieldName);
- }
-
- public String getVersion() {
- return version;
- }
-
/**
* Server only used
* @param version
*/
- public void setVersion(String version) {
- this.version = version;
- }
+ void setVersion(String version);
/**
* Server only used
* @param version
*/
- public void clearDirty() {
- fieldDirty.clear();
- }
+ void clearDirty();
/**
* Server only used
* @param fieldName fqn (ex: extensionName.fieldName)
* @param value new value
*/
- public void setFqField(String fieldName, Object value) {
- FieldType fieldType = getFieldType(fieldName);
- Object validValue = fieldType.getValidValue(value);
- fieldValue.put(fieldName, validValue);
- }
+ void setFqField(String fieldName, Object value);
- public boolean isEmpty() {
- return fieldValue.isEmpty();
- }
-
- @Override
- public String toString() {
- boolean cr = true;
- String str = "[" + getId() + ":" + getVersion() + "] {";
- for ( String extName : getExtensionNames() ) {
- WikittyExtension ext = getExtension(extName);
- str += (cr ? "\n" : "") + "\t<" + extName + ">\n";
- cr = false;
- for ( String fieldName : ext.getFieldNames() ) {
- str += "\t\t" + fieldName + " = " + getFieldAsString(extName, fieldName) + "\n";
- }
- }
- str += "}";
- return str;
- }
+ boolean isEmpty();
-}
+}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtensionMigrationRename.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -74,7 +74,7 @@
String wikittyId = wikitty.getId();
String wikittyVersion = wikitty.getVersion();
- Wikitty result = new Wikitty(wikittyId);
+ Wikitty result = new WikittyImpl(wikittyId);
result.setVersion(wikittyVersion);
// Add all extension and replace old by the new
Copied: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImpl.java (from rev 218, trunk/wikitty-api/src/main/java/org/nuiton/wikitty/Wikitty.java)
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImpl.java (rev 0)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyImpl.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -0,0 +1,772 @@
+/* *##%
+ * Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *##%*/
+
+package org.nuiton.wikitty;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.AbstractList;
+import java.util.AbstractSet;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class WikittyImpl implements Serializable, Wikitty {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 4910886672760691052L;
+
+ /** Technical id for this wikitty object. id must be never null. */
+ protected String id;
+
+ /** Current version of this wikitty object. */
+ protected String version = WikittyUtil.DEFAULT_VERSION;
+
+ /** If not null, date of deletion, if date this object is marked as deleted. */
+ protected Date deleteDate = null;
+
+ /**
+ * Used to add property change support to wikitty object.
+ *
+ * Warning, this field can be null after deserialization.
+ */
+ private transient PropertyChangeSupport propertyChange;
+
+ /**
+ * key: field name prefixed by extension name (dot separator)
+ * value: value of field
+ */
+ protected HashMap<String, Object> fieldValue = new HashMap<String, Object>();
+
+ /**
+ * all field name currently modified (field name = extension . fieldname)
+ */
+ protected Set<String> fieldDirty = new HashSet<String>();
+
+ /**
+ * Map is LinkedHashMap to maintains order like user want
+ * key: extension name
+ * value: extension definition
+ */
+ protected Map<String, WikittyExtension> extensions =
+ new LinkedHashMap<String, WikittyExtension>();
+
+
+ public WikittyImpl() {
+ this(null);
+ }
+
+ public WikittyImpl(String id) {
+ if(id == null) {
+ this.id = WikittyUtil.genUID();
+ } else {
+ this.id = id;
+ }
+ }
+
+ /**
+ * Always call this method because field is transient.
+ *
+ * @return
+ */
+ protected PropertyChangeSupport getPropertyChangeSupport() {
+ if (propertyChange == null) {
+ propertyChange = new PropertyChangeSupport(this);
+ }
+ return propertyChange;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#addPropertyChangeListener(java.beans.PropertyChangeListener)
+ */
+ @Override
+ public synchronized void addPropertyChangeListener(
+ PropertyChangeListener listener) {
+ getPropertyChangeSupport().addPropertyChangeListener(listener);
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#removePropertyChangeListener(java.beans.PropertyChangeListener)
+ */
+ @Override
+ public synchronized void removePropertyChangeListener(
+ PropertyChangeListener listener) {
+ getPropertyChangeSupport().removePropertyChangeListener(listener);
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
+ */
+ @Override
+ public synchronized void addPropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ getPropertyChangeSupport().addPropertyChangeListener(propertyName, listener);
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
+ */
+ @Override
+ public synchronized void removePropertyChangeListener(String propertyName,
+ PropertyChangeListener listener) {
+ getPropertyChangeSupport().removePropertyChangeListener(propertyName, listener);
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getId()
+ */
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#isDeleted()
+ */
+ @Override
+ public boolean isDeleted() {
+ boolean result = deleteDate != null;
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getDeleteDate()
+ */
+ @Override
+ public Date getDeleteDate() {
+ return deleteDate;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#setDeleteDate(java.util.Date)
+ */
+ @Override
+ public void setDeleteDate(Date delete) {
+ this.deleteDate = delete;
+ }
+
+ /**
+ * mark field as dirty
+ * @param ext
+ * @param fieldName
+ */
+ protected void setFieldDirty(String ext, String fieldName,
+ Object oldValue, Object newValue) {
+ String key = ext + "." + fieldName;
+ fieldDirty.add(key);
+ version = WikittyUtil.incrementMinorRevision(version);
+ getPropertyChangeSupport().firePropertyChange(key, oldValue, newValue);
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#addExtension(org.nuiton.wikitty.WikittyExtension)
+ */
+ @Override
+ public void addExtension(WikittyExtension ext) {
+ String required = ext.getRequires();
+ if (required != null && !required.isEmpty() &&
+ !extensions.containsKey(required)) {
+ throw new WikittyException(String.format(
+ "You try to add extension '%s' that" +
+ " required not available extension '%s' in this wikitty",
+ ext.getName(), required));
+ }
+ extensions.put(ext.name, ext);
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#addExtension(java.util.List)
+ */
+ @Override
+ public void addExtension(List<WikittyExtension> exts) {
+ for (WikittyExtension ext : exts) {
+ extensions.put(ext.name, ext);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#hasExtension(java.lang.String)
+ */
+ @Override
+ public boolean hasExtension(String extName) {
+ return extensions.containsKey(extName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#hasField(java.lang.String, java.lang.String)
+ */
+ @Override
+ public boolean hasField(String extName, String fieldName) {
+ boolean result = false;
+ WikittyExtension ext = extensions.get(extName);
+ if (ext != null) {
+ result = ext.getFieldType(fieldName) != null;
+ }
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getExtension(java.lang.String)
+ */
+ @Override
+ public WikittyExtension getExtension(String ext) {
+ WikittyExtension result = extensions.get(ext);
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getExtensionNames()
+ */
+ @Override
+ public Collection<String> getExtensionNames() {
+ Collection<String> result = extensions.keySet();
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getExtensions()
+ */
+ @Override
+ public Collection<WikittyExtension> getExtensions() {
+ Collection<WikittyExtension> result = extensions.values();
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getExtensionDependencies(java.lang.String, boolean)
+ */
+ @Override
+ public Collection<WikittyExtension> getExtensionDependencies(String ext, boolean recursively) {
+ Collection<WikittyExtension> result = new HashSet<WikittyExtension>();
+ Collection<WikittyExtension> all = extensions.values();
+ for (WikittyExtension dependency : all) {
+ String requires = dependency.getRequires();
+ if(requires != null && !requires.isEmpty() && requires.equals(ext)) {
+ result.add(dependency);
+ if(recursively) {
+ String dependencyName = dependency.getName();
+ Collection<WikittyExtension> dependencies = getExtensionDependencies(dependencyName, recursively);
+ result.addAll(dependencies);
+ }
+ }
+ }
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldType(java.lang.String)
+ */
+ @Override
+ public FieldType getFieldType(String fqfieldName) {
+ try {
+ String[] field = fqfieldName.split("\\.");
+ WikittyExtension ext = getExtension(field[0]);
+ if (ext == null) {
+ throw new WikittyException(String.format(
+ "extension '%s' doesn't exists", field[0]));
+ } else {
+ String fieldName = field[1];
+ int crochet = fieldName.indexOf("[");
+ if (crochet != -1) {
+ fieldName = fieldName.substring(0, crochet);
+ }
+ FieldType result = ext.getFieldType(fieldName);
+ if (result == null) {
+ throw new WikittyException(String.format(
+ "field '%s' doesn't exists on extension '%s'", fieldName, field[0]));
+
+ }
+ return result;
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(
+ String.format("Field %s is not a fully qualified field name", fqfieldName),
+ eee
+ );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#setField(java.lang.String, java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void setField(String ext, String fieldName, Object value) {
+ if (! hasField(ext, fieldName)) {
+ String def = "";
+ for ( WikittyExtension extension : extensions.values() ) {
+ def += extension.toDefinition() + "\n";
+ }
+ throw new WikittyException(String.format(
+ "field '%s' is not valid, extensions definition : %s", ext + "." + fieldName, def));
+ }
+ String key = ext + "." + fieldName;
+
+ // take old value if needed
+ Object oldValue = null;
+ if (getPropertyChangeSupport().hasListeners(key)) {
+ oldValue = fieldValue.get(key);
+ }
+
+ // put new value
+ FieldType fieldType = getExtension(ext).getFieldType(fieldName);
+ Object validValue = fieldType.getValidValue(value);
+ fieldValue.put(key, validValue);
+
+ // mark field dirty and call listener
+ setFieldDirty(ext, fieldName, oldValue, validValue);
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsObject(java.lang.String, java.lang.String)
+ */
+ @Override
+ public Object getFieldAsObject(String ext, String fieldName) {
+ if (!hasField(ext, fieldName)) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid field",
+ ext + "." + fieldName));
+ }
+ String key = ext + "." + fieldName;
+ Object result = fieldValue.get(key);
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsBoolean(java.lang.String, java.lang.String)
+ */
+ @Override
+ public boolean getFieldAsBoolean(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ boolean result = WikittyUtil.toBoolean(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid boolean",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsBigDecimal(java.lang.String, java.lang.String)
+ */
+ @Override
+ public BigDecimal getFieldAsBigDecimal(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ BigDecimal result = WikittyUtil.toBigDecimal(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid numeric",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsInt(java.lang.String, java.lang.String)
+ */
+ @Override
+ public int getFieldAsInt(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ int result = value.intValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid int",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsLong(java.lang.String, java.lang.String)
+ */
+ @Override
+ public long getFieldAsLong(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ long result = value.longValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid int",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsFloat(java.lang.String, java.lang.String)
+ */
+ @Override
+ public float getFieldAsFloat(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ float result = value.floatValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid float",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsDouble(java.lang.String, java.lang.String)
+ */
+ @Override
+ public double getFieldAsDouble(String ext, String fieldName) {
+ try {
+ BigDecimal value = getFieldAsBigDecimal(ext, fieldName);
+ double result = value.doubleValue();
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid float",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsString(java.lang.String, java.lang.String)
+ */
+ @Override
+ public String getFieldAsString(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ String result = WikittyUtil.toString(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid String",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsDate(java.lang.String, java.lang.String)
+ */
+ @Override
+ public Date getFieldAsDate(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ try {
+ Date result = WikittyUtil.toDate(value);
+ return result;
+ } catch (WikittyException eee) {
+ throw new WikittyException(String.format(
+ "field '%s' is not a valid Date",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsWikitty(java.lang.String, java.lang.String)
+ */
+ @Override
+ public String getFieldAsWikitty(String ext, String fieldName) {
+ Object value = getFieldAsObject(ext, fieldName);
+ String result = WikittyUtil.toWikitty(value);
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsList(java.lang.String, java.lang.String, java.lang.Class)
+ */
+ @Override
+ public <E> List<E> getFieldAsList(String ext, String fieldName, final Class<E> clazz) {
+ try {
+ final Collection<E> collection = (Collection<E>) getFieldAsObject(ext, fieldName);
+ if (collection != null) {
+ // return unmodiable collection that check type of element
+ return new AbstractList<E>() {
+ List<E> contained = new ArrayList<E>(collection);
+ @Override public E get(int index) {
+ return WikittyUtil.cast( contained.get(index), clazz );
+ }
+ @Override public int size() {
+ return contained.size();
+ }
+ };
+ }
+ return null;
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't add value to field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFieldAsSet(java.lang.String, java.lang.String, java.lang.Class)
+ */
+ @Override
+ public <E> Set<E> getFieldAsSet(String ext, String fieldName, final Class<E> clazz) {
+ try {
+ final Set<E> result = (Set<E>) getFieldAsObject(ext, fieldName);
+ if (result != null) {
+ // return unmodifable Set
+ return new AbstractSet<E>() {
+ Set<E> contained = result;
+ @Override public int size() {
+ return contained.size();
+ }
+ @Override
+ public Iterator<E> iterator() {
+ return new Iterator<E>() {
+ Iterator containedIterator = contained.iterator();
+ public boolean hasNext() {
+ return containedIterator.hasNext();
+ }
+
+ public E next() {
+ Object o = containedIterator.next();
+ return WikittyUtil.cast(o, clazz);
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException("Not supported operation");
+ }
+ };
+
+ }
+ };
+ }
+ return result;
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't add value to field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#addToField(java.lang.String, java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void addToField(String ext, String fieldName, Object value) {
+ try {
+ FieldType fieldType = getExtension(ext).getFieldType(fieldName);
+ Collection col = (Collection) getFieldAsObject(ext, fieldName);
+ if (col == null) {
+ if (fieldType.isUnique()) {
+ col = new HashSet();
+ } else {
+ col = new ArrayList();
+ }
+ col.add(value);
+ setField(ext, fieldName, col);
+ // no call dirty, because already done in setField
+ } else {
+ // check upper bound only if col exists,
+ // because ask upper bound == 0 is ridiculous
+
+ if (fieldType.isUnique()) {
+ if (!col.contains(value)) {
+ // only add if not already in collection (unique)
+ if (col.size() + 1 > fieldType.getUpperBound()) {
+ // if upper bound reached, throw an exception
+ throw new WikittyException(String.format(
+ "Can't add value for field '%s', upper bound is reached",
+ ext + "." + fieldName));
+ }
+ col.add(value);
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ } else {
+ if (col.size() + 1 > fieldType.getUpperBound()) {
+ throw new WikittyException(String.format(
+ "Can't add value for field '%s', upper bound is reached",
+ ext + "." + fieldName));
+ }
+ col.add(value);
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't add value to field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#removeFromField(java.lang.String, java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void removeFromField(String ext, String fieldName, Object value) {
+ try {
+ Collection col = (Collection) getFieldAsObject(ext, fieldName);
+ if (col != null) {
+ FieldType type = getExtension(ext).getFieldType(fieldName);
+ if (col.contains(value)) {
+ if (col.size() - 1 < type.getLowerBound()) {
+ throw new WikittyException(String.format(
+ "Can't remove value for field '%s', lower bound is reached",
+ ext + "." + fieldName));
+ } else {
+ if (col.remove(value)) {
+ // field is dirty only if remove is done
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ }
+ }
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't remove value for field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#clearField(java.lang.String, java.lang.String)
+ */
+ @Override
+ public void clearField(String ext, String fieldName) {
+ FieldType type = getExtension(ext).getFieldType(fieldName);
+ if (type.getLowerBound() > 0) {
+ throw new WikittyException(String.format(
+ "Can't clear values for field '%s', lower bound is > 0",
+ ext + "." + fieldName));
+ }
+ try {
+ Collection col = (Collection) getFieldAsObject(ext, fieldName);
+ if (col != null) {
+ col.clear();
+ setFieldDirty(ext, fieldName, null, col);
+ }
+ } catch (Exception eee) {
+ throw new WikittyException(String.format(
+ "Can't clear value for field '%s'",
+ ext + "." + fieldName), eee);
+ }
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ boolean result = false;
+ if (obj instanceof Wikitty) {
+ Wikitty other = (Wikitty) obj;
+ result = id.equals(other.getId());
+ }
+ return result;
+ }
+
+ @Override
+ public int hashCode() {
+ if (id == null) {
+ return super.hashCode();
+ } else {
+ return id.hashCode();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#fieldNames()
+ */
+ @Override
+ public Set<String> fieldNames() {
+ return fieldValue.keySet();
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getFqField(java.lang.String)
+ */
+ @Override
+ public Object getFqField(String fqFieldName) {
+ return fieldValue.get(fqFieldName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#getVersion()
+ */
+ @Override
+ public String getVersion() {
+ return version;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#setVersion(java.lang.String)
+ */
+ @Override
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#clearDirty()
+ */
+ @Override
+ public void clearDirty() {
+ fieldDirty.clear();
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#setFqField(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void setFqField(String fieldName, Object value) {
+ FieldType fieldType = getFieldType(fieldName);
+ Object validValue = fieldType.getValidValue(value);
+ fieldValue.put(fieldName, validValue);
+ }
+
+ /* (non-Javadoc)
+ * @see org.nuiton.wikitty.IWikitty#isEmpty()
+ */
+ @Override
+ public boolean isEmpty() {
+ return fieldValue.isEmpty();
+ }
+
+ @Override
+ public String toString() {
+ boolean cr = true;
+ String str = "[" + getId() + ":" + getVersion() + "] {";
+ for ( String extName : getExtensionNames() ) {
+ WikittyExtension ext = getExtension(extName);
+ str += (cr ? "\n" : "") + "\t<" + extName + ">\n";
+ cr = false;
+ for ( String fieldName : ext.getFieldNames() ) {
+ str += "\t\t" + fieldName + " = " + getFieldAsString(extName, fieldName) + "\n";
+ }
+ }
+ str += "}";
+ return str;
+ }
+
+}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -31,8 +31,8 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
-import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -66,10 +66,10 @@
public UpdateResponse store(WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) {
UpdateResponse result = new UpdateResponse();
for (Wikitty wikitty : wikitties) {
- wikitty.version = WikittyUtil.incrementMajorRevision(wikitty.version);
- wikitty.fieldDirty.clear();
- this.wikitties.put(wikitty.id, wikitty);
- result.addVersionUpdate(wikitty.id, wikitty.version);
+ wikitty.setVersion(WikittyUtil.incrementMajorRevision(wikitty.getVersion()));
+ wikitty.clearDirty();
+ this.wikitties.put(wikitty.getId(), wikitty);
+ result.addVersionUpdate(wikitty.getId(), wikitty.getVersion());
}
return result;
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -26,6 +26,7 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.wikitty.search.Search;
@@ -69,7 +70,7 @@
@Override
public String login(String login, String password) {
String token = WikittyUtil.genSecurityToken();
- Wikitty wToken = new Wikitty(token);
+ Wikitty wToken = new WikittyImpl(token);
// force add extension to wikitty
SecurityTokenHelper.addExtension(wToken);
// on passe token comme securityToken, mais il ne me semble pas
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportCSV.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -35,6 +35,7 @@
import org.nuiton.wikitty.PagedResult;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.WikittyTransaction;
import org.nuiton.wikitty.WikittyUtil;
@@ -95,10 +96,10 @@
String wikittyId = currentLine[wikittyIdIndex];
Wikitty currentWikitty = null;
if (StringUtils.isNotEmpty(wikittyId)) {
- currentWikitty = new Wikitty(wikittyId);
+ currentWikitty = new WikittyImpl(wikittyId);
}
else {
- currentWikitty = new Wikitty();
+ currentWikitty = new WikittyImpl();
}
for (int i = 0; i < header.length ; ++i) {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/importexport/ImportExportXML.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -35,6 +35,7 @@
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyException;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.WikittyTransaction;
import org.nuiton.wikitty.WikittyUtil;
@@ -86,7 +87,7 @@
String id = xpp.getAttributeValue(null, "id");
objectVersion = xpp.getAttributeValue(null, "version");
String extensions = xpp.getAttributeValue(null, "extensions");
- w = new Wikitty(id);
+ w = new WikittyImpl(id);
String[] extensionList = extensions.split(",");
for (String extId : extensionList) {
String extName = WikittyExtension.computeName(extId);
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -17,15 +17,15 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.junit.Before;
import org.junit.Test;
import org.nuiton.wikitty.ExtensionFactory;
import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.FieldType.TYPE;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyException;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.FieldType.TYPE;
import org.nuiton.wikitty.conform.StorageTest;
/**
@@ -41,11 +41,11 @@
@Test
public void testWikittyId() throws Exception {
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
// as soon as a wikitty object is created, it got an ID.
assertNotNull("Wikitty should got an ID", w.getId() );
- Wikitty w2 = new Wikitty( w.getId() );
+ Wikitty w2 = new WikittyImpl( w.getId() );
// two wikitty with a similar id are equals.
assertEquals("Wikitty with same ID must be equals", w, w2);
}
@@ -53,7 +53,7 @@
@Test
public void testWikittyExtension() throws Exception {
- Wikitty wikitty = new Wikitty();
+ Wikitty wikitty = new WikittyImpl();
// null extension should be ignored
WikittyExtension ext = new WikittyExtension( "invalidExt", "1", null, null );
@@ -92,7 +92,7 @@
.addField("fieldName1", TYPE.STRING)
.addField("fieldName2", TYPE.NUMERIC)
.extension();
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
assertFalse( w.hasExtension(testExtName) );
w.addExtension(ext);
assertTrue( w.hasExtension(testExtName) );
@@ -170,7 +170,7 @@
WikittyExtension ext = ExtensionFactory.create(StorageTest.EXTNAME, "1")
.addField("name", TYPE.STRING)
.extension();
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension(ext);
w.setField(StorageTest.EXTNAME, "name", "foobar");
return w;
@@ -209,7 +209,7 @@
.addField(fieldName, TYPE.NUMERIC)
.maxOccur(FieldType.NOLIMIT)
.extension();
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension(ext);
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/AbstractTestConformance.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -13,11 +13,12 @@
import org.apache.commons.logging.LogFactory;
import org.junit.runner.RunWith;
import org.nuiton.wikitty.FieldType;
+import org.nuiton.wikitty.FieldType.TYPE;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.FieldType.TYPE;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -67,7 +68,7 @@
}
protected static Wikitty createWikitty( WikittyExtension... extensions ) {
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
for ( WikittyExtension ext : extensions ) {
w.addExtension( ext );
}
@@ -135,13 +136,12 @@
public static Wikitty createWikitty( String values, String defaultExtName, WikittyExtension... exts ) {
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
for (WikittyExtension ext : exts) {
w.addExtension(ext);
}
for( Entry<String, String> keyValuePair : getKeyPairs(values) ) {
String[] s = keyValuePair.getKey().split("\\.");
- int i = 0;
String fieldName = null, extName = null;
if ( s.length > 1 ) {
fieldName = s[1].trim();
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/PerformanceTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Random;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
@@ -27,6 +28,7 @@
import org.nuiton.wikitty.FieldType;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
@@ -67,7 +69,7 @@
Collection<Wikitty> wikitties = new ArrayList<Wikitty>(WIKITTY_SIZE);
for (int i = 0; i < WIKITTY_SIZE; i++) {
- Wikitty wikitty = new Wikitty("Performance" + fieldSize + "id" + i);
+ Wikitty wikitty = new WikittyImpl("Performance" + fieldSize + "id" + i);
wikitty.addExtension(extension);
for (int j = 0; j < fieldSize; j++) {
wikitty.setField("Performance" + fieldSize, "field" + j, "value" + j);
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/SearchTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -8,10 +8,11 @@
import org.junit.Test;
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.FieldType.TYPE;
import org.nuiton.wikitty.PagedResult;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
-import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.search.Search;
public class SearchTest extends AbstractTestConformance {
@@ -43,13 +44,13 @@
.extension();
List<Wikitty> wikitties = new LinkedList<Wikitty>();
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension(ext);
w.setField(ext.getName(), "name", "Guillaume");
w.setField(ext.getName(), "age", "27");
wikitties.add( w );
- w = new Wikitty();
+ w = new WikittyImpl();
w.addExtension(ext);
w.setField(ext.getName(), "name", "Toto");
w.setField(ext.getName(), "age", "125");
@@ -86,7 +87,7 @@
wikittyFound = ws.restore(null, found.get(1));
log.info( wikittyFound.getFieldAsString(ext.getName(), "name") );
- Wikitty exemple = new Wikitty();
+ Wikitty exemple = new WikittyImpl();
exemple.addExtension(ext);
exemple.setField(ext.getName(), "name", "Guillaume");
exemple.setField(ext.getName(), "age", "27");
@@ -96,7 +97,7 @@
wikittyFound = ws.restore(null, found.get(0));
log.info( wikittyFound.getFieldAsString(ext.getName(), "name") );
- exemple = new Wikitty();
+ exemple = new WikittyImpl();
exemple.addExtension(ext);
exemple.setField(ext.getName(), "name", "Guillaume");
exemple.setField(ext.getName(), "age", "125");
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -15,8 +15,8 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
-import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -25,15 +25,15 @@
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.PagedResult;
import org.nuiton.wikitty.Tree;
+import org.nuiton.wikitty.TreeNode;
+import org.nuiton.wikitty.TreeNodeImpl;
import org.nuiton.wikitty.UpdateResponse;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyException;
import org.nuiton.wikitty.WikittyExtension;
-import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.search.Search;
-import org.nuiton.wikitty.TreeNodeImpl;
-import org.nuiton.wikitty.TreeNode;
public class StorageTest extends AbstractTestConformance {
@@ -147,7 +147,7 @@
// OK !
}
- w = new Wikitty();
+ w = new WikittyImpl();
String id = w.getId();
ws.store(null, w);
w = ws.restore(null, id);
@@ -164,7 +164,7 @@
));
ws.storeExtension(null, Arrays.asList(ext));
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension(ext);
try {
@@ -231,7 +231,7 @@
ws.store(null, wikitties);
// search test
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension(EXT_TEST);
w.setField(EXT_TEST.getName(), "fieldName1", "003309");
Criteria criteria = Search.query(w).criteria()
@@ -272,7 +272,7 @@
ws.store(null, wikitties);
// search test
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension(EXT_TEST);
w.setField(EXT_TEST.getName(), "fieldName1", "663300");
Criteria criteria = Search.query(w).criteria()
@@ -333,7 +333,7 @@
}
// search test
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension(EXT_TEST);
w.setField(EXT_TEST.getName(), "fieldName0", "chaiseICI");
Criteria criteria = Search.query(w).criteria();
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -13,11 +13,12 @@
import org.junit.Before;
import org.junit.Test;
import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.FieldType.TYPE;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyServiceInMemory;
import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.FieldType.TYPE;
import org.nuiton.wikitty.api.AbstractTestApi;
public class InMemoryStorageTest extends AbstractTestApi {
@@ -65,7 +66,7 @@
}
private Wikitty createWikitty(String wDef, WikittyExtension... exts) {
- Wikitty w = new Wikitty();
+ Wikitty w = new WikittyImpl();
w.addExtension( Arrays.asList(exts) );
for ( String line : wDef.split(",") ) {
int eqIdx = line.indexOf('=');
Modified: trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyStorageHBase.java
===================================================================
--- trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyStorageHBase.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase/WikittyStorageHBase.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -308,7 +308,7 @@
protected Wikitty constructWikitty(WikittyTransaction transaction, Result row, String ... fqFieldName) {
Set<String> acceptedField = new HashSet<String>(Arrays.asList(fqFieldName));
String id = Bytes.toString(row.getValue(F_ADMIN, Q_ID));
- Wikitty result = new Wikitty(id);
+ Wikitty result = new WikittyImpl(id);
byte[] version = row.getValue(F_ADMIN, Q_VERSION);
if (version != null) {
Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -27,10 +27,10 @@
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.JDBC_DRIVER;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_WIKITTY;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN_TEST;
-import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA_TEST;
-import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_ADMIN;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_DATA;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_WIKITTY_ADMIN;
@@ -74,6 +74,7 @@
import org.nuiton.wikitty.WikittyException;
import org.nuiton.wikitty.WikittyExtension;
import org.nuiton.wikitty.WikittyExtensionStorage;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyStorage;
import org.nuiton.wikitty.WikittyTransaction;
import org.nuiton.wikitty.WikittyUtil;
@@ -448,7 +449,7 @@
protected Wikitty constructWikitty(WikittyTransaction transaction, String id, String version, String extensionList,
ResultSet resultSet, String... fqFieldName) throws SQLException {
Set<String> acceptedField = new HashSet<String>(Arrays.asList(fqFieldName));
- Wikitty result = new Wikitty(id);
+ Wikitty result = new WikittyImpl(id);
result.setVersion(version);
if (extensionList != null && !"".equals(extensionList)) {
for (String ext : extensionList.split(",")) {
Modified: trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTestSupport.java
===================================================================
--- trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTestSupport.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test/TopicSendReceiveTestSupport.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -195,11 +195,11 @@
protected Map<String, Wikitty> createWikitties() {
Map<String, Wikitty> map = new HashMap<String, Wikitty>();
- Wikitty wikitty = new Wikitty();
+ Wikitty wikitty = new WikittyImpl();
map.put(wikitty.getId(), wikitty);
- wikitty = new Wikitty();
+ wikitty = new WikittyImpl();
map.put(wikitty.getId(), wikitty);
- wikitty = new Wikitty();
+ wikitty = new WikittyImpl();
map.put(wikitty.getId(), wikitty);
return map;
Modified: trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTA.java
===================================================================
--- trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTA.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTA.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -18,15 +18,10 @@
package org.nuiton.wikitty.jpa.test;
-import com.arjuna.ats.arjuna.coordinator.BasicAction;
-import com.arjuna.ats.arjuna.coordinator.OnePhaseResource;
-import com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome;
-import com.arjuna.ats.arjuna.state.InputObjectState;
-import com.arjuna.ats.arjuna.state.OutputObjectState;
-import com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transaction;
@@ -35,6 +30,7 @@
import javax.transaction.xa.XAException;
import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
@@ -45,6 +41,13 @@
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import com.arjuna.ats.arjuna.coordinator.BasicAction;
+import com.arjuna.ats.arjuna.coordinator.OnePhaseResource;
+import com.arjuna.ats.arjuna.coordinator.TwoPhaseOutcome;
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.internal.arjuna.abstractrecords.LastResourceRecord;
+
/**
*
* @author ruchaud
@@ -80,7 +83,7 @@
LastResourceRecord lastResourceRecord = new LastResourceRecord(onePhaseResource);
BasicAction.Current().add(lastResourceRecord);
- Wikitty entity = new Wikitty();
+ Wikitty entity = new WikittyImpl();
entityManager.persist(entity);
userTransaction.commit();
Modified: trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTAWithSync.java
===================================================================
--- trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTAWithSync.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-jpa-impl/src/test/java/org/nuiton/wikitty/jpa/test/TestJTAWithSync.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -66,7 +66,7 @@
Transaction transaction = transactionManager.getTransaction();
transaction.registerSynchronization(new MySync());
- Wikitty entity = new Wikitty();
+ Wikitty entity = new WikittyImpl();
entityManager.persist(entity);
userTransaction.commit();
@@ -83,7 +83,7 @@
Transaction transaction = transactionManager.getTransaction();
transaction.registerSynchronization(new MySync());
- Wikitty entity = new Wikitty();
+ Wikitty entity = new WikittyImpl();
entityManager.persist(entity);
userTransaction.rollback();
Modified: trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/MultiStorageTest.java
===================================================================
--- trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/MultiStorageTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-multistorage-impl/src/test/java/org/nuiton/wikitty/multistorage/test/MultiStorageTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -20,7 +20,6 @@
import java.net.URL;
import java.util.Properties;
-import org.apache.activemq.broker.BrokerFactory;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
@@ -31,12 +30,9 @@
import org.nuiton.wikitty.WikittyStorage;
import org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC;
import org.nuiton.wikitty.jdbc.WikittyStorageJDBC;
-import org.nuiton.wikitty.jms.WikittyExtensionStorageJMS;
-import org.nuiton.wikitty.jms.WikittyJMSUtil;
-import org.nuiton.wikitty.jms.WikittyStorageJMS;
import org.nuiton.wikitty.multistorage.MultiStorageConfiguration;
-import org.nuiton.wikitty.multistorage.WikittyServiceMultiStorage;
import org.nuiton.wikitty.multistorage.MultiStorageConfiguration.BasicConfiguration;
+import org.nuiton.wikitty.multistorage.WikittyServiceMultiStorage;
/**
* MultiStorageTest build a multi-storage configuration using jdbc and jms
@@ -68,7 +64,7 @@
public void testMultiStorage() throws Exception {
// create and store a simple wikitty
WikittyExtension extension = new WikittyExtension("extension");
- Wikitty wikitty = new Wikitty();
+ Wikitty wikitty = new WikittyImpl();
wikitty.addExtension(extension);
service.store(null, wikitty);
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrSearchTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrSearchTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/SolrSearchTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -8,21 +8,22 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
import org.junit.Test;
-import org.junit.Before;
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.FacetTopic;
import org.nuiton.wikitty.PagedResult;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.conform.AbstractTestConformance;
+import org.nuiton.wikitty.conform.StorageTest;
import org.nuiton.wikitty.search.Element;
import org.nuiton.wikitty.search.Like;
+import org.nuiton.wikitty.search.Like.SearchAs;
import org.nuiton.wikitty.search.RestrictionHelper;
import org.nuiton.wikitty.search.Search;
-import org.nuiton.wikitty.search.Like.SearchAs;
-import org.nuiton.wikitty.conform.AbstractTestConformance;
-import org.nuiton.wikitty.conform.StorageTest;
public class SolrSearchTest extends AbstractTestSolr {
@@ -290,7 +291,7 @@
@Test
public void testFindAllByExample() throws Exception {
- Wikitty example = new Wikitty();
+ Wikitty example = new WikittyImpl();
example.addExtension(extProduct);
example.setField("Product", "price", 20);
Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/TreeTest.java
===================================================================
--- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/TreeTest.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/solr/test/TreeTest.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -17,14 +17,14 @@
package org.nuiton.wikitty.solr.test;
-import java.util.Map.Entry;
-import java.util.Set;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -32,14 +32,15 @@
import org.junit.Test;
import org.nuiton.wikitty.Criteria;
import org.nuiton.wikitty.ExtensionFactory;
+import org.nuiton.wikitty.FieldType.TYPE;
import org.nuiton.wikitty.Tree;
+import org.nuiton.wikitty.TreeNode;
+import org.nuiton.wikitty.TreeNodeImpl;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
-import org.nuiton.wikitty.FieldType.TYPE;
+import org.nuiton.wikitty.WikittyImpl;
+import org.nuiton.wikitty.conform.StorageTest;
import org.nuiton.wikitty.search.Search;
-import org.nuiton.wikitty.conform.StorageTest;
-import org.nuiton.wikitty.TreeNodeImpl;
-import org.nuiton.wikitty.TreeNode;
/**
*
@@ -123,7 +124,7 @@
* Attach value in node
*/
protected void addNode(String nodeName, String value) {
- Wikitty leaf = new Wikitty();
+ Wikitty leaf = new WikittyImpl();
leaf.addExtension(extension);
leaf.setField("test", "name", value);
Modified: trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java
===================================================================
--- trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java 2010-08-03 10:25:07 UTC (rev 218)
+++ trunk/wikitty-ui-zk/src/main/java/org/nuiton/wikitty/ui/WikittyController.java 2010-08-03 13:37:36 UTC (rev 219)
@@ -9,10 +9,13 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+
import javax.servlet.http.HttpSession;
+
import org.nuiton.wikitty.FieldType;
import org.nuiton.wikitty.Wikitty;
import org.nuiton.wikitty.WikittyExtension;
+import org.nuiton.wikitty.WikittyImpl;
import org.nuiton.wikitty.WikittyProxy;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
@@ -90,7 +93,7 @@
}
public void onClick$add() {
- Wikitty newWikitty = _wikittyForm.retriveWikittyInForm(formListBox, new Wikitty());
+ Wikitty newWikitty = _wikittyForm.retriveWikittyInForm(formListBox, new WikittyImpl());
_model.create(newWikitty);
if (_selectedExtension != null) {
List<Wikitty> list = _model.retrieveWikittiesByExtensionName(_selectedExtension.getName());
2
1
Author: bleny
Date: 2010-08-03 12:25:07 +0200 (Tue, 03 Aug 2010)
New Revision: 218
Url: http://nuiton.org/repositories/revision/wikitty/218
Log:
r?\195?\169?\195?\169criture de la spec s?\195?\169curit?\195?\169
Modified:
trunk/src/site/rst/Spec.rst
Modified: trunk/src/site/rst/Spec.rst
===================================================================
--- trunk/src/site/rst/Spec.rst 2010-08-03 09:48:17 UTC (rev 217)
+++ trunk/src/site/rst/Spec.rst 2010-08-03 10:25:07 UTC (rev 218)
@@ -1,24 +1,29 @@
Ce document est fait pour contenir toutes les normalisations autour de Wikitty
-Identifiant
-===========
+Identifiant des wikitties
+=========================
+
Les identifiants sont de la forme UUID[_<specifique extension>]. Donc tous les
-identifiants commence par un UUID et peu etre séparé d'une extension
-specifique pour certain besoin par un '_' (underscore)
+identifiants commence par un UUID et peut être séparé d'une extension
+spécifique pour certain besoin par un '_' (underscore)
-Droits
-======
-Si l'on veut que tout le monde puisse lire un objet, il faut laisser vide la
-liste des readers (vide ou null). Si l'on souhaitent indiquer que personne
-ne peut lire l'objet il faut mettre le owner en tant que reader. Car de
-toute façon l'owner aura toujours le droit en lecture
-Les AppAdmin doivent etre dans le *WikittyGroup* portant le nom
-**WikittyAppAdmin**.
+Gestion des droits
+==================
+
+Utilisateurs et groupes
+-----------------------
+
+Les utilisateurs ont un nom et un mot de passe, les groupes contiennent
+des utilisateurs (d'autres groupes ?)
+
+Par défaut il existe un *WikittyGroup* portant le nom **WikittyAppAdmin**.
Si ce groupe n'existe pas ou qu'il est vide, cela indique que tous les
utilisateurs sont AppAdmin. Cela est nécessaire pour deux choses:
+
- pour permettre d'avoir une authentification, mais que l'on ne souhaite pas de
gestion d'autorisation.
+
- pour servire de bootstrap au lancement de l'application seul les AppAdmin
peuvent modifier le *WikittyGroup* portant le nom **WikittyAppAdmin**, or s'il
est vide il faut pouvoir le remplir.
@@ -26,26 +31,88 @@
Il ne doit donc exister un seul *WikittyGroup* portant le nom
**WikittyAppAdmin**
+Tokens de sécurité
+------------------
+
+À chaque login, un token de sécurité est fourni à l'utilisateur. L'utilisateur
+doit fournir ce token à chaque opération pour montrer qu'il a les droits.
+Pour un token donné, on peut savoir à quel utilisateur il appartient.
+
+Les tokens sont stockés en base et supprimés au logout de l'utilateur.
+
Les SecurityToken ne sont supprimés de la base de données qu'au moment du logout
Si les utilisateurs/applications quittent sans faire le logout le nombre de
SecurityToken ne fera qu'augmenter. Pour éviter cela, il faut prévoir un petit
job qui de temps en temps fait le ménage dans les SecurityToken trop vieux.
-Gestion des droits d'extension
-l'idée c'est de créer un wikitty qui a pour extension WikittySecurity, nommé
-WikittySecurity'ExtensionName'. Les admins peuvent changer les droits, les writers
-peuvent modifier l'extension et les readers peuvent lire l'extension pour en créer
-des instances.
-Si le wikitty n'est pas trouvé, seuls les AppAdmin peuvent créer les instances et
-modifier l'extension.
-Si le reader est vide, tout le monde peut créer. Pour que suls les AppAdmin et le
-owner puissent créer des isntances, il faut mettre le owner en reader.
+Gestion des droits sur un Wikitty
+---------------------------------
+Un wikitty a plusieurs extensions, pour chacune de ces extensions, on a plusieurs
+droits. On distinque quatre niveaux de droits :
-Localisation wikitty
---------------------
+* owner (un utilisateur) donne tous les droits sur un wikitty
+* admin (zéro ou plusieurs utilisateurs / groupes) permet d'ajouter ou de
+ supprimer des éléments dans writer et reader
+
+* writer (zéro ou plusieurs utilisateurs / groupes) permet, pour chacun des
+ champs de cette extension, de modifier la valeur
+
+* reader (zéro ou plusieurs utilisateurs / groupes) permet, pour chacun des
+ champs de cette extension, de lire la valeur
+
+Si on veut que tout le monde puisse lire un wikitty, il faut laisser vide la
+liste des readers (vide ou null).
+
+Si l'on souhaite indiquer que personne ne peut lire l'objet il faut mettre le
+owner en tant que reader. Car de toute façon l'owner aura toujours le droit
+en lecture.
+
+La granularité est donc au niveau des extensions. C'est à dire qu'avoir
+le droit reader de l'extension Ext permet de lire tous les champs de l'extension
+Ext de tous les wikitty qui ont l'extension Ext.
+
+Gestion des droits sur les extensions
+-------------------------------------
+
+Pour chaque extension, on a la même hiérachie de droit qui donnent des
+possibilités différentes :
+
+* owner :
+
+* admin : permet de changer les droits de l'extension. Donc, permet d'ajouter
+ ou de supprimer des éléments dans writer et reader
+
+* writer : permet de modifier l'extension l'extension
+
+* reader : permet de lire l'extension pour en créer des instances. Si le reader
+ est vide, tout le monde peut créer. Pour que seuls les AppAdmin et le owner
+ puissent créer des instances, il faut mettre le owner en reader.
+
+Si une extension ne dispose pas de ces informations, seuls les AppAdmin peuvent
+créer les instances et modifier l'extension.
+
+Comment ces droits sont stockés
+-------------------------------
+
+Pour chaque extension connue, il y aura donc un wikitty dont le seule
+extension sera WikittySecurity. Chacun de ces wikitty aura pour identifiant
+« WikittySecurity'ExtensionName' ».
+
+Pour stoker les droits qui portent sur les extensions, on fait appel
+à des **meta-extensions**. Une
+
+Pseudo extension est portée par les extensions du wikitty. Exemple avec
+WikittySecurity sur un Wikitty Personne qui a une extension Employee et
+Customer. Il y a une extension Employee:WikittySecurity et une extension
+Customer:WikittySecurity. le séparateur de pseudo-extension = ':' comme css
+
+
+Localisation
+============
+
On rajoute une pseudo extension WikittyI18n aux extensions du wikitty.
Cette pseudo-extension a deux champs : langue et translation
@@ -75,15 +142,11 @@
-atetntion au moment de la mmigration
+attention au moment de la migration
au moment du chargement
Pseudo extension
-----------------
+================
-Pseudo extension est portée par les extensions du wikitty. Exemple avec
-WikittySecurity sur un Wikitty Personne qui a une extension Employee et
-Customer. Il y a une extension Employee:WikittySecurity et une extension
-Customer:WikittySecurity. le séparateur de pseudo-extension = ':' comme css
migration : méthode migrate(oldExtension, newExtension, Wikitty, Locale) Locale pouvant etre null.
1
0
03 Aug '10
Author: bleny
Date: 2010-08-03 11:48:17 +0200 (Tue, 03 Aug 2010)
New Revision: 217
Url: http://nuiton.org/repositories/revision/wikitty/217
Log:
a bit of javadoc
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java 2010-08-03 09:29:14 UTC (rev 216)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/FieldType.java 2010-08-03 09:48:17 UTC (rev 217)
@@ -145,7 +145,7 @@
result = WikittyUtil.toString(value); break;
default:
// if type is not found then type is business type
- // and is wikity object
+ // and is wikitty object
result = WikittyUtil.toWikitty(value); break;
}
return result;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-08-03 09:29:14 UTC (rev 216)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-08-03 09:48:17 UTC (rev 217)
@@ -244,7 +244,7 @@
/**
* Search object that correspond to criteria and that have all extension
* needed by BusinessEntity (clazz). If criteria is null, find all extensions
- * else if crtiteria is empty return nothing.
+ * else if criteria is empty return nothing.
*
* @param <E> object type
* @param clazz entity class
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java 2010-08-03 09:29:14 UTC (rev 216)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittySearchEngin.java 2010-08-03 09:48:17 UTC (rev 217)
@@ -21,7 +21,7 @@
import java.util.Map;
/**
- * WikittySearchEngin is used to abstract search engin used in WikittyService.
+ * WikittySearchEngin is used to abstract search engine used in WikittyService.
*
*
* @author poussin
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-08-03 09:29:14 UTC (rev 216)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-08-03 09:48:17 UTC (rev 217)
@@ -24,6 +24,20 @@
/**
* Wikitty service.
+ *
+ * The main implementation for this interface is {@link WikittyServiceImpl}.
+ * It can be used alone but this implementation doesn't deal with all
+ * stuffs described in this interface. Thus, other functionalities are added
+ * to the implementation through objects that decorate WikittyServiceImpl :
+ *
+ * <dl>
+ * <dt>{@link WikittyServiceCached}</dt>
+ * <dd>add a cache for wikitties</dd>
+ * <dt>{@link WikittyServiceSecurity}</dt>
+ * <dd>add user authentication support and right management</dd>
+ * <dt>{@link WikittyServiceNotifier}</dt>
+ * <dd>add notifications between client of the same wikitty service</dd>
+ * </dl>
*
* @author poussin
* @version $Revision$
1
0
r216 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search
by bleny@users.nuiton.org 03 Aug '10
by bleny@users.nuiton.org 03 Aug '10
03 Aug '10
Author: bleny
Date: 2010-08-03 11:29:14 +0200 (Tue, 03 Aug 2010)
New Revision: 216
Url: http://nuiton.org/repositories/revision/wikitty/216
Log:
#698 using constant hashCode in search
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/And.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Between.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/BinaryOperator.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Contains.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/EndsWith.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Equals.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Greater.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/GreaterOrEqual.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/In.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Less.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/LessOrEqual.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Not.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/NotEquals.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Or.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Restriction.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/StartsWith.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/And.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/And.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/And.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -75,18 +75,18 @@
if ((restrictions == null && and.getRestrictions() != null)
|| (restrictions != null && !restrictions.equals(and
- .getRestrictions())))
+ .getRestrictions()))) {
return false;
+ }
return true;
}
public int hashCode() {
- int result = And.class.getName().hashCode();
- if (restrictions != null) {
- result = 29 * result + restrictions.hashCode();
- }
- return result;
+ // equals use restrictions but unable to create hashCode from
+ // restrictions because it is not
+ // constant through time using arbitrary constant hash-code
+ return And.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Between.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Between.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Between.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -123,17 +123,10 @@
}
public int hashCode() {
- int result = Between.class.getName().hashCode();
- if (element != null) {
- result = 29 * result + element.hashCode();
- }
- if (min != null) {
- result = 29 * result + min.hashCode();
- }
- if (max != null) {
- result = 29 * result + max.hashCode();
- }
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Between.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/BinaryOperator.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/BinaryOperator.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/BinaryOperator.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -97,14 +97,10 @@
}
public int hashCode() {
- int result = BinaryOperator.class.getName().hashCode();
- if (element != null) {
- result = 29 * result + element.hashCode();
- }
- if (value != null) {
- result = 29 * result + value.hashCode();
- }
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return BinaryOperator.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Contains.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Contains.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Contains.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -106,14 +106,10 @@
}
public int hashCode() {
- int result = Contains.class.getName().hashCode();
- if (element != null) {
- result = 29 * result + element.hashCode();
- }
- if (value != null) {
- result = 29 * result + value.hashCode();
- }
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Contains.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/EndsWith.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/EndsWith.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/EndsWith.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -41,9 +41,10 @@
}
public int hashCode() {
- int result = EndsWith.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return EndsWith.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Equals.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Equals.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Equals.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -41,9 +41,10 @@
}
public int hashCode() {
- int result = Equals.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Equals.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Greater.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Greater.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Greater.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -41,9 +41,10 @@
}
public int hashCode() {
- int result = Greater.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Greater.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/GreaterOrEqual.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/GreaterOrEqual.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/GreaterOrEqual.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -41,9 +41,10 @@
}
public int hashCode() {
- int result = GreaterOrEqual.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return GreaterOrEqual.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/In.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/In.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/In.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -108,14 +108,10 @@
}
public int hashCode() {
- int result = In.class.getName().hashCode();
- if (element != null) {
- result = 29 * result + element.hashCode();
- }
- if (value != null) {
- result = 29 * result + value.hashCode();
- }
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return In.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Less.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Less.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Less.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -40,9 +40,10 @@
}
public int hashCode() {
- int result = Less.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Less.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/LessOrEqual.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/LessOrEqual.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/LessOrEqual.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -40,9 +40,10 @@
}
public int hashCode() {
- int result = LessOrEqual.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return LessOrEqual.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Not.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Not.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Not.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -75,11 +75,10 @@
}
public int hashCode() {
- int result = Not.class.getName().hashCode();
- if (restriction != null) {
- result = 29 * result + restriction.hashCode();
- }
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Not.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/NotEquals.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/NotEquals.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/NotEquals.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -40,9 +40,10 @@
}
public int hashCode() {
- int result = NotEquals.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return NotEquals.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Or.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Or.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Or.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -80,11 +80,10 @@
}
public int hashCode() {
- int result = Or.class.getName().hashCode();
- if (restrictions != null) {
- result = 29 * result + restrictions.hashCode();
- }
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Or.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Restriction.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Restriction.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/Restriction.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -72,11 +72,10 @@
}
public int hashCode() {
- int result = Restriction.class.getName().hashCode();
- if (name != null) {
- result = 29 * result + name.hashCode();
- }
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return Restriction.class.hashCode();
}
}
\ No newline at end of file
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/StartsWith.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/StartsWith.java 2010-08-02 09:21:21 UTC (rev 215)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/StartsWith.java 2010-08-03 09:29:14 UTC (rev 216)
@@ -40,9 +40,10 @@
}
public int hashCode() {
- int result = StartsWith.class.getName().hashCode();
- result = 29 * result + super.hashCode();
- return result;
+ // equals use objects that are not constant through time
+ // then, unable to create hashCode from those objects
+ // returning a constant hash-code
+ return StartsWith.class.hashCode();
}
}
\ No newline at end of file
1
0
Author: echatellier
Date: 2010-08-02 11:21:21 +0200 (Mon, 02 Aug 2010)
New Revision: 215
Url: http://nuiton.org/repositories/revision/wikitty/215
Log:
Remove useless maven configuration
Modified:
trunk/wikitty-api/pom.xml
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2010-07-30 14:37:05 UTC (rev 214)
+++ trunk/wikitty-api/pom.xml 2010-08-02 09:21:21 UTC (rev 215)
@@ -115,30 +115,9 @@
<properties>
- <!-- where to generate test sources -->
- <!--<maven.test.gen.dir>${project.build.directory}/generated-test-sources</maven.test.gen.dir>-->
- <maven.test.failure.ignore>false</maven.test.failure.ignore>
</properties>
<build>
- <resources>
- <resource>
- <directory>${maven.src.dir}/main/resources/</directory>
- <includes>
- <include>**/*.properties</include>
- <include>**/*.xml</include>
- </includes>
- </resource>
- <resource>
- <directory>${maven.gen.dir}/java/</directory>
- <includes>
- <include>**/Label.java</include>
- <include>**/LabelType.java</include>
- <include>**/TreeNode.java</include>
- <include>**/TreeNodeType.java</include>
- </includes>
- </resource>
- </resources>
<pluginManagement>
<plugins>
@@ -210,12 +189,6 @@
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <systemPropertyVariables>
- <com.arjuna.ats.arjuna.common.propertiesFile>jbosstm-properties.xml</com.arjuna.ats.arjuna.common.propertiesFile>
- </systemPropertyVariables>
- <skip>${maven.test.skip}</skip>
- <testFailureIgnore>${maven.test.testFailureIgnore}</testFailureIgnore>
- <forkMode>${maven.test.forkMode}</forkMode>
<excludes>
<!-- Exclude conformance test it not usable on WikittyServiceInMemory -->
<exclude>**/conform/*.java</exclude>
1
0