r219 - in trunk: wikitty-api/src/main/java/org/nuiton/wikitty wikitty-api/src/main/java/org/nuiton/wikitty/importexport wikitty-api/src/test/java/org/nuiton/wikitty/api wikitty-api/src/test/java/org/nuiton/wikitty/conform wikitty-api/src/test/java/org/nuiton/wikitty/memory wikitty-hbase-impl/src/main/java/org/nuiton/wikitty/hbase wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc wikitty-jms-impl/src/test/java/org/nuiton/wikitty/jms/test wikitty-jpa-impl/src/test/java/org/nuiton/wikit
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());
Le Tue, 3 Aug 2010 15:37:36 +0200 (CEST), bleny@users.nuiton.org a écrit :
Copyright (c) 2009 Sharengo, Guillaume Dufrene, Benjamin POUSSIN. Y'en a d'autre comme ça dans le code ?
Si oui, il faudrait songer à supprimer ces licences chez sharengo. -- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
participants (2)
-
bleny@users.nuiton.org -
Tony Chemit