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
November 2010
- 8 participants
- 82 discussions
r496 - in trunk: . wikitty-api wikitty-dto wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by jcouteau@users.nuiton.org 23 Nov '10
by jcouteau@users.nuiton.org 23 Nov '10
23 Nov '10
Author: jcouteau
Date: 2010-11-23 10:49:32 +0100 (Tue, 23 Nov 2010)
New Revision: 496
Url: http://nuiton.org/repositories/revision/wikitty/496
Log:
Add setter on multiplicity attributes
Put wikitty-dto in overall build
Modified:
trunk/pom.xml
trunk/wikitty-api/pom.xml
trunk/wikitty-dto/pom.xml
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-11-23 07:43:11 UTC (rev 495)
+++ trunk/pom.xml 2010-11-23 09:49:32 UTC (rev 496)
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -23,6 +25,7 @@
<module>wikitty-api</module>
<module>wikitty-solr-impl</module>
<module>wikitty-jdbc-impl</module>
+ <module>wikitty-dto</module>
<module>wikitty-ui-zk</module>
<module>wikitty-hessian-client</module>
@@ -512,7 +515,7 @@
<packaging>pom</packaging>
<properties>
- <platform>nuiton</platform>
+ <platform>nuiton.org</platform>
<projectId>wikitty</projectId>
<!-- common versions used in sub-poms -->
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2010-11-23 07:43:11 UTC (rev 495)
+++ trunk/wikitty-api/pom.xml 2010-11-23 09:49:32 UTC (rev 496)
@@ -184,7 +184,7 @@
<phase>generate-sources</phase>
<configuration>
<inputs>
- <input>zargo:src/main/xmi:*.zargo</input>
+ <input>zargo:src/main/xmi/:*.zargo</input>
</inputs>
<fullPackagePath>org.nuiton.wikitty.entities</fullPackagePath>
<defaultPackage>org.nuiton.wikitty.entities</defaultPackage>
Modified: trunk/wikitty-dto/pom.xml
===================================================================
--- trunk/wikitty-dto/pom.xml 2010-11-23 07:43:11 UTC (rev 495)
+++ trunk/wikitty-dto/pom.xml 2010-11-23 09:49:32 UTC (rev 496)
@@ -82,18 +82,6 @@
<build>
- <pluginManagement>
- <plugins>
- <!-- eugene plugin -->
- <plugin>
- <groupId>org.nuiton.eugene</groupId>
- <artifactId>maven-eugene-plugin</artifactId>
- <version>${eugeneVersion}</version>
- </plugin>
-
- </plugins>
- </pluginManagement>
-
<plugins>
<!-- processor plugin -->
<plugin>
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-11-23 07:43:11 UTC (rev 495)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-11-23 09:49:32 UTC (rev 496)
@@ -332,6 +332,17 @@
return result;
}*/;
setOperationBody(getter, getterBody);
+
+ String setterName = "set" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation setter = addOperation(abstractClass, setterName, "void");
+ addAnnotation(abstractClass, setter, "Override");
+ addParameter(setter, attributeTypeSimpleNameInSet, attributeName);
+ String setterBody = ""
+/*{
+ <%=helperClassName%>.<%=setterName%>(getWikitty(), <%=attributeName%>);
+ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
+}*/;
+ setOperationBody(setter, setterBody);
String addName = "add" + StringUtils.capitalize(attributeName);
ObjectModelOperation adder = addOperation(abstractClass, addName, "void");
@@ -561,17 +572,18 @@
attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
}
- String getterName = null;
+ String getterName;
if (WikittyTransformerUtil.isAttributeCollection(attribute)) {
// attributed is a collection, we will generate operations get, add, remove and clear
String attributeTypeSimpleNameInSet = WikittyTransformerUtil.generateResultType(attribute, true);
String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute);
+ String attributeNameCapitalized = StringUtils.capitalize(attributeName);
// now, for this attribute, we will generate add, remove and clear methods
// adding operations to contract
- getterName = "get" + StringUtils.capitalize(attributeName);
+ getterName = "get" + attributeNameCapitalized;
ObjectModelOperation getter = addOperation(abstractClassForThisMetaExtension, getterName, attributeTypeSimpleNameInSet);
addAnnotation(abstractClassForThisMetaExtension, getter, "Override");
String getterBody = ""
@@ -585,8 +597,22 @@
return result;
}*/;
setOperationBody(getter, getterBody);
+
+ String setterName = "set" + attributeNameCapitalized;
+ ObjectModelOperation setter = addOperation(abstractClassForThisMetaExtension, setterName, "void");
+ addAnnotation(abstractClassForThisMetaExtension, setter, "Override");
+ addParameter(setter,"Set<String>","values");
+ String setterBody = ""
+/*{
+ for (String value:values){
+ add<%=attributeNameCapitalized%>(value);
+ }
+}*/;
+ setOperationBody(setter, setterBody);
+
+
- String addName = "add" + StringUtils.capitalize(attributeName);
+ String addName = "add" + attributeNameCapitalized;
ObjectModelOperation adder = addOperation(abstractClassForThisMetaExtension, addName, "void");
addAnnotation(abstractClassForThisMetaExtension, adder, "Override");
addParameter(adder, "String", "element");
@@ -603,7 +629,7 @@
}*/;
setOperationBody(adder, adderBody);
- String removeName = "remove" + StringUtils.capitalize(attributeName);
+ String removeName = "remove" + attributeNameCapitalized;
ObjectModelOperation remover = addOperation(abstractClassForThisMetaExtension, removeName, "void");
addAnnotation(abstractClassForThisMetaExtension, remover, "Override");
addParameter(remover, "String", "element");
@@ -620,7 +646,7 @@
}*/;
setOperationBody(remover, removerBody);
- String clearName = "clear" + StringUtils.capitalize(attributeName);
+ String clearName = "clear" + attributeNameCapitalized;
ObjectModelOperation clear = addOperation(abstractClassForThisMetaExtension, clearName, "void");
addAnnotation(abstractClassForThisMetaExtension, clear, "Override");
String clearBody = ""
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-11-23 07:43:11 UTC (rev 495)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-11-23 09:49:32 UTC (rev 496)
@@ -218,6 +218,10 @@
String getterName = "get" + StringUtils.capitalize(attributeName);
getter = addOperation(contract, getterName, attributeTypeSimpleNameInSet);
+ String setterName = "set" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation setter = addOperation(contract, setterName, "void");
+ addParameter(setter, attributeTypeSimpleNameInSet, attributeName);
+
String addName = "add" + StringUtils.capitalize(attributeName);
ObjectModelOperation adder = addOperation(contract, addName, "void");
addParameter(adder, "String", "element");
Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java
===================================================================
--- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-11-23 07:43:11 UTC (rev 495)
+++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-11-23 09:49:32 UTC (rev 496)
@@ -106,10 +106,11 @@
String attributeTypeSimpleNameInSet = WikittyTransformerUtil.generateResultType(attribute, true);
String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute);
+ String attributeNameCapitalized = StringUtils.capitalize(attributeName);
// now, for this attribute, we will generate add, remove and clear methods
// adding operations to contract
- String getterName = "get" + StringUtils.capitalize(attributeName);
+ String getterName = "get" + attributeNameCapitalized;
ObjectModelOperation getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
addParameter(getter, "Wikitty", "wikitty");
String getterBody = ""
@@ -119,7 +120,19 @@
}*/;
setOperationBody(getter, getterBody);
- String addName = "add" + StringUtils.capitalize(attributeName);
+ String setterName = "set" + attributeNameCapitalized;
+ ObjectModelOperation setter = addOperation(helper, setterName, "void", ObjectModelModifier.STATIC);
+ addParameter(setter, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
+ addParameter(setter, attributeTypeSimpleNameInSet, attributeName);
+ String setterBody = ""
+/*{
+ for (String id:<%=attributeName%>){
+ add<%=attributeNameCapitalized%>(wikitty, id);
+ }
+}*/;
+ setOperationBody(setter, setterBody);
+
+ String addName = "add" + attributeNameCapitalized;
ObjectModelOperation adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
addParameter(adder, "Wikitty", "wikitty");
addParameter(adder, attributeType, "element");
@@ -330,22 +343,36 @@
String attributeTypeSimpleNameInSet = WikittyTransformerUtil.generateResultType(attribute, true);
String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute);
+ String capitalizedAttributeName = StringUtils.capitalize(attributeName);
// now, for this attribute, we will generate add, remove and clear methods
// adding operations to contract
- String getterName = "get" + StringUtils.capitalize(attributeName);
+ String getterName = "get" + capitalizedAttributeName;
ObjectModelOperation getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
addParameter(getter, "String", "extensionName");
addParameter(getter, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
String getterBody = ""
/*{
String fieldName = getMetaFieldName(extensionName, "<%=attributeName%>");
- <%=attributeTypeSimpleNameInSet%> result = (<%=attributeTypeSimpleNameInSet%>) wikitty.getFqField(fieldName);
+ <%=attributeTypeSimpleNameInSet%> result = (<%=attributeTypeSimpleNameInSet%>) wikitty.getFqField(fieldName);
return result;
}*/;
setOperationBody(getter, getterBody);
- String addName = "add" + StringUtils.capitalize(attributeName);
+ String setterName = "set" + capitalizedAttributeName;
+ ObjectModelOperation setter = addOperation(helper, setterName, "void", ObjectModelModifier.STATIC);
+ addParameter(setter, "String", "extensionName");
+ addParameter(setter, attributeTypeSimpleNameInSet, attributeName);
+ addParameter(setter, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
+ String setterBody = ""
+/*{
+ for (String id:<%=attributeName%>){
+ add<%=capitalizedAttributeName%>(extensionName, wikitty, id);
+ }
+}*/;
+ setOperationBody(setter, setterBody);
+
+ String addName = "add" + capitalizedAttributeName;
ObjectModelOperation adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
addParameter(adder, "String", "extensionName");
addParameter(adder, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
@@ -357,7 +384,7 @@
}*/;
setOperationBody(adder, adderBody);
- String removeName = "remove" + StringUtils.capitalize(attributeName);
+ String removeName = "remove" + capitalizedAttributeName;
ObjectModelOperation remover = addOperation(helper, removeName, "void", ObjectModelModifier.STATIC);
addParameter(remover, "String", "extensionName");
addParameter(remover, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
@@ -369,7 +396,7 @@
}*/;
setOperationBody(remover, removerBody);
- String clearName = "clear" + StringUtils.capitalize(attributeName);
+ String clearName = "clear" + capitalizedAttributeName;
ObjectModelOperation clear = addOperation(helper, clearName, "void", ObjectModelModifier.STATIC);
addParameter(clear, "String", "extensionName");
addParameter(clear, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
1
0
r494 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty test/java/org/nuiton/wikitty/api
by bpoussin@users.nuiton.org 23 Nov '10
by bpoussin@users.nuiton.org 23 Nov '10
23 Nov '10
Author: bpoussin
Date: 2010-11-22 19:55:21 +0100 (Mon, 22 Nov 2010)
New Revision: 494
Url: http://nuiton.org/repositories/revision/wikitty/494
Log:
add FIXME on bad code and test unit that must be passed when this code will be corrected
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.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-11-22 16:57:54 UTC (rev 493)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-11-22 18:55:21 UTC (rev 494)
@@ -944,6 +944,9 @@
result = WikittyServiceEnhanced.restore(service, securityToken, id);
try {
+ // FIXME poussin 20101122 this is completely false :(
+ // we can't use BeanUtils.copyProperties to copy to Wikitty
+ // there are no get or set method for field
BeanUtils.copyProperties(result, entity);
} catch (Exception eee) {
throw new WikittyException("Could not transform entity to Wikitty", eee);
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-11-22 16:57:54 UTC (rev 493)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java 2010-11-22 18:55:21 UTC (rev 494)
@@ -25,18 +25,23 @@
package org.nuiton.wikitty.api;
+import java.beans.PropertyChangeListener;
import java.math.BigDecimal;
import java.text.ParseException;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
+import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Test;
import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyConfig;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.entities.FieldType;
import org.nuiton.wikitty.entities.Wikitty;
@@ -508,5 +513,128 @@
Assert.assertEquals(wikittyId, labelWikitty.getId());
Assert.assertEquals(Collections.singleton("Test"),labelWikitty.getFieldAsObject(WikittyLabel.EXT_WIKITTYLABEL,WikittyLabel.FIELD_WIKITTYLABEL_LABELS));
+
+ ApplicationConfig config = new WikittyConfig();
+ WikittyServiceInMemory ws = new WikittyServiceInMemory(config);
+
+ ws.store(null, Collections.singleton(labelWikitty), false);
+
+ LabelDTO dto = new LabelDTO();
+ dto.addLabels("toto");
+ dto.setWikittyId(wikittyId);
+ dto.setWikittyVersion("2.0");
+
+ Wikitty w = WikittyUtil.getWikitty(ws, null, dto);
+ WikittyLabel l = new WikittyLabelImpl(w);
+
+ Assert.assertEquals(dto.getWikittyId(), l.getWikittyId());
+ Assert.assertEquals(dto.getWikittyVersion(), l.getWikittyVersion());
+ Assert.assertEquals(dto.getLabels(), l.getLabels());
}
+
+ static public class LabelDTO implements WikittyLabel {
+
+ protected String wikittyId;
+ protected String wikittyVersion;
+ protected Set<String> labels = new HashSet<String>();
+
+ public void setWikittyId(String wikittyId) {
+ this.wikittyId = wikittyId;
+ }
+
+ @Override
+ public String getWikittyId() {
+ return wikittyId;
+ }
+
+ @Override
+ public String getWikittyVersion() {
+ return wikittyVersion;
+ }
+
+ @Override
+ public void setWikittyVersion(String version) {
+ this.wikittyVersion = version;
+ }
+
+ /**
+ * getLabels :
+ * @return Set<String>
+ */
+ @Override
+ public Set<String> getLabels() {
+ return labels;
+ }
+
+ public void setLabels(Set<String> labels) {
+ this.labels = labels;
+ }
+
+ /**
+ * addLabels :
+ * @param element
+ */
+ @Override
+ public void addLabels(String element) {
+ labels.add(element);
+ }
+
+ /**
+ * removeLabels :
+ * @param element
+ */
+ @Override
+ public void removeLabels(String element) {
+ labels.remove(element);
+ }
+
+ /**
+ * clearLabels :
+ */
+ @Override
+ public void clearLabels() {
+ labels.clear();
+ }
+
+ @Override
+ public Collection<String> getExtensionFields(String ext) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public Collection<String> getExtensionNames() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public Object getField(String ext, String fieldName) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void setField(String ext, String fieldName, Object value) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void addPropertyChangeListener(PropertyChangeListener listener) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void removePropertyChangeListener(PropertyChangeListener listener) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ }
}
2
1
r495 - in trunk: . wikitty-dto wikitty-dto/src wikitty-dto/src/license wikitty-dto/src/main wikitty-dto/src/main/java wikitty-dto/src/main/java/org wikitty-dto/src/main/java/org/nuiton wikitty-dto/src/main/java/org/nuiton/wikitty wikitty-dto/src/main/java/org/nuiton/wikitty/dto wikitty-dto/src/main/java/org/nuiton/wikitty/generator
by jcouteau@users.nuiton.org 23 Nov '10
by jcouteau@users.nuiton.org 23 Nov '10
23 Nov '10
Author: jcouteau
Date: 2010-11-23 08:43:11 +0100 (Tue, 23 Nov 2010)
New Revision: 495
Url: http://nuiton.org/repositories/revision/wikitty/495
Log:
Add wikitty-dto module
Added:
trunk/wikitty-dto/
trunk/wikitty-dto/LICENSE.txt
trunk/wikitty-dto/README.txt
trunk/wikitty-dto/changelog.txt
trunk/wikitty-dto/pom.xml
trunk/wikitty-dto/src/
trunk/wikitty-dto/src/license/
trunk/wikitty-dto/src/license/THIRD-PARTY.properties
trunk/wikitty-dto/src/main/
trunk/wikitty-dto/src/main/java/
trunk/wikitty-dto/src/main/java/org/
trunk/wikitty-dto/src/main/java/org/nuiton/
trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/
trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/
trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java
trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/generator/
trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java
Property changes on: trunk/wikitty-dto
___________________________________________________________________
Added: svn:ignore
+ target
*.iml
*.iws
*.ipr
Added: trunk/wikitty-dto/LICENSE.txt
===================================================================
--- trunk/wikitty-dto/LICENSE.txt (rev 0)
+++ trunk/wikitty-dto/LICENSE.txt 2010-11-23 07:43:11 UTC (rev 495)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Added: trunk/wikitty-dto/pom.xml
===================================================================
--- trunk/wikitty-dto/pom.xml (rev 0)
+++ trunk/wikitty-dto/pom.xml 2010-11-23 07:43:11 UTC (rev 495)
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>wikitty</artifactId>
+ <version>3.0-SNAPSHOT</version>
+ </parent>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+ <groupId>org.nuiton.wikitty</groupId>
+ <artifactId>wikitty-dto</artifactId>
+
+ <dependencies>
+
+ <!-- sibling dependencies -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-generators</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>wikitty-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>eugene</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>Wikitty :: dto</name>
+
+ <description>Provide DTOs for Wikitty</description>
+ <inceptionYear>2010</inceptionYear>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+ <properties>
+
+ <!-- extra files to include in release -->
+ <redmine.releaseFiles>
+ target/${project.build.finalName}.${project.packaging}
+ </redmine.releaseFiles>
+ </properties>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+ <!-- eugene plugin -->
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${eugeneVersion}</version>
+ </plugin>
+
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+ <!-- processor plugin -->
+ <plugin>
+ <groupId>org.nuiton.processor</groupId>
+ <artifactId>maven-processor-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <includes>**/*.java</includes>
+ <filters>
+ org.nuiton.processor.filters.GeneratorTemplatesFilter
+ </filters>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>api-dto-generation</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <testPhase>true</testPhase>
+ <inputs>
+ <input>classpath:model:/:wikitty.objectmodel</input>
+ </inputs>
+ <fullPackagePath>org.nuiton.wikitty.entities
+ </fullPackagePath>
+ <defaultPackage>org.nuiton.wikitty.entities
+ </defaultPackage>
+ <extractedPackages>org.nuiton.wikitty.entities
+ </extractedPackages>
+ <templates>
+ org.nuiton.wikitty.generator.WikittyDTOGenerator
+ </templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- expose new plexus components -->
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate-metadata</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+
+ </build>
+
+</project>
Added: trunk/wikitty-dto/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/wikitty-dto/src/license/THIRD-PARTY.properties (rev 0)
+++ trunk/wikitty-dto/src/license/THIRD-PARTY.properties 2010-11-23 07:43:11 UTC (rev 495)
@@ -0,0 +1,51 @@
+###
+# #%L
+# Wikitty :: dto
+#
+# $Id$
+# $HeadURL$
+# %%
+# Copyright (C) 2010 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+# Generated by org.nuiton.license.plugin.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache 2
+# - Apache Software License, version 1.1
+# - BSD License
+# - BSD style
+# - Indiana University Extreme! Lab Software License, vesion 1.1.1
+# - LGPL
+# - LGPL 2.1
+# - Lesser General Public License (LGPL) v 3.0
+# - Public Domain
+# - The Apache Software License, Version 2.0
+# - https://svn.codehaus.org/picocontainer/java/picocontainer/2.x/trunk/LICENSE…
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Sat Nov 20 14:37:54 CET 2010
+commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
+dom4j--dom4j--1.6.1=BSD License
+javax.transaction--jta--1.1=COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+jaxen--jaxen--1.1.1=http\://jaxen.codehaus.org/license.html
+jdom--jdom--1.0=The Apache Software License, Version 2.0
+org.jgroups--jgroups--2.10.0.GA=LGPL 2.1
+xalan--xalan--2.6.0=The Apache Software License, Version 2.0
+xpp3--xpp3_min--1.1.3.4.O=Indiana University Extreme! Lab Software License
Added: trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java
===================================================================
--- trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java (rev 0)
+++ trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java 2010-11-23 07:43:11 UTC (rev 495)
@@ -0,0 +1,72 @@
+/*
+ * #%L
+ * Wikitty :: dto
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.wikitty.dto;
+
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ObjectUtil;
+import org.nuiton.wikitty.entities.BusinessEntity;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyImpl;
+
+/**
+ * User: couteau
+ * Date: 19 nov. 2010
+ */
+public class DTOHelper {
+
+ static Log log = LogFactory.getLog(DTOHelper.class);
+
+ public static <E extends BusinessEntity, F extends BusinessEntity> E toDto(F w) {
+ Class clazz = w.getClass();
+ String dtoClassName = clazz.getName().replace("Impl", "DTO").replace("CopyOnWrite", "DTO");
+ E result = null;
+ try {
+ result = (E)ObjectUtil.newInstance(dtoClassName+"()");
+ BeanUtils.copyProperties(result, w);
+ }catch (Exception eee){
+ log.error("Could not transform Wikitty to DTO", eee);
+ }
+ return result;
+ }
+
+ public static <E extends BusinessEntity, F extends BusinessEntity> E fromDto(F dto) {
+ Class clazz = dto.getClass();
+ String wClassName = clazz.getName().replace("DTO", "Impl");
+ E result = null;
+ try {
+ Class clazzImpl = Class.forName(wClassName);
+ Wikitty w = new WikittyImpl(dto.getWikittyId());
+ result = (E)ObjectUtil.newInstance(clazzImpl+"(w)");
+ BeanUtils.copyProperties(result, dto);
+ } catch (Exception eee){
+ log.error("Could not transform DTO to Wikitty", eee);
+ }
+ return result;
+
+ }
+
+}
Added: trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java
===================================================================
--- trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java (rev 0)
+++ trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java 2010-11-23 07:43:11 UTC (rev 495)
@@ -0,0 +1,385 @@
+/*
+ * #%L
+ * Wikitty :: dto
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.wikitty.generator;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.Transformer;
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+
+
+/*{generator option: writeString = }*/
+/*{generator option: parentheses = false}*/
+/*{generator option: writeString = +}*/
+
+/**
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.wikitty.generator.WikittyDTOGenerator"
+ */
+public class WikittyDTOGenerator extends ObjectModelTransformerToJava {
+
+ private static final Log log = LogFactory.getLog(WikittyDTOGenerator.class);
+
+ /**
+ * map busines entity from source model to generated abstract class
+ */
+ protected Map<ObjectModelClass, ObjectModelClass> processedClasses =
+ new HashMap<ObjectModelClass, ObjectModelClass>();
+
+ /**
+ * pattern to parse toString tagValue
+ * for the string "abc{foo|bar}defrzeg{uvw|xyz}oeira"
+ * will match {foo|bar} and {uvw|xyz} with groups for foo, bar, uvw and xyz
+ */
+ protected Pattern toStringTagValuePattern = Pattern.compile("\\{(([^|}])*)(?:\\|([^}]*))?\\}");
+
+ /**
+ * map "Client.name" to "getName()" or any getter to read this attribute
+ * those getter names are stored while generating in order to be found
+ * later when generating toString()
+ */
+ protected Map<String, String> attributeToGetterName = new HashMap<String, String>();
+
+ @Override
+ protected Transformer<ObjectModel, ObjectModel> initPreviousTransformer() {
+ return new WikittyPurifierTransformer();
+ }
+
+ protected List<ObjectModelClass> entitiesWithInheritedOperations =
+ new ArrayList<ObjectModelClass>();
+
+ @Override
+ public void transformFromModel(ObjectModel model) {
+
+ // contains boths businessEntities and metaExtensions
+ // elements may have one of the two sterotypes or both
+ // but elements with none of them aren't in this list
+ List<ObjectModelClass> modelBoth = new ArrayList<ObjectModelClass>();
+
+ // fill modelBusinessEntities with entities found in model
+ for (ObjectModelClass clazz : model.getClasses()) {
+ if (WikittyTransformerUtil.isBusinessEntity(clazz) ||
+ WikittyTransformerUtil.isMetaExtension(clazz)) {
+ modelBoth.add(clazz);
+ }
+ }
+
+ for (ObjectModelClass clazz : modelBoth) {
+ ObjectModelClass abstractClass = createAbstractClass(
+ businessEntityToDTOName(clazz),
+ clazz.getPackageName());
+ processedClasses.put(clazz, abstractClass);
+ addInterface(abstractClass, clazz.getQualifiedName());
+ }
+
+ for (ObjectModelClass clazz : modelBoth) {
+ if (WikittyTransformerUtil.isMetaExtension(clazz)) {
+ addMetaExtensionOperations(clazz, processedClasses.get(clazz));
+ } else if (WikittyTransformerUtil.isBusinessEntity(clazz)) {
+ addOperations(clazz, processedClasses.get(clazz));
+ }
+ }
+
+ // at this time, all operations in generated abstracts are just the operations
+ // like get/set etc. we will copy all operations of a given class to all children
+ // that's why constructors and others operations are not yet added
+ for (ObjectModelClass clazz : modelBoth) {
+ if (WikittyTransformerUtil.isBusinessEntity(clazz)) {
+ addInheritedOperations(clazz, processedClasses.get(clazz));
+ }
+ }
+
+ for (ObjectModelClass clazz : modelBoth) {
+ ObjectModelClass abstractClassForThisEntity = processedClasses.get(clazz);
+ addConstructors(abstractClassForThisEntity);
+ addToString(clazz, abstractClassForThisEntity);
+ }
+
+ processedClasses.clear();
+ }
+
+ protected void addSerialVersionUID(ObjectModelClass clazz) {
+ // adding a generated serialVersionUID
+ Random random = new Random();
+ Long serialVersionUIDs = random.nextLong();
+ addConstant(clazz,
+ "serialVersionUID",
+ "long",
+ serialVersionUIDs.toString() + "L",
+ ObjectModelModifier.PRIVATE);
+ }
+
+ protected void addConstructors(ObjectModelClass clazz) {
+
+ ObjectModelOperation constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC);
+ setOperationBody(constructor, ""
+/*{
+}*/);
+
+ }
+
+ protected void addOperations(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
+ // generating operations with bodies to realize contract
+ for (ObjectModelAttribute attribute : businessEntity.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // needed below, in templates
+ String attributeType = WikittyTransformerUtil.generateResultType(attribute, false);
+ String attributeName = attribute.getName();
+
+ //add necessary import
+ addImport(abstractClass, attribute.getType());
+
+ //If alternative name, use it
+ if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) {
+ attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
+ }
+
+ String getterName;
+
+ if (WikittyTransformerUtil.isAttributeCollection(attribute)) {
+ // attribute is a collection, we will generate operations
+ // get, add, remove and clear
+ String collectionType = WikittyTransformerUtil.getCollectionTypeName(attribute);
+ if (collectionType.equals("Set")){
+ addImport(abstractClass, java.util.Set.class);
+ }
+ if (collectionType.equals("List")){
+ addImport(abstractClass, java.util.List.class);
+
+ }
+
+ String attributeTypeInSet = WikittyTransformerUtil.generateResultType(attribute, true);
+
+ //adding the attribute
+ addAttribute(abstractClass, attributeName, attributeTypeInSet);
+
+ // adding the getter
+ getterName = "get" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation getter = addOperation(abstractClass, getterName, attributeTypeInSet);
+ addAnnotation(abstractClass, getter, "Override");
+ String getterBody = ""
+/*{
+ return <%=attributeName%>;
+}*/;
+ setOperationBody(getter, getterBody);
+
+ // adding the setter
+ getterName = "set" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation setter = addOperation(abstractClass, getterName, "void");
+ addAnnotation(abstractClass, setter, "Override");
+ addParameter(setter, attributeTypeInSet, attributeName);
+ String setterBody = ""
+/*{
+ this.<%=attributeName%>=<%=attributeName%>;
+}*/;
+ setOperationBody(setter, setterBody);
+
+ //adding the add method
+ String addName = "add" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation adder = addOperation(abstractClass, addName, "void");
+ addAnnotation(abstractClass, adder, "Override");
+ addParameter(adder, attributeType, "element");
+ String adderBody = ""
+/*{
+ <%=attributeName%>.add(element);
+}*/;
+ setOperationBody(adder, adderBody);
+
+ //adding the remove method
+ String removeName = "remove" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation remover = addOperation(abstractClass, removeName, "void");
+ addAnnotation(abstractClass, remover, "Override");
+ addParameter(remover, attributeType, "element");
+ String removerBody = ""
+/*{
+ <%=attributeName%>.remove(element);
+}*/;
+ setOperationBody(remover, removerBody);
+
+ //adding the clear method
+ String clearName = "clear" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation clear = addOperation(abstractClass, clearName, "void");
+ addAnnotation(abstractClass, clear, "Override");
+ String clearBody = ""
+/*{
+ <%=attributeName%>.clear();
+}*/;
+ setOperationBody(clear, clearBody);
+
+ } else {
+ //No multiplicity
+
+ //add necessary import
+ addImport(abstractClass, attribute.getType());
+
+ //adding the attribute
+ addAttribute(abstractClass, attributeName, attributeType);
+
+ // adding getter
+ getterName = "get" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation getter = addOperation(abstractClass, getterName, attributeType);
+ addAnnotation(abstractClass, getter, "Override");
+ setOperationBody(getter, ""
+/*{
+ return <%=attributeName%>;
+}*/);
+
+ //adding setter
+ String setterName = "set" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation setter = addOperation(abstractClass, setterName, "void");
+ addAnnotation(abstractClass, setter, "Override");
+ addParameter(setter, attributeType, attributeName);
+ setOperationBody(setter, ""
+/*{
+ this.<%=attributeName%>=<%=attributeName%>;
+}*/);
+ }
+
+ // save the getter name for this attribute
+ attributeToGetterName.put(businessEntity.getName() + "." + attributeName, getterName);
+ }
+ }
+ }
+
+ /**
+ * Add inherited operations to the abstract generated from an entity.
+ * Method browse superClasses to copy methods and their bodies. The method
+ * deal with imports, cause bodies call the Helper of the classe where
+ * the attribute was declared.
+ * <p/>
+ * If A inherit from B and B inherit from and A, B, C not in the same package
+ * we B need to import CHelper and A need to import BHelper. But, since A
+ * has C attributes too, it needs CHelper too. So when we will process B,
+ * we will save needed imports, A will get them thus import CHelper.
+ */
+ protected void addInheritedOperations(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
+
+ if (!entitiesWithInheritedOperations.contains(businessEntity)) {
+
+ // add attributes and methods inherited from super classes
+ for (ObjectModelClass superClass : businessEntity.getSuperclasses()) {
+
+ // process super classes first, so we will get inherited operations from superclass
+ addInheritedOperations(superClass, processedClasses.get(superClass));
+
+ if (WikittyTransformerUtil.isBusinessEntity(superClass)) {
+
+ //Add operations for the super class
+ addOperations(superClass, abstractClass);
+ }
+ }
+
+ entitiesWithInheritedOperations.add(businessEntity);
+ }
+ }
+
+ /**
+ * add a toString method
+ * if a toString tagValue is attached to businessEntity, it will be used
+ * to generate a toString as this :
+ * <p/>
+ * given "hello {Person.name|unknow}"
+ * <p/>
+ * will try to replace first {...} by name field value for extension Person.
+ * if this information is not available, will do unknow.
+ */
+ protected void addToString(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
+
+ String toStringOperationBody;
+
+ if (businessEntity.hasTagValue(WikittyTransformerUtil.TAG_TO_STRING)) {
+ String toStringPattern = businessEntity.getTagValue(WikittyTransformerUtil.TAG_TO_STRING);
+
+ // toStringPattern is something like
+ // "hello {Person.name|unknow} employe of {Company.name|unknow}"
+ //
+
+ Matcher matcher = toStringTagValuePattern.matcher(toStringPattern);
+
+ while (matcher.find()) {
+ String wholeMatch = matcher.group(0); // "{foo|bar}"
+ String variableName = matcher.group(1); // "foo"
+ String defaultValue = matcher.group(3); // "bar", may be null
+
+ if (defaultValue == null) {
+ defaultValue = "";
+ }
+
+ if (attributeToGetterName.containsKey(variableName)) {
+ String getterName = attributeToGetterName.get(variableName);
+ toStringPattern = toStringPattern.replace(wholeMatch, ""
+/*{"
+ + <%=getterName%>().toString() +
+ "}*/);
+ } else {
+ log.warn("no field " + variableName + " in " + businessEntity.getQualifiedName());
+ toStringPattern = toStringPattern.replace(wholeMatch, defaultValue);
+ }
+ }
+
+ toStringOperationBody = ""
+/*{
+ return "<%=toStringPattern%>";
+}*/;
+ } else {
+ // no toString tagValue provided, generating a default toString
+ toStringOperationBody = ""
+/*{
+ return "dto:"+getWikittyId()+":"+getWikittyVersion();
+}*/;
+ }
+
+ ObjectModelOperation toString = addOperation(abstractClass, "toString", "String");
+ addAnnotation(abstractClass, toString, "Override");
+ setOperationBody(toString, toStringOperationBody);
+ }
+
+ protected void addMetaExtensionOperations(ObjectModelClass metaExtension,
+ ObjectModelClass abstractClassForThisMetaExtension) {
+
+ //add standard attribute operations for meta-extension
+ addOperations(metaExtension, abstractClassForThisMetaExtension);
+
+ }
+
+ /**
+ * Method to get the generated class name
+ */
+ protected String businessEntityToDTOName(ObjectModelClass clazz) {
+ return clazz.getName() + "DTO";
+ }
+}
1
0
r493 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty main/java/org/nuiton/wikitty/entities main/java/org/nuiton/wikitty/services test/java/org/nuiton/wikitty/addons test/java/org/nuiton/wikitty/api test/java/org/nuiton/wikitty/services
by jcouteau@users.nuiton.org 22 Nov '10
by jcouteau@users.nuiton.org 22 Nov '10
22 Nov '10
Author: jcouteau
Date: 2010-11-22 17:57:54 +0100 (Mon, 22 Nov 2010)
New Revision: 493
Url: http://nuiton.org/repositories/revision/wikitty/493
Log:
Remove getWikitty() method from BusinessEntity, add a method that does it in WikittyUtil
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.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-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyUtil.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -25,6 +25,8 @@
package org.nuiton.wikitty;
+import java.util.ArrayList;
+import org.apache.commons.beanutils.BeanUtils;
import org.nuiton.wikitty.entities.BusinessEntity;
import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.entities.Wikitty;
@@ -928,4 +930,27 @@
return result;
}
+ static public Wikitty getWikitty(WikittyService service,
+ String securityToken,
+ BusinessEntity entity) {
+
+ Wikitty result = null;
+
+ if (entity instanceof BusinessEntityImpl) {
+ result = ((BusinessEntityImpl) entity).getWikitty();
+ } else {
+ String id = entity.getWikittyId();
+
+ result = WikittyServiceEnhanced.restore(service, securityToken, id);
+
+ try {
+ BeanUtils.copyProperties(result, entity);
+ } catch (Exception eee) {
+ throw new WikittyException("Could not transform entity to Wikitty", eee);
+ }
+ }
+
+ return result;
+ }
+
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java 2010-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntity.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -55,14 +55,6 @@
public String getWikittyVersion();
/**
- * Return wikitty
- *
- * @return the wikitty actually storing the entity's data
- * @since 2.2.1
- */
- public Wikitty getWikitty();
-
- /**
* Only framework can use this method.
*
* @param version version to set
@@ -111,7 +103,7 @@
* @param fieldName field name
* @return feild type
*/
- public FieldType getFieldType(String ext, String fieldName);
+ //public FieldType getFieldType(String ext, String fieldName);
/**
* Add {@link PropertyChangeListener}.
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java 2010-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/BusinessEntityImpl.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -94,10 +94,6 @@
this.wikitty = wikitty;
}
- /**
- * @see BusinessEntity#getWikitty()
- */
- @Override
public Wikitty getWikitty() {
return wikitty;
}
@@ -114,7 +110,7 @@
return result;
}
- @Override
+ //@Override
public FieldType getFieldType(String ext, String fieldName) {
FieldType result = getWikitty().getExtension(ext).getFieldType(fieldName);
return result;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java 2010-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittySecurityHelper.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -26,8 +26,13 @@
package org.nuiton.wikitty.services;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.entities.BusinessEntity;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyAuthorisation;
import org.nuiton.wikitty.entities.WikittyAuthorisationHelper;
@@ -59,7 +64,6 @@
/**
* get the id of a user given his login.
*
- * @param securityToken a token
* @param login the login of the user to search for
* @return a wikitty id
*/
@@ -111,6 +115,7 @@
Wikitty result = proxy.restore(wikittyAuthorisationId);
return result;
}
+
// /**
// * @param securityToken token with rights to modify extension
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2010-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -544,7 +544,8 @@
protected void checkRestoreTreeNode(String securityToken, String userId, WikittyTreeNode treeNode) {
- refuseUnauthorizedRead(securityToken, userId, treeNode.getWikitty());
+ Wikitty treeNodeWikitty = WikittyUtil.getWikitty(ws, securityToken, treeNode);
+ refuseUnauthorizedRead(securityToken, userId, treeNodeWikitty);
}
@Override
@@ -570,7 +571,9 @@
@Override
public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
WikittyTreeNode treeNode = ws.restoreNode(securityToken, treeNodeId, null).getKey();
- Collection<Wikitty> wikitties = Arrays.asList(treeNode.getWikitty());
+ Wikitty treeNodeWikitty = WikittyUtil.getWikitty(ws, securityToken, treeNode);
+
+ Collection<Wikitty> wikitties = Arrays.asList(treeNodeWikitty);
checkStore(securityToken, wikitties);
return ws.deleteTree(securityToken, treeNodeId);
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java 2010-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -25,6 +25,8 @@
package org.nuiton.wikitty.addons;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.addons.WikittyI18nUtil;
import org.nuiton.wikitty.addons.WikittyI18nImpl;
@@ -62,8 +64,9 @@
// creation d'un label pour l'utiliser pour l'i18n
WikittyLabel label = new WikittyLabelImpl();
+ Wikitty labelWikitty = WikittyUtil.getWikitty(ws,null,label);
WikittyExtension ext =
- label.getWikitty().getExtension(WikittyLabel.EXT_WIKITTYLABEL);
+ labelWikitty.getExtension(WikittyLabel.EXT_WIKITTYLABEL);
// recuperation de support i18n pour l'extension WikittyLabel
WikittyI18n i18n = WikittyI18nUtil.getI18n(proxy, ext);
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-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -27,6 +27,7 @@
import java.math.BigDecimal;
import java.text.ParseException;
+import java.util.Collections;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
@@ -35,10 +36,15 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Test;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.entities.FieldType;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyLabel;
import org.nuiton.wikitty.entities.WikittyLabelImpl;
import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.services.WikittyServiceInMemory;
/**
*
@@ -489,4 +495,18 @@
Date date2 = WikittyUtil.parseDate(date);
Assert.assertNotNull(date2);
}
+
+ @Test
+ public void testGetWikitty() throws Exception {
+
+ WikittyLabel label = new WikittyLabelImpl();
+ label.addLabels("Test");
+
+ String wikittyId = label.getWikittyId();
+
+ Wikitty labelWikitty = WikittyUtil.getWikitty(null,null,label);
+
+ Assert.assertEquals(wikittyId, labelWikitty.getId());
+ Assert.assertEquals(Collections.singleton("Test"),labelWikitty.getFieldAsObject(WikittyLabel.EXT_WIKITTYLABEL,WikittyLabel.FIELD_WIKITTYLABEL_LABELS));
+ }
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java 2010-11-22 11:43:11 UTC (rev 492)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java 2010-11-22 16:57:54 UTC (rev 493)
@@ -24,6 +24,7 @@
*/
package org.nuiton.wikitty.services;
+import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.entities.Wikitty;
import java.util.Collections;
import org.apache.commons.logging.Log;
@@ -62,25 +63,34 @@
// ajout d'objet hors transaction
WikittyLabel label = new WikittyLabelImpl();
label.addLabels("coucou");
- ws.store(null, Collections.singleton(label.getWikitty()), false);
+ Wikitty labelWikitty = WikittyUtil.getWikitty(ws,null,label);
+
+ ws.store(null, Collections.singleton(labelWikitty), false);
+
// on doit le retrouver dans la transation (meme si elle a ete ouverte avant)
Wikitty wTx = WikittyServiceEnhanced.restore(tx, null, label.getWikittyId());
- Assert.assertEquals(label.getWikitty(), wTx);
+ Assert.assertEquals(labelWikitty, wTx);
// on creer un objet dans la transaction
WikittyLabel labelTx = new WikittyLabelImpl();
labelTx.addLabels("coucouTx");
- tx.store(null, Collections.singleton(labelTx.getWikitty()), false);
+ Wikitty labelWikittyTx = WikittyUtil.getWikitty(tx, null, labelTx);
+ Assert.assertNotNull(labelWikittyTx);
+ tx.store(null, Collections.singleton(labelWikittyTx), false);
+ //we have to find it in the transaction
+ Wikitty w = WikittyServiceEnhanced.restore(tx, null, labelTx.getWikittyId());
+ Assert.assertEquals(labelWikittyTx, w);
+
// on ne doit pas le retrouver hors de la transation
- Wikitty w = WikittyServiceEnhanced.restore(ws, null, labelTx.getWikittyId());
+ w = WikittyServiceEnhanced.restore(ws, null, labelTx.getWikittyId());
Assert.assertEquals(null, w);
// on commit, du coup on doit retrouver l'objet
tx.commit(null);
w = WikittyServiceEnhanced.restore(ws, null, labelTx.getWikittyId());
- Assert.assertEquals(labelTx.getWikitty(), w);
+ Assert.assertEquals(labelWikittyTx, w);
}
1
0
Author: sletellier
Date: 2010-11-22 12:43:11 +0100 (Mon, 22 Nov 2010)
New Revision: 492
Url: http://nuiton.org/repositories/revision/wikitty/492
Log:
Upate files headers
Modified:
trunk/src/site/rst/features.rst
trunk/src/site/rst/fonctionnement.rst
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nImpl.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nUtil.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyExtensionStorageInMemory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEnginInMemory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java
trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties
trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties
trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties
trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties
trunk/wikitty-api/src/main/xmi/wikitty.properties
trunk/wikitty-api/src/site/en/rst/index.rst
trunk/wikitty-api/src/site/rst/index.rst
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java
trunk/wikitty-generators/src/site/en/rst/index.rst
trunk/wikitty-generators/src/site/rst/index.rst
trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianClient.java
trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceSlave.java
trunk/wikitty-hessian-client/src/site/en/rst/index.rst
trunk/wikitty-hessian-client/src/site/rst/index.rst
trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/WikittyServerStart.java
trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianServer.java
trunk/wikitty-hessian-server/src/main/webapp/WEB-INF/web.xml
trunk/wikitty-hessian-server/src/main/webapp/index.jsp
trunk/wikitty-hessian-server/src/test/java/HessianTest.java
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java
trunk/wikitty-jdbc-impl/src/site/en/rst/index.rst
trunk/wikitty-jdbc-impl/src/site/rst/index.rst
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java
trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java
trunk/wikitty-solr-impl/src/site/en/rst/index.rst
trunk/wikitty-solr-impl/src/site/rst/index.rst
trunk/wikitty-ui-zk/src/site/en/rst/index.rst
trunk/wikitty-ui-zk/src/site/rst/index.rst
Modified: trunk/src/site/rst/features.rst
===================================================================
--- trunk/src/site/rst/features.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/src/site/rst/features.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
===============
Fonctionnalités
===============
Modified: trunk/src/site/rst/fonctionnement.rst
===================================================================
--- trunk/src/site/rst/fonctionnement.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/src/site/rst/fonctionnement.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
=========================
Fonctionnement de Wikitty
=========================
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty;
import org.nuiton.wikitty.services.XMPPNotifierTransporter;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nImpl.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nImpl.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nImpl.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.addons;
import java.beans.PropertyChangeEvent;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nUtil.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nUtil.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyI18nUtil.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.addons;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceEnhanced.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
import java.util.Collection;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyExtensionStorageInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyExtensionStorageInMemory.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyExtensionStorageInMemory.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.storage;
import java.util.ArrayList;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEnginInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEnginInMemory.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEnginInMemory.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.storage;
import java.util.Collection;
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittyStorageInMemory.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.storage;
import java.util.Collection;
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-client.properties 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+###
+# #%L
+# Wikitty :: api
+#
+# $Id$
+# $HeadURL$
+# %%
+# Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceHessianClient,\
org.nuiton.wikitty.services.WikittyServiceNotifier,\
org.nuiton.wikitty.services.WikittyServiceCached,\
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-inmemory.properties 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+###
+# #%L
+# Wikitty :: api
+#
+# $Id$
+# $HeadURL$
+# %%
+# Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties
wikitty.storage.jdbc.driver=org.h2.Driver
wikitty.storage.jdbc.host=jdbc:h2:mem:db
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server-slave.properties 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+###
+# #%L
+# Wikitty :: api
+#
+# $Id$
+# $HeadURL$
+# %%
+# Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties
wikitty.storage.jdbc.driver=org.h2.Driver
wikitty.storage.jdbc.host=jdbc:h2:file:/var/lib/wikitty/data/db
Modified: trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties
===================================================================
--- trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/resources/wikitty-config-sample-server.properties 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+###
+# #%L
+# Wikitty :: api
+#
+# $Id$
+# $HeadURL$
+# %%
+# Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties
wikitty.storage.jdbc.driver=org.h2.Driver
wikitty.storage.jdbc.host=jdbc:h2:file:/var/lib/wikitty/data/db
Modified: trunk/wikitty-api/src/main/xmi/wikitty.properties
===================================================================
--- trunk/wikitty-api/src/main/xmi/wikitty.properties 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/main/xmi/wikitty.properties 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+###
+# #%L
+# Wikitty :: api
+#
+# $Id$
+# $HeadURL$
+# %%
+# Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
org.nuiton.wikitty.entities.WikittyAuthorisation.class.tagvalue.version=1.0
org.nuiton.wikitty.entities.WikittyGroup.class.tagvalue.version=1.0
org.nuiton.wikitty.entities.WikittyLabel.class.tagvalue.version=1.0
Modified: trunk/wikitty-api/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-api/src/site/en/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/site/en/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: api
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty API
===========
Modified: trunk/wikitty-api/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-api/src/site/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/site/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: api
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty API
===========
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/addons/WikittyI18nTest.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.addons;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/notification/WikittyServiceNotificationTest.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.notification;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceHelperTest.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,9 +1,29 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
-
-import org.nuiton.wikitty.services.WikittyServiceCached;
-import org.nuiton.wikitty.services.WikittyServiceNotifier;
-import org.nuiton.wikitty.services.WikittyServiceInMemory;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: api
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
import org.nuiton.wikitty.entities.Wikitty;
Modified: trunk/wikitty-generators/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-generators/src/site/en/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-generators/src/site/en/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: generators
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty Generators
==================
Modified: trunk/wikitty-generators/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-generators/src/site/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-generators/src/site/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: generators
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty Generators
==================
Modified: trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianClient.java
===================================================================
--- trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianClient.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianClient.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: hessian client
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
Modified: trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceSlave.java
===================================================================
--- trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceSlave.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-client/src/main/java/org/nuiton/wikitty/services/WikittyServiceSlave.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: hessian client
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
@@ -8,8 +32,6 @@
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jivesoftware.smack.PacketListener;
Modified: trunk/wikitty-hessian-client/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-hessian-client/src/site/en/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-client/src/site/en/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: hessian client
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty Hessian Client
======================
Modified: trunk/wikitty-hessian-client/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-hessian-client/src/site/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-client/src/site/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: hessian client
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty Hessian Client
======================
Modified: trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/WikittyServerStart.java
===================================================================
--- trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/WikittyServerStart.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/WikittyServerStart.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: hessian server
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty;
Modified: trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianServer.java
===================================================================
--- trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianServer.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-server/src/main/java/org/nuiton/wikitty/services/WikittyServiceHessianServer.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: hessian server
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
Modified: trunk/wikitty-hessian-server/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/wikitty-hessian-server/src/main/webapp/WEB-INF/web.xml 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-server/src/main/webapp/WEB-INF/web.xml 2010-11-22 11:43:11 UTC (rev 492)
@@ -6,7 +6,7 @@
$Id$
$HeadURL$
%%
- Copyright (C) 2010 CodeLutin
+ Copyright (C) 2010 CodeLutin, Benjamin Poussin
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
Modified: trunk/wikitty-hessian-server/src/main/webapp/index.jsp
===================================================================
--- trunk/wikitty-hessian-server/src/main/webapp/index.jsp 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-server/src/main/webapp/index.jsp 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+<!--
+ #%L
+ Wikitty :: hessian server
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 CodeLutin, Benjamin Poussin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
Modified: trunk/wikitty-hessian-server/src/test/java/HessianTest.java
===================================================================
--- trunk/wikitty-hessian-server/src/test/java/HessianTest.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-hessian-server/src/test/java/HessianTest.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -5,7 +5,7 @@
* $Id$
* $HeadURL$
* %%
- * Copyright (C) 2010 CodeLutin
+ * Copyright (C) 2010 CodeLutin, Benjamin Poussin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: wikitty-jdbc-impl
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
Modified: trunk/wikitty-jdbc-impl/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-jdbc-impl/src/site/en/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-jdbc-impl/src/site/en/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: wikitty-jdbc-impl
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty JDBC Implementation
===========================
Modified: trunk/wikitty-jdbc-impl/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-jdbc-impl/src/site/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-jdbc-impl/src/site/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: wikitty-jdbc-impl
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty JDBC Implementation
===========================
Modified: trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: wikitty-jdbc-impl
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.services;
Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java
===================================================================
--- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,4 +1,5 @@
/**
+ * %%Ignore-License
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
Modified: trunk/wikitty-solr-impl/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-solr-impl/src/site/en/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-solr-impl/src/site/en/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: wikitty-solr-impl
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty SolR Implementation
===========================
Modified: trunk/wikitty-solr-impl/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-solr-impl/src/site/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-solr-impl/src/site/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: wikitty-solr-impl
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty SolR implementation
===========================
Modified: trunk/wikitty-ui-zk/src/site/en/rst/index.rst
===================================================================
--- trunk/wikitty-ui-zk/src/site/en/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-ui-zk/src/site/en/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: ui-zk
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty-UI-ZK
=============
Modified: trunk/wikitty-ui-zk/src/site/rst/index.rst
===================================================================
--- trunk/wikitty-ui-zk/src/site/rst/index.rst 2010-11-22 11:29:14 UTC (rev 491)
+++ trunk/wikitty-ui-zk/src/site/rst/index.rst 2010-11-22 11:43:11 UTC (rev 492)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * Wikitty :: ui-zk
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2010 CodeLutin, Benjamin Poussin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Wikitty-UI-ZK
=============
1
0
Author: sletellier
Date: 2010-11-22 12:29:14 +0100 (Mon, 22 Nov 2010)
New Revision: 491
Url: http://nuiton.org/repositories/revision/wikitty/491
Log:
- Add servlet dependency to fix build
- Reformat pom
Modified:
trunk/wikitty-hessian-server/pom.xml
Modified: trunk/wikitty-hessian-server/pom.xml
===================================================================
--- trunk/wikitty-hessian-server/pom.xml 2010-11-21 14:31:56 UTC (rev 490)
+++ trunk/wikitty-hessian-server/pom.xml 2010-11-22 11:29:14 UTC (rev 491)
@@ -25,12 +25,14 @@
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-jdbc-impl</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-solr-impl</artifactId>
@@ -42,14 +44,22 @@
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</dependency>
+
<dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
+
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
+
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-xml</artifactId>
@@ -59,20 +69,24 @@
<groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
</dependency>
+
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
</dependency>
+
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
+
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
+
<!-- TEST -->
<dependency>
<groupId>junit</groupId>
@@ -106,18 +120,21 @@
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-jpa-impl</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-jms-impl</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>wikitty-multistorage-impl</artifactId>
1
0
Author: tchemit
Date: 2010-11-21 15:31:56 +0100 (Sun, 21 Nov 2010)
New Revision: 490
Url: http://nuiton.org/repositories/revision/wikitty/490
Log:
Update mavenpom4redmine to 2.4.1.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-11-19 18:11:45 UTC (rev 489)
+++ trunk/pom.xml 2010-11-21 14:31:56 UTC (rev 490)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.4</version>
+ <version>2.4.1</version>
</parent>
<!-- ************************************************************* -->
1
0
19 Nov '10
Author: vbriand
Date: 2010-11-19 19:11:45 +0100 (Fri, 19 Nov 2010)
New Revision: 489
Url: http://nuiton.org/repositories/revision/wikitty/489
Log:
Ajout d'une m?\195?\169thode store dans le proxy prenant un Wikitty en argument
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-11-19 11:36:28 UTC (rev 488)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-11-19 18:11:45 UTC (rev 489)
@@ -136,7 +136,14 @@
resp.update(w);
return e;
}
+ public Wikitty store(Wikitty w) {
+ WikittyEvent resp = wikittyService.store(securityToken, w);
+ // update object
+ resp.update(w);
+ return w;
+ }
+
/**
* Store to WikittyService objects.
*
1
0
19 Nov '10
Author: jcouteau
Date: 2010-11-19 12:36:28 +0100 (Fri, 19 Nov 2010)
New Revision: 488
Url: http://nuiton.org/repositories/revision/wikitty/488
Log:
Add generalities documentation
Added:
trunk/src/site/resources/
trunk/src/site/resources/schemes/
trunk/src/site/resources/schemes/multiServerDeployment.png
trunk/src/site/resources/schemes/multiServerDeployment.svg
trunk/src/site/resources/schemes/swingDeployment.png
trunk/src/site/resources/schemes/swingDeployment.svg
trunk/src/site/resources/schemes/webDeployment.png
trunk/src/site/resources/schemes/webDeployment.svg
trunk/src/site/rst/features.rst
trunk/src/site/rst/fonctionnement.rst
Modified:
trunk/src/site/rst/index.rst
trunk/src/site/site_fr.xml
Added: trunk/src/site/resources/schemes/multiServerDeployment.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/schemes/multiServerDeployment.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/schemes/multiServerDeployment.svg
===================================================================
--- trunk/src/site/resources/schemes/multiServerDeployment.svg (rev 0)
+++ trunk/src/site/resources/schemes/multiServerDeployment.svg 2010-11-19 11:36:28 UTC (rev 488)
@@ -0,0 +1,1043 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210mm"
+ height="297mm"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="multiServerDeployment.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ y2="619.41309"
+ x2="512.76385"
+ y1="602.7193"
+ x1="256.63776"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3866"
+ xlink:href="#linearGradient3645"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3864"
+ xlink:href="#linearGradient3637"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-49.235781,-167.54451)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3862"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3860"
+ xlink:href="#linearGradient3637-4"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-5-2"
+ id="linearGradient3811"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-5-2">
+ <stop
+ id="stop3639-1-7"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641-7-9"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-5-9"
+ xlink:href="#linearGradient3637-5-2"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12001-1-6">
+ <stop
+ id="stop12003-5-1"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005-2-8"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840-1-7"
+ xlink:href="#linearGradient12001-1-6"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3637-4-6-6">
+ <stop
+ id="stop3639-0-1-8"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9-4-5"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6-6"
+ id="linearGradient3727-1"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3791" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6"
+ id="linearGradient3727"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-4-6">
+ <stop
+ id="stop3639-0-1"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9-4"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6"
+ id="linearGradient3672-7"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient12001-1">
+ <stop
+ id="stop12003-5"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005-2"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840-1"
+ xlink:href="#linearGradient12001-1"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3637-5">
+ <stop
+ id="stop3639-1"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641-7"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-5"
+ xlink:href="#linearGradient3637-5"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3645-8">
+ <stop
+ id="stop3647-2"
+ offset="0"
+ style="stop-color:#5295c0;stop-opacity:1;" />
+ <stop
+ id="stop3649-4"
+ offset="1"
+ style="stop-color:#5f9dc5;stop-opacity:1;" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3703" />
+ <radialGradient
+ r="147.14285"
+ fy="602.7193"
+ fx="328.57144"
+ cy="602.7193"
+ cx="328.57144"
+ gradientTransform="matrix(1,0,0,0.177184,0,495.927)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3693"
+ xlink:href="#linearGradient12828"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4"
+ id="linearGradient3672"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-4">
+ <stop
+ id="stop3639-0"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-7"
+ xlink:href="#linearGradient3637-4"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3663" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="619.41309"
+ x2="512.76385"
+ y1="602.7193"
+ x1="256.63776"
+ id="linearGradient3651"
+ xlink:href="#linearGradient3645"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643"
+ xlink:href="#linearGradient3637"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective2851" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-49.235781,-167.54451)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,118.878,123.518)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient13633"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12001">
+ <stop
+ id="stop12003"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.177184,0,495.927)"
+ r="147.14285"
+ fy="602.7193"
+ fx="328.57144"
+ cy="602.7193"
+ cx="328.57144"
+ id="radialGradient13651"
+ xlink:href="#linearGradient12828"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12828">
+ <stop
+ style="stop-color: rgb(72, 72, 73); stop-opacity: 1;"
+ offset="0"
+ id="stop12830" />
+ <stop
+ id="stop12862"
+ offset="0"
+ style="stop-color: rgb(67, 67, 68); stop-opacity: 1;" />
+ <stop
+ style="stop-color: rgb(143, 143, 144); stop-opacity: 0;"
+ offset="1.0000000"
+ id="stop12832" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective27"
+ inkscape:persp3d-origin="99.550003 : 66.620834 : 1"
+ inkscape:vp_z="199.10001 : 99.931252 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 99.931252 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3637">
+ <stop
+ id="stop3639"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3645">
+ <stop
+ id="stop3647"
+ offset="0"
+ style="stop-color:#5295c0;stop-opacity:1;" />
+ <stop
+ id="stop3649"
+ offset="1"
+ style="stop-color:#5f9dc5;stop-opacity:1;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12828"
+ id="radialGradient4591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.177184,0,495.927)"
+ cx="328.57144"
+ cy="602.7193"
+ fx="328.57144"
+ fy="602.7193"
+ r="147.14285" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6-6"
+ id="linearGradient4593"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12001-1-6"
+ id="linearGradient4595"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ x1="175.71875"
+ y1="737.01562"
+ x2="470.00089"
+ y2="737.01562" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-5-2"
+ id="linearGradient4597"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6"
+ id="linearGradient4599"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12001-1"
+ id="linearGradient4601"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ x1="175.71875"
+ y1="737.01562"
+ x2="470.00089"
+ y2="737.01562" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-5"
+ id="linearGradient4603"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4"
+ id="linearGradient4605"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12001"
+ id="linearGradient4607"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-49.235781,-167.54451)"
+ x1="175.71875"
+ y1="737.01562"
+ x2="470.00089"
+ y2="737.01562" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637"
+ id="linearGradient4609"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3645"
+ id="linearGradient4611"
+ gradientUnits="userSpaceOnUse"
+ x1="256.63776"
+ y1="602.7193"
+ x2="512.76385"
+ y2="619.41309" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.7"
+ inkscape:cx="438.77185"
+ inkscape:cy="765.76318"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1280"
+ inkscape:window-height="733"
+ inkscape:window-x="0"
+ inkscape:window-y="26"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Calque 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect2985"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="135.21933"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;"
+ x="141.18346"
+ y="174.23892"
+ id="text2987"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2989"
+ x="141.18346"
+ y="174.23892">Serveur</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect2985-4"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="187.21115"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="137.88582"
+ y="226.0574"
+ id="text3793"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3795"
+ x="137.88582"
+ y="226.0574">Sécurité</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="239.23401"
+ x="96.984749"
+ height="51.428547"
+ width="251.42856"
+ id="rect3797"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="156.00293"
+ y="279.09659"
+ id="text3799"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3801"
+ x="156.00293"
+ y="279.09659">Cache</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect3811"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="291.42017"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="109.25853"
+ y="330.54257"
+ id="text3803"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3805"
+ x="109.25853"
+ y="330.54257">Notification</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="343.43042"
+ x="96.984749"
+ height="51.428547"
+ width="251.42856"
+ id="rect3813"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="94.93692"
+ y="380.09698"
+ id="text3807"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3809"
+ x="94.93692"
+ y="380.09698">Implantation</tspan></text>
+ <g
+ transform="matrix(0.55221836,0,0,0.55221836,274.7647,431.12194)"
+ id="layer1-5"
+ inkscape:label="Capa 1">
+ <path
+ transform="matrix(0.592567,0,0,1.04592,-98.117079,-449.24618)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path13641"
+ style="fill:url(#radialGradient3693);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <g
+ id="g3778-5"
+ transform="translate(-3.6738593,-107.58977)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3727-1);fill-opacity:1;stroke:none"
+ id="path11090-1-4-2-4"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)" />
+ <path
+ style="fill:url(#linearGradient2840-1-7);fill-opacity:1;stroke:none"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626-3-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3811);fill-opacity:1;stroke:none"
+ id="path11090-1-2-1"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)" />
+ </g>
+ <g
+ transform="translate(-3.5441362,-153.10668)"
+ id="g3778">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3727);fill-opacity:1;stroke:none"
+ id="path11090-1-4-2"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)" />
+ <path
+ style="fill:url(#linearGradient2840-1);fill-opacity:1;stroke:none"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3643-5);fill-opacity:1;stroke:none"
+ id="path11090-1-2"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)" />
+ </g>
+ <g
+ transform="translate(-2.7923114,-119.27457)"
+ id="g3854">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3860);fill-opacity:1;stroke:none"
+ id="path11090-1-4"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-51.920585,-440.93823)" />
+ <path
+ style="fill:url(#linearGradient3862);fill-opacity:1;stroke:none"
+ d="m 33.599079,144.64477 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623511,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682861,10e-6 -68.376501,-11.82771 -69.326491,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326491,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3864);fill-opacity:1;stroke:none"
+ id="path11090-1"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-51.90013,-484.58015)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3866);fill-opacity:1;stroke:none"
+ id="path11090"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.46281285,0,0,1.0270677,-48.752197,-475.12503)" />
+ </g>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 209.28571,395.93361 0,86.42857 75,0"
+ id="path4152"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 276.16072,475.04075 7.67857,7.41072 -7.32143,5.89285"
+ id="path4168"
+ inkscape:connector-curvature="0" />
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="132.92543"
+ x="462.69904"
+ height="51.428547"
+ width="251.42856"
+ id="rect4176"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178"
+ y="171.77168"
+ x="503.6001"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="171.77168"
+ x="503.6001"
+ id="tspan4180"
+ sodipodi:role="line">Sécurité</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect4182"
+ width="251.42856"
+ height="51.428547"
+ x="462.69904"
+ y="184.94829"
+ rx="91.428566"
+ ry="0" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4184"
+ y="224.81087"
+ x="521.71722"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="224.81087"
+ x="521.71722"
+ id="tspan4186"
+ sodipodi:role="line">Cache</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="237.13445"
+ x="462.69904"
+ height="51.428547"
+ width="251.42856"
+ id="rect4188"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4190"
+ y="276.25687"
+ x="474.97281"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="276.25687"
+ x="474.97281"
+ id="tspan4192"
+ sodipodi:role="line">Notification</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect4194"
+ width="251.42856"
+ height="51.428547"
+ x="463.05618"
+ y="340.93042"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="527.14288"
+ y="380.93359"
+ id="text4196"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4198"
+ x="527.14288"
+ y="380.93359">Client</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 474.83482,129.46156 0,-49.371204 0,-2.399112"
+ id="path4217"
+ inkscape:connector-curvature="0" />
+ <g
+ inkscape:label="Capa 1"
+ id="g4561"
+ transform="matrix(0.55221836,0,0,0.55221836,617.62184,429.69337)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4591);fill-opacity:1;stroke:none"
+ id="path4563"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.592567,0,0,1.04592,-98.117079,-449.24618)" />
+ <g
+ transform="translate(-3.6738593,-107.58977)"
+ id="g4565">
+ <path
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path4567"
+ style="fill:url(#linearGradient4593);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4569"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ style="fill:url(#linearGradient4595);fill-opacity:1;stroke:none" />
+ <path
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path4571"
+ style="fill:url(#linearGradient4597);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g4573"
+ transform="translate(-3.5441362,-153.10668)">
+ <path
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path4575"
+ style="fill:url(#linearGradient4599);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4577"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ style="fill:url(#linearGradient4601);fill-opacity:1;stroke:none" />
+ <path
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path4579"
+ style="fill:url(#linearGradient4603);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g4581"
+ transform="translate(-2.7923114,-119.27457)">
+ <path
+ transform="matrix(0.471308,0,0,1.04592,-51.920585,-440.93823)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path4583"
+ style="fill:url(#linearGradient4605);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4585"
+ d="m 33.599079,144.64477 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623511,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682861,10e-6 -68.376501,-11.82771 -69.326491,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326491,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ style="fill:url(#linearGradient4607);fill-opacity:1;stroke:none" />
+ <path
+ transform="matrix(0.471308,0,0,1.04592,-51.90013,-484.58015)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path4587"
+ style="fill:url(#linearGradient4609);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.46281285,0,0,1.0270677,-48.752197,-475.12503)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path4589"
+ style="fill:url(#linearGradient4611);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="289.14471"
+ x="463.05618"
+ height="51.428547"
+ width="251.42856"
+ id="rect4613"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="513.57147"
+ y="328.79077"
+ id="text4615"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4617"
+ x="513.57147"
+ y="328.79077">Esclave</tspan></text>
+ <path
+ inkscape:connector-curvature="0"
+ id="path4619"
+ d="m 552.85714,393.07647 0,86.42857 75,0"
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4621"
+ d="m 622.58929,472.89789 7.67857,7.41072 -7.32143,5.89285"
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4623"
+ d="m 482.00397,123.45823 -7.31279,7.77189 -5.98519,-7.24614"
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="394.35074"
+ y="78.076469"
+ id="text4625"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4627"
+ x="394.35074"
+ y="78.076469">Écriture</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2,2;stroke-dashoffset:0"
+ d="m 474.7717,133.12337 0,184.35284 -12.12183,0 c 0,0 -58.41553,10.84193 -58.41553,-87.14286 C 418.16222,88.942654 312.94873,74.961012 312.61683,134.75243"
+ id="path4633"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2,2;stroke-dashoffset:0"
+ d="m 312.58929,135.21932 -0.26786,259.82143 0,35.17858 0,0.80357"
+ id="path5143"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2,2;stroke-dashoffset:0"
+ d="m 339.64286,429.1479 0,-106.78572 c 0,0 12.5,0 57.14285,0 44.64286,0 103.57143,0.35714 103.57143,0.35714 l 0,169.64286 132.85715,0 0,-1.07143"
+ id="path5145"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 315.21413,425.36687 -2.98199,5.16495 -2.84586,-4.92918"
+ id="path5147"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path5149"
+ d="m 628.66329,489.47614 5.23815,2.85144 -4.85621,2.96866"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 687.31678,123.43656 -7.31279,7.77189 -5.98519,-7.24614"
+ id="path5153"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 680.14763,129.43989 0,-49.371198 0,-2.399112"
+ id="path5155"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="605.71423"
+ y="78.076469"
+ id="text5157"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5159"
+ x="605.71423"
+ y="78.076469">Lecture</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2,2;stroke-dashoffset:0"
+ d="m 680,133.07647 0,293.57143 0,1.42857"
+ id="path5161"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 682.93594,422.72741 -3.02469,5.14006 -2.80492,-4.95259"
+ id="path5163"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
Added: trunk/src/site/resources/schemes/swingDeployment.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/schemes/swingDeployment.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/schemes/swingDeployment.svg
===================================================================
--- trunk/src/site/resources/schemes/swingDeployment.svg (rev 0)
+++ trunk/src/site/resources/schemes/swingDeployment.svg 2010-11-19 11:36:28 UTC (rev 488)
@@ -0,0 +1,781 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210mm"
+ height="297mm"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="Nouveau document 1">
+ <defs
+ id="defs4">
+ <linearGradient
+ y2="619.41309"
+ x2="512.76385"
+ y1="602.7193"
+ x1="256.63776"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3866"
+ xlink:href="#linearGradient3645"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3864"
+ xlink:href="#linearGradient3637"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-49.235781,-167.54451)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3862"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3860"
+ xlink:href="#linearGradient3637-4"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-5-2"
+ id="linearGradient3811"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-5-2">
+ <stop
+ id="stop3639-1-7"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641-7-9"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-5-9"
+ xlink:href="#linearGradient3637-5-2"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12001-1-6">
+ <stop
+ id="stop12003-5-1"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005-2-8"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840-1-7"
+ xlink:href="#linearGradient12001-1-6"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3637-4-6-6">
+ <stop
+ id="stop3639-0-1-8"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9-4-5"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6-6"
+ id="linearGradient3727-1"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3791" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6"
+ id="linearGradient3727"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-4-6">
+ <stop
+ id="stop3639-0-1"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9-4"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6"
+ id="linearGradient3672-7"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient12001-1">
+ <stop
+ id="stop12003-5"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005-2"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840-1"
+ xlink:href="#linearGradient12001-1"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3637-5">
+ <stop
+ id="stop3639-1"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641-7"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-5"
+ xlink:href="#linearGradient3637-5"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3645-8">
+ <stop
+ id="stop3647-2"
+ offset="0"
+ style="stop-color:#5295c0;stop-opacity:1;" />
+ <stop
+ id="stop3649-4"
+ offset="1"
+ style="stop-color:#5f9dc5;stop-opacity:1;" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3703" />
+ <radialGradient
+ r="147.14285"
+ fy="602.7193"
+ fx="328.57144"
+ cy="602.7193"
+ cx="328.57144"
+ gradientTransform="matrix(1,0,0,0.177184,0,495.927)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3693"
+ xlink:href="#linearGradient12828"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4"
+ id="linearGradient3672"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-4">
+ <stop
+ id="stop3639-0"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-7"
+ xlink:href="#linearGradient3637-4"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3663" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="619.41309"
+ x2="512.76385"
+ y1="602.7193"
+ x1="256.63776"
+ id="linearGradient3651"
+ xlink:href="#linearGradient3645"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643"
+ xlink:href="#linearGradient3637"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective2851" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-49.235781,-167.54451)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,118.878,123.518)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient13633"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12001">
+ <stop
+ id="stop12003"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.177184,0,495.927)"
+ r="147.14285"
+ fy="602.7193"
+ fx="328.57144"
+ cy="602.7193"
+ cx="328.57144"
+ id="radialGradient13651"
+ xlink:href="#linearGradient12828"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12828">
+ <stop
+ style="stop-color: rgb(72, 72, 73); stop-opacity: 1;"
+ offset="0"
+ id="stop12830" />
+ <stop
+ id="stop12862"
+ offset="0"
+ style="stop-color: rgb(67, 67, 68); stop-opacity: 1;" />
+ <stop
+ style="stop-color: rgb(143, 143, 144); stop-opacity: 0;"
+ offset="1.0000000"
+ id="stop12832" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective27"
+ inkscape:persp3d-origin="99.550003 : 66.620834 : 1"
+ inkscape:vp_z="199.10001 : 99.931252 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 99.931252 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3637">
+ <stop
+ id="stop3639"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3645">
+ <stop
+ id="stop3647"
+ offset="0"
+ style="stop-color:#5295c0;stop-opacity:1;" />
+ <stop
+ id="stop3649"
+ offset="1"
+ style="stop-color:#5f9dc5;stop-opacity:1;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.7"
+ inkscape:cx="286.99019"
+ inkscape:cy="745.5533"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1280"
+ inkscape:window-height="733"
+ inkscape:window-x="0"
+ inkscape:window-y="26"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Calque 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect2985"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="135.21933"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;"
+ x="141.18346"
+ y="174.23892"
+ id="text2987"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2989"
+ x="141.18346"
+ y="174.23892">Serveur</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect2985-4"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="187.21115"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="137.88582"
+ y="226.0574"
+ id="text3793"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3795"
+ x="137.88582"
+ y="226.0574">Sécurité</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="239.23401"
+ x="96.984749"
+ height="51.428547"
+ width="251.42856"
+ id="rect3797"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="156.00293"
+ y="279.09659"
+ id="text3799"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3801"
+ x="156.00293"
+ y="279.09659">Cache</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect3811"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="291.42017"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="109.25853"
+ y="330.54257"
+ id="text3803"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3805"
+ x="109.25853"
+ y="330.54257">Notification</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="343.43042"
+ x="96.984749"
+ height="51.428547"
+ width="251.42856"
+ id="rect3813"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="94.93692"
+ y="380.09698"
+ id="text3807"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3809"
+ x="94.93692"
+ y="380.09698">Implantation</tspan></text>
+ <g
+ transform="matrix(0.55221836,0,0,0.55221836,274.7647,431.12194)"
+ id="layer1-5"
+ inkscape:label="Capa 1">
+ <path
+ transform="matrix(0.592567,0,0,1.04592,-98.117079,-449.24618)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path13641"
+ style="fill:url(#radialGradient3693);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <g
+ id="g3778-5"
+ transform="translate(-3.6738593,-107.58977)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3727-1);fill-opacity:1;stroke:none"
+ id="path11090-1-4-2-4"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)" />
+ <path
+ style="fill:url(#linearGradient2840-1-7);fill-opacity:1;stroke:none"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626-3-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3811);fill-opacity:1;stroke:none"
+ id="path11090-1-2-1"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)" />
+ </g>
+ <g
+ transform="translate(-3.5441362,-153.10668)"
+ id="g3778">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3727);fill-opacity:1;stroke:none"
+ id="path11090-1-4-2"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)" />
+ <path
+ style="fill:url(#linearGradient2840-1);fill-opacity:1;stroke:none"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3643-5);fill-opacity:1;stroke:none"
+ id="path11090-1-2"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)" />
+ </g>
+ <g
+ transform="translate(-2.7923114,-119.27457)"
+ id="g3854">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3860);fill-opacity:1;stroke:none"
+ id="path11090-1-4"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-51.920585,-440.93823)" />
+ <path
+ style="fill:url(#linearGradient3862);fill-opacity:1;stroke:none"
+ d="m 33.599079,144.64477 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623511,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682861,10e-6 -68.376501,-11.82771 -69.326491,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326491,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3864);fill-opacity:1;stroke:none"
+ id="path11090-1"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-51.90013,-484.58015)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3866);fill-opacity:1;stroke:none"
+ id="path11090"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.46281285,0,0,1.0270677,-48.752197,-475.12503)" />
+ </g>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 209.28571,395.93361 0,86.42857 75,0"
+ id="path4152"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 276.16072,475.04075 7.67857,7.41072 -7.32143,5.89285"
+ id="path4168"
+ inkscape:connector-curvature="0" />
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="132.92543"
+ x="462.69904"
+ height="51.428547"
+ width="251.42856"
+ id="rect4176"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4178"
+ y="171.77168"
+ x="503.6001"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="171.77168"
+ x="503.6001"
+ id="tspan4180"
+ sodipodi:role="line">Sécurité</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect4182"
+ width="251.42856"
+ height="51.428547"
+ x="462.69904"
+ y="184.94829"
+ rx="91.428566"
+ ry="0" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4184"
+ y="224.81087"
+ x="521.71722"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="224.81087"
+ x="521.71722"
+ id="tspan4186"
+ sodipodi:role="line">Cache</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="237.13445"
+ x="462.69904"
+ height="51.428547"
+ width="251.42856"
+ id="rect4188"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4190"
+ y="276.25687"
+ x="474.97281"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="276.25687"
+ x="474.97281"
+ id="tspan4192"
+ sodipodi:role="line">Notification</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect4194"
+ width="251.42856"
+ height="51.428547"
+ x="462.69904"
+ y="289.14471"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="524.28571"
+ y="326.64789"
+ id="text4196"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4198"
+ x="524.28571"
+ y="326.64789">Client</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 582.85802,341.21479 c 1.50047,63.4221 -85.58246,95.38131 -136.3706,73.74113 C 370.72598,382.63104 456.58895,66.453298 334.3605,63.42284 209.51524,60.327503 231.32493,135.14367 231.32493,135.14367"
+ id="path4200"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:12,12;stroke-dashoffset:0"
+ d="m 347.14286,315.21933 c 0,0 62.14286,20 62.85714,-55.71429 0.61255,-64.93036 52.67857,-50.35714 52.67857,-50.35714 l 0.35715,0.17857"
+ id="path4202"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 236.88077,126.80991 -5.55584,7.32361 -8.33376,-7.07107"
+ id="path4204"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 451.96429,200.04075 9.04408,8.46525 -8.23585,8.23585"
+ id="path4206"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 595.9375,132.89789 -5.43744,-9.41792"
+ id="path4214"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 595.73746,132.87083 0,-49.371209 0,-2.399112"
+ id="path4217"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 595.99,132.11321 4.7597,-8.24403"
+ id="path4219"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.23114014px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ id="text4221"
+ sodipodi:linespacing="125%"
+ y="439.90421"
+ x="180.67862"
+ transform="matrix(0.89523334,-0.44559764,0.44559764,0.89523334,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan4223"
+ x="180.67862"
+ y="439.90421">XMPP</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:23.03198624px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ id="text4225"
+ sodipodi:linespacing="125%"
+ y="-166.91566"
+ x="304.12848"
+ transform="matrix(0.7965875,0.60452325,-0.60452325,0.7965875,0,0)"
+ inkscape:transform-center-y="-18.182746"><tspan
+ sodipodi:role="line"
+ id="tspan4227"
+ x="304.12848"
+ y="-166.91566">Hessian</tspan></text>
+ </g>
+</svg>
Added: trunk/src/site/resources/schemes/webDeployment.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/schemes/webDeployment.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/schemes/webDeployment.svg
===================================================================
--- trunk/src/site/resources/schemes/webDeployment.svg (rev 0)
+++ trunk/src/site/resources/schemes/webDeployment.svg 2010-11-19 11:36:28 UTC (rev 488)
@@ -0,0 +1,657 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210mm"
+ height="297mm"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="swingDeployment.svg"
+ inkscape:export-filename="/home/couteau/Bureau/swingDeployment.png"
+ inkscape:export-xdpi="36.400406"
+ inkscape:export-ydpi="36.400406">
+ <defs
+ id="defs4">
+ <linearGradient
+ y2="619.41309"
+ x2="512.76385"
+ y1="602.7193"
+ x1="256.63776"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3866"
+ xlink:href="#linearGradient3645"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3864"
+ xlink:href="#linearGradient3637"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-49.235781,-167.54451)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3862"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3860"
+ xlink:href="#linearGradient3637-4"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-5-2"
+ id="linearGradient3811"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-5-2">
+ <stop
+ id="stop3639-1-7"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641-7-9"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-5-9"
+ xlink:href="#linearGradient3637-5-2"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12001-1-6">
+ <stop
+ id="stop12003-5-1"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005-2-8"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840-1-7"
+ xlink:href="#linearGradient12001-1-6"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3637-4-6-6">
+ <stop
+ id="stop3639-0-1-8"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9-4-5"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6-6"
+ id="linearGradient3727-1"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3791" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6"
+ id="linearGradient3727"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-4-6">
+ <stop
+ id="stop3639-0-1"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9-4"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4-6"
+ id="linearGradient3672-7"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient12001-1">
+ <stop
+ id="stop12003-5"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005-2"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-48.300323,-87.985534)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840-1"
+ xlink:href="#linearGradient12001-1"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3637-5">
+ <stop
+ id="stop3639-1"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641-7"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-5"
+ xlink:href="#linearGradient3637-5"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3645-8">
+ <stop
+ id="stop3647-2"
+ offset="0"
+ style="stop-color:#5295c0;stop-opacity:1;" />
+ <stop
+ id="stop3649-4"
+ offset="1"
+ style="stop-color:#5f9dc5;stop-opacity:1;" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3703" />
+ <radialGradient
+ r="147.14285"
+ fy="602.7193"
+ fx="328.57144"
+ cy="602.7193"
+ cx="328.57144"
+ gradientTransform="matrix(1,0,0,0.177184,0,495.927)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3693"
+ xlink:href="#linearGradient12828"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3637-4"
+ id="linearGradient3672"
+ gradientUnits="userSpaceOnUse"
+ x1="259.61438"
+ y1="628.79071"
+ x2="540.12469"
+ y2="592.81689" />
+ <linearGradient
+ id="linearGradient3637-4">
+ <stop
+ id="stop3639-0"
+ offset="0"
+ style="stop-color:#1c4764;stop-opacity:1;" />
+ <stop
+ id="stop3641-9"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643-7"
+ xlink:href="#linearGradient3637-4"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective3663" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="619.41309"
+ x2="512.76385"
+ y1="602.7193"
+ x1="256.63776"
+ id="linearGradient3651"
+ xlink:href="#linearGradient3645"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="592.81689"
+ x2="540.12469"
+ y1="628.79071"
+ x1="259.61438"
+ id="linearGradient3643"
+ xlink:href="#linearGradient3637"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective2851" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,-49.235781,-167.54451)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2840"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="737.01562"
+ x2="470.00089"
+ y1="737.01562"
+ x1="175.71875"
+ gradientTransform="matrix(0.471308,0,0,0.471308,118.878,123.518)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient13633"
+ xlink:href="#linearGradient12001"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12001">
+ <stop
+ id="stop12003"
+ offset="0"
+ style="stop-color: rgb(27, 74, 120); stop-opacity: 1;" />
+ <stop
+ id="stop12005"
+ offset="1"
+ style="stop-color: rgb(93, 172, 209); stop-opacity: 1;" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.177184,0,495.927)"
+ r="147.14285"
+ fy="602.7193"
+ fx="328.57144"
+ cy="602.7193"
+ cx="328.57144"
+ id="radialGradient13651"
+ xlink:href="#linearGradient12828"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient12828">
+ <stop
+ style="stop-color: rgb(72, 72, 73); stop-opacity: 1;"
+ offset="0"
+ id="stop12830" />
+ <stop
+ id="stop12862"
+ offset="0"
+ style="stop-color: rgb(67, 67, 68); stop-opacity: 1;" />
+ <stop
+ style="stop-color: rgb(143, 143, 144); stop-opacity: 0;"
+ offset="1.0000000"
+ id="stop12832" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective27"
+ inkscape:persp3d-origin="99.550003 : 66.620834 : 1"
+ inkscape:vp_z="199.10001 : 99.931252 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 99.931252 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3637">
+ <stop
+ id="stop3639"
+ offset="0"
+ style="stop-color:#438ab9;stop-opacity:1;" />
+ <stop
+ id="stop3641"
+ offset="1"
+ style="stop-color:#39769e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3645">
+ <stop
+ id="stop3647"
+ offset="0"
+ style="stop-color:#5295c0;stop-opacity:1;" />
+ <stop
+ id="stop3649"
+ offset="1"
+ style="stop-color:#5f9dc5;stop-opacity:1;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="338.52953"
+ inkscape:cy="788.21759"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1280"
+ inkscape:window-height="733"
+ inkscape:window-x="0"
+ inkscape:window-y="26"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Calque 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect2985"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="135.21933"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;"
+ x="141.18346"
+ y="174.23892"
+ id="text2987"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2989"
+ x="141.18346"
+ y="174.23892">Serveur</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect2985-4"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="187.21115"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="137.88582"
+ y="226.0574"
+ id="text3793"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3795"
+ x="137.88582"
+ y="226.0574">Sécurité</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="239.23401"
+ x="96.984749"
+ height="51.428547"
+ width="251.42856"
+ id="rect3797"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="156.00293"
+ y="279.09659"
+ id="text3799"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3801"
+ x="156.00293"
+ y="279.09659">Cache</tspan></text>
+ <rect
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1"
+ id="rect3811"
+ width="251.42856"
+ height="51.428547"
+ x="96.984749"
+ y="291.42017"
+ rx="91.428566"
+ ry="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="109.25853"
+ y="330.54257"
+ id="text3803"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3805"
+ x="109.25853"
+ y="330.54257">Notification</tspan></text>
+ <rect
+ ry="0"
+ rx="91.428566"
+ y="343.43042"
+ x="96.984749"
+ height="51.428547"
+ width="251.42856"
+ id="rect3813"
+ style="fill:#ffe680;stroke:#000000;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="94.93692"
+ y="380.09698"
+ id="text3807"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3809"
+ x="94.93692"
+ y="380.09698">Implantation</tspan></text>
+ <g
+ transform="matrix(0.55221836,0,0,0.55221836,274.7647,431.12194)"
+ id="layer1-5"
+ inkscape:label="Capa 1">
+ <path
+ transform="matrix(0.592567,0,0,1.04592,-98.117079,-449.24618)"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ sodipodi:ry="26.071428"
+ sodipodi:rx="147.14285"
+ sodipodi:cy="602.7193"
+ sodipodi:cx="328.57144"
+ id="path13641"
+ style="fill:url(#radialGradient3693);fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <g
+ id="g3778-5"
+ transform="translate(-3.6738593,-107.58977)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3727-1);fill-opacity:1;stroke:none"
+ id="path11090-1-4-2-4"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)" />
+ <path
+ style="fill:url(#linearGradient2840-1-7);fill-opacity:1;stroke:none"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626-3-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3811);fill-opacity:1;stroke:none"
+ id="path11090-1-2-1"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)" />
+ </g>
+ <g
+ transform="translate(-3.5441362,-153.10668)"
+ id="g3778">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3727);fill-opacity:1;stroke:none"
+ id="path11090-1-4-2"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.985127,-361.37925)" />
+ <path
+ style="fill:url(#linearGradient2840-1);fill-opacity:1;stroke:none"
+ d="m 34.534537,224.20374 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623513,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682863,1e-5 -68.376503,-11.82771 -69.326493,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326493,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3643-5);fill-opacity:1;stroke:none"
+ id="path11090-1-2"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-50.964672,-405.02117)" />
+ </g>
+ <g
+ transform="translate(-2.7923114,-119.27457)"
+ id="g3854">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3860);fill-opacity:1;stroke:none"
+ id="path11090-1-4"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-51.920585,-440.93823)" />
+ <path
+ style="fill:url(#linearGradient3862);fill-opacity:1;stroke:none"
+ d="m 33.599079,144.64477 0,0.29457 c 0.006,-0.0975 0.0206,-0.19729 0.0295,-0.29457 l -0.0295,0 z m 138.623511,0 c 0.0302,0.33044 0.0589,0.66821 0.0589,1.00153 l 0,-1.00153 -0.0589,0 z m 0.0589,1.00153 c -1e-5,15.05224 -31.07495,27.26223 -69.35594,27.26223 -37.682861,10e-6 -68.376501,-11.82771 -69.326491,-26.55527 l 0,40.67979 c -0.0151,0.23376 -0.0147,0.45704 -0.0147,0.69223 0,0.22546 8.7e-4,0.45335 0.0147,0.67751 0.91151,14.74102 31.61889,26.59945 69.326491,26.59945 37.7076,0 68.41498,-11.85843 69.32648,-26.59945 l 0.0295,0 0,-0.50077 c 9.5e-4,-0.0587 0,-0.11794 0,-0.17674 0,-0.0588 9.4e-4,-0.11803 0,-0.17674 l 0,-41.90224 z"
+ id="path13626"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3864);fill-opacity:1;stroke:none"
+ id="path11090-1"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.471308,0,0,1.04592,-51.90013,-484.58015)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3866);fill-opacity:1;stroke:none"
+ id="path11090"
+ sodipodi:cx="328.57144"
+ sodipodi:cy="602.7193"
+ sodipodi:rx="147.14285"
+ sodipodi:ry="26.071428"
+ d="m 475.71429,602.7193 c 0,14.39885 -65.87809,26.07143 -147.14285,26.07143 -81.26475,0 -147.14285,-11.67258 -147.14285,-26.07143 0,-14.39885 65.8781,-26.07143 147.14285,-26.07143 81.26476,0 147.14285,11.67258 147.14285,26.07143 z"
+ transform="matrix(0.46281285,0,0,1.0270677,-48.752197,-475.12503)" />
+ </g>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 209.28571,395.93361 0,86.42857 75,0"
+ id="path4152"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 276.16072,475.04075 7.67857,7.41072 -7.32143,5.89285"
+ id="path4168"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 218.02959,134.69059 -5.43744,-9.41792"
+ id="path4214"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 217.82955,134.66353 0,-49.371211 0,-2.399112"
+ id="path4217"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 218.08209,133.90591 4.7597,-8.24403"
+ id="path4219"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
Added: trunk/src/site/rst/features.rst
===================================================================
--- trunk/src/site/rst/features.rst (rev 0)
+++ trunk/src/site/rst/features.rst 2010-11-19 11:36:28 UTC (rev 488)
@@ -0,0 +1,64 @@
+===============
+Fonctionnalités
+===============
+
+Indexation/Recherche/Facettes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Wikitty est un système qui indexe les données et permet de les rechercher en
+fournissant les réponses facetisées.
+
+Securité
+~~~~~~~~
+
+Wikitty fournit un système de gestion des droits en lecture et en écriture pour
+les entitées qui va jusqu'à l'entité elle-même, permettant ainsi de limiter
+l'accès à certains objet d'un type a certains utilisateurs.
+
+Transactions
+~~~~~~~~~~~~
+
+Notifications
+~~~~~~~~~~~~~
+
+Wikitty fournit un système de notifications basé sur les évènements, permettant
+à un client de savoir qu'un objet a été modifié en abse par un autre client par
+exemple et ainsi rafraichir la vue de l'application.
+
+Cache
+~~~~~
+
+Wikitty fournit un système de cache qui peut être réparti entre les clients,
+les clients et le serveur,... garantissant toujours la cohérence des données
+tout en réduisant les temps de réponse et les accès réseau/disque,...
+
+Migration
+~~~~~~~~~
+
+Wikitty gère tout seul les migrations nécessaires suite aux changements apportés
+au modèle métier. Le développeur n'a plus à se soucier des migrations de
+données. Les données sont migrées à la lecture, réduisant ainsi le temps de
+migration des données au démarrage de votre application.
+
+Les migrations complexes sont toujours possibles en surchargeant la migration
+automatique de Wikitty.
+
+Import/Export
+~~~~~~~~~~~~~
+
+Wikitty fournit un add-on d'import/export. Cet add-on permet d'importer et
+exporter des données au format CSV tout en gérant les problèmes de données
+modifiées, version des données,...
+
+Réplication
+~~~~~~~~~~~
+
+Wikitty fournit un service de réplication qui permet de disposer d'un serveur
+maître, responsable de la cohérence des données. et de serveurs esclaves. Cela
+permet de disposer de plusieurs clients et ainsi répartir la charge.
+
+Label
+~~~~~
+
+Wikitty permet de labelliser les données afin de grouper des données de types
+différents ensembles.
\ No newline at end of file
Added: trunk/src/site/rst/fonctionnement.rst
===================================================================
--- trunk/src/site/rst/fonctionnement.rst (rev 0)
+++ trunk/src/site/rst/fonctionnement.rst 2010-11-19 11:36:28 UTC (rev 488)
@@ -0,0 +1,103 @@
+=========================
+Fonctionnement de Wikitty
+=========================
+
+Concept métier
+==============
+
+Un objet java ou une table relationnelle sont des choses figées au moment de
+l'écriture du code ou la création de la base de données. Pour les faire évoluer
+par la suite, il faut donc retourner dans le code, prévoir la migration,
+etc.
+
+Il est aussi difficile de maintenir un code cohérent lorsque l'on veut
+développer la même application pour des besoins semblable mais qui ont
+chacun de petites spécificités qui rend le code difficile à maintenir sur le
+long terme, entre le code commun et le code spécifique.
+
+Wikitty essaie de répondre à ces différentes problèmatiques en apportant une
+solution technique simple à mettre en oeuvre et à utiliser.
+
+Un objet n'a pas de champs prédéfini, mais seulement un identifiant unique.
+Pour connaître les champs disponibles sur un objet, il faut regarder les
+extensions qui lui ont été ajoutées. Une extension est la définition d'un
+ensemble de champs. Par exemple nous pouvons définir l'extension Personne et
+l'extension Employer et les utiliser sur le même objet. L'objet aura donc
+tous les champs Personne et tous les champs Employer il portera donc les
+deux notions en même temps. Si pour le projet est utilisé par une société
+qui à besoin de champs complémentaire à Employer, il n'y a pas besoin de
+modifier les extensions existantes ou modifier le schéma de la base. Il faut
+simplement créer une extension spécifique que l'on ajoutera à Employer et
+que l'on pourra utilisé pour la visualisation de l'Employer. Si le projet
+principale évolue, cela n'a aucun impact sur l'extension spécifique de cette
+société. Il n'y a donc aucun effort à faire pour maintenir des extensions
+spécifiques. Les développeurs du coeur de l'application n'ont pas besoin de
+se soucier de chose spécifique qui aurait pu être développer. De la même
+façon, il n'y a pas de surcoût de maintenance pour les personnes ayant fait
+des extensions spécifiques, ces extensions sont réutilisables de version en
+version sans modification ou maintenance.
+
+Le coeur de Wikitty apporte les services de base:
+
+- génération de Bean métier pour une utilisation simple par le développeur
+- une classe WikittyProxy qui masque les objets Wikitty et manipule les Bean
+ métier généré
+- Création, sauvegarde, restoration des Entités
+- Recherche des entités (fulltext, facette, ...)
+- notion d'arbre
+
+Les services additionnels existants:
+
+- sécurité: authentification et autorisation
+- cache
+- notification (synchronisation de deux serveurs, notification en
+ client/serveur, listener sur les modifications)
+
+Les addons complémentaires:
+
+- notion de label (pour étiqueter des objets)
+- import/export
+- internationnalisation (i18n)
+
+Concept technique
+=================
+
+Le concept est d'avoir un coeur le plus simple possible avec quelques methodes
+(une vingtaine).
+
+- lecture
+- ecriture
+- recherche
+- login/logout
+- check de droit (read, write, delete)
+
+Les nouveaux services (cache, securite, notification, ...) s'intercale en
+couche au dessus du coeur pour founir les services.
+
+Le coeur delegue le travail à trois services qui peuvent être implanté avec
+des techologies différentes:
+
+- stockage des extensions (memoire, jdbc, hbase, jpa, ...)
+- stockage des données (memoire, jdbc, hbase, jpa, ...)
+- indexation et recherche (memoire, SolR, ...)
+
+Il est donc possible d'ajouter de nouveau service de haut niveau, ou
+d'ajouter de nouvelle façon de stocker l'information.
+
+Pour certain besoin il n'y a pas besoin d'implanter une nouvelle
+chouche (WikittyService). On parle alors de AddOn. C'est addon travail
+directement grace à l'API WikittyService, c'est le cas par exemple de
+l'import/export.
+
+La partie cliente des applications ne travail qu'avec le WikittyProxy qui
+masque la notion d'objet Wikitty pour retourner des beans metiers facilement
+manipulable par le développeur.
+
+Service haut niveau
+===================
+
+Un service de haut niveau peut contenir:
+
+- des extensions spécifiques
+- une couche de service specifiques
+- une classe Helper
\ No newline at end of file
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2010-11-18 18:54:15 UTC (rev 487)
+++ trunk/src/site/rst/index.rst 2010-11-19 11:36:28 UTC (rev 488)
@@ -22,14 +22,20 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
+=======
Wikitty
=======
-Wikitty est un système de stockage et de recherche de type clé/valeur.
+Qu'est-ce que Wikitty ?
+-----------------------
-Concept métier
-==============
+Wikitty est un système de stockage et de recherche de type clé/valeur
+proposant de nombreux services destinées à la création simples d'applications
+modulaires.
+Les besoins
+~~~~~~~~~~~
+
Un objet java ou une table relationnelle sont des choses figées au moment de
l'écriture du code ou la création de la base de données. Pour les faire évoluer
par la suite, il faut donc retourner dans le code, prévoir la migration,
@@ -43,83 +49,93 @@
Wikitty essaie de répondre à ces différentes problèmatiques en apportant une
solution technique simple à mettre en oeuvre et à utiliser.
-Un objet n'a pas de champs prédéfini, mais seulement un identifiant unique.
-Pour connaître les champs disponibles sur un objet, il faut regarder les
-extensions qui lui ont été ajoutées. Une extension est la définition d'un
-ensemble de champs. Par exemple nous pouvons définir l'extension Personne et
-l'extension Employer et les utiliser sur le même objet. L'objet aura donc
-tous les champs Personne et tous les champs Employer il portera donc les
-deux notions en même temps. Si pour le projet est utilisé par une société
-qui à besoin de champs complémentaire à Employer, il n'y a pas besoin de
-modifier les extensions existantes ou modifier le schéma de la base. Il faut
-simplement créer une extension spécifique que l'on ajoutera à Employer et
-que l'on pourra utilisé pour la visualisation de l'Employer. Si le projet
-principale évolue, cela n'a aucun impact sur l'extension spécifique de cette
-société. Il n'y a donc aucun effort à faire pour maintenir des extensions
-spécifiques. Les développeurs du coeur de l'application n'ont pas besoin de
-se soucier de chose spécifique qui aurait pu être développer. De la même
-façon, il n'y a pas de surcoût de maintenance pour les personnes ayant fait
-des extensions spécifiques, ces extensions sont réutilisables de version en
-version sans modification ou maintenance.
+Type d'applications
+~~~~~~~~~~~~~~~~~~~
-Le coeur de Wikitty apporte les services de base:
+Wikitty a été créé avec l'idée de fournir, essentiellement pour les applications
+de gestion, que ce soit de la gestion de contenus, de documents ou de sociétés.
+Ces applications ont souvent une base commune qui nécessite d'être adaptée aux
+besoins de chacun. Wikitty cherche a simplifier la création et la maintenance de
+ce genre d'applications.
-- génération de Bean métier pour une utilisation simple par le développeur
-- une classe WikittyProxy qui masque les objets Wikitty et manipule les Bean
- métier généré
-- Création, sauvegarde, restoration des Entités
-- Recherche des entités (fulltext, facette, ...)
-- notion d'arbre
+Avantages
+~~~~~~~~~
-Les services additionnels existants:
+Wikitty présente plusieurs avantages au développeur :
-- sécurité: authentification et autorisation
-- cache
-- notification (synchronisation de deux serveurs, notification en
- client/serveur, listener sur les modifications)
+- **Modularité** : Vous pouvez choisir d'utiliser, toutes les fonctionnalités
+proposées, aucune, certaines, uniquement par configuration. Les modules peuvent
+être rajoutés au fur et à mesure de l'évolution de votre application. Vous
+pouvez ainsi commencer par une application simple et rajouter
+des services avec le temps, comme le cache, la sécurité, la réplication, ...
+- **Modèle métier simple à modifier** : Wikitty gère tout seul les changements
+dans le modèle métier de votre application. Vous n'avez plus à vous soucier des
+migrations de données,... De plus, les données sont migrées à la lecture,
+réduisant ainsi le temps de migration des données au démarrage de votre
+application. Et si vous souhaitez effectuer une migration complexe, vous pouvez
+toujours surcharger la migration automatique de Wikitty et ainsi rester
+complètement maître des données.
+- ** Génération des objets métier**:Vous n'avez pas à vous soucier de comment
+faire pour que les objets métiers soient gérés par Wikitty, ils sont générés à
+partir du modèle UML métier de l'application.
+- **Héritage multiple**: Wikitty permet une chose qui n'est habituellement pas
+possible d'effectuer en Java : l'héritage multiple entre les objets métier. Vous
+n'avez ainsi plus de limitation dans la modélisation de votre métier et pouvez
+le représenter tel qu'il est.
-Les addons complémentaires:
+Les fonctionnalités
+-------------------
-- notion de label (pour étiqueter des objets)
-- import/export
-- internationnalisation (i18n)
+Les fonctionnalités principales de Wikitty sont :
-Concept technique
-=================
+- Indexation/Recherche/Facettes
+- Securité
+- Transactions
+- Notifications
+- Cache
+- Migration
+- Import/Export
+- Réplication
+- Label
-Le concept est d'avoir un coeur le plus simple possible avec quelques methodes
-(une vingtaine).
-- lecture
-- ecriture
-- recherche
-- login/logout
-- check de droit (read, write, delete)
+Pour plus d'informations sur les différentes fonctionnalités, référez-vous à la
+`page correspondante`_
-Les nouveaux services (cache, securite, notification, ...) s'intercale en
-couche au dessus du coeur pour founir les services.
+.. _page correspondante::features.html
-Le coeur delegue le travail à trois services qui peuvent être implanté avec
-des techologies différentes:
-- stockage des extensions (memoire, jdbc, hbase, jpa, ...)
-- stockage des données (memoire, jdbc, hbase, jpa, ...)
-- indexation et recherhce (memoire, SolR, ...)
+Technologies
+------------
-Il est donc possible d'ajouter de nouveau service de haut niveau, ou
-d'ajouter de nouvelle façon de stocker l'information.
+Wikitty est basé sur un système de briques : les services et les add-ons.
+Wikitty fournit une implémentation de chaque brique basé sur une technologie,
+mais il est tout a fait possible de changer d'implémentation et vous pouvez
+d'ailleurs réaliser vos propres implémentations.
-Pour certain besoin il n'y a pas besoin d'implanter une nouvelle
-chouche (WikittyService). On parle alors de AddOn. C'est addon travail
-directement grace à l'API WikittyService, c'est le cas par exemple de
-l'import/export.
+- **Indexation** : Actuellement basée sur SolR
+- **Stockage** des données : Actuellement basé sur JDBC, mais nous avons aussi
+ des prototypes basés sur HBase et JPA.
+- **Transport des données** (pour les services de notification notamment) est
+ actuellement basé sur XMPP. Nous avons aussi un prototype basé sur JMS.
+- Administration : Nous avons réalisé un prototype d'interface d'administration
+ des données basé sur la technologie Zk.
-La partie cliente des applications ne travail qu'avec le WikittyProxy qui
-masque la notion d'objet Wikitty pour retourner des beans metiers facilement
-manipulable par le développeur.
+Déploiements types
+------------------
-Service haut niveau
-===================
+Web
+~~~
-Un service de haut niveau peut contenir:
-- des extensions spécifiques
-- une couche de service specifiques
-- une classe Helper
+.. image:: schemes/webDeployment.png
+
+Application Swing
+~~~~~~~~~~~~~~~~~
+
+.. image:: schemes/swingDeployment.png
+
+Multi serveur
+~~~~~~~~~~~~~
+
+.. image:: schemes/multiServerDeployment.png
+
+
+
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2010-11-18 18:54:15 UTC (rev 487)
+++ trunk/src/site/site_fr.xml 2010-11-19 11:36:28 UTC (rev 488)
@@ -48,6 +48,8 @@
<menu name="Overview">
<item name="Accueil" href="index.html"/>
+ <item name="Fonctionnement" href="fonctionnement.html"/>
+ <item name="Fonctionnalités" href="features.html"/>
<item name="Changements" href="changes.html"/>
</menu>
1
0
Author: bpoussin
Date: 2010-11-18 19:54:15 +0100 (Thu, 18 Nov 2010)
New Revision: 487
Url: http://nuiton.org/repositories/revision/wikitty/487
Log:
Evolution #1071: Create and use new WikittyServiceInMemoryJdbcSolr for transaction
- add WikittyServiceInMemoryJdbcSolr
- permit to use it in WikittyServiceTransaction by configuration
- add RAMDirectoryFactory nomaly in SolR source because it's appear only in 4.0 (in dev currently) but we used 1.4.1
- change solrconfig.xml (2x we must not forgot file test version) to add support to change DirectoryFactory
Added:
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/
trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java
trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyImportExportService.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportTask.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyTransaction.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java
trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml
trunk/wikitty-solr-impl/src/test/resources/solrconfig.xml
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfig.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -61,14 +61,14 @@
}
}
- // REMOVE IT poussin 20101118, bad constructor. It not initialize correctly config
-// /**
-// * Create WikittyConfig and load particular configuration filename
-// * @param configFilename
-// */
-// public WikittyConfig(String configFilename) {
-// setDefaultOption(Option.WIKITTY_CONFIG_FILE.getKey(), configFilename);
-// }
+ /**
+ * Create WikittyConfig and load particular configuration filename
+ * @param configFilename
+ */
+ public WikittyConfig(String configFilename) {
+ this();
+ setDefaultOption(Option.WIKITTY_CONFIG_FILE.getKey(), configFilename);
+ }
/**
* Create WikittyConfig and use props as default value
@@ -138,15 +138,15 @@
WIKITTY_STORAGE_JDBC_XADATASOURCE_H2_URL(
"wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.URL",
_("JDBC xadatasource property h2 url"),
- "jdbc:h2:file:./target/data/db", String.class, false, false),
+ "${"+WIKITTY_STORAGE_JDBC_URL.getKey() + "}", String.class, false, false),
WIKITTY_STORAGE_JDBC_XADATASOURCE_H2_USER(
"wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.user",
_("JDBC xadatasource property h2 username"),
- "sa", String.class, false, false),
+ "${"+WIKITTY_STORAGE_JDBC_LOGIN.getKey() + "}", String.class, false, false),
WIKITTY_STORAGE_JDBC_XADATASOURCE_H2_PASSWORD(
"wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.password",
_("JDBC xadatasource property h2 password"),
- "", String.class, false, false),
+ "${"+WIKITTY_STORAGE_JDBC_PASSWORD.getKey() + "}", String.class, false, false),
/* Solr config name are used directly in solr config file. If
* you change it, change too in module
@@ -157,7 +157,9 @@
"./target/data/solr", File.class, false, false),
WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_FACTORY(
"wikitty.searchengine.solr.directory.factory",
- _("SolR storage type possible value: solr.StandardDirectoryFactory, solr.RAMDirectoryFactory"),
+ _("SolR storage type possible value: solr.StandardDirectoryFactory"
+ + " or org.nuiton.wikitty.solr.RAMDirectoryFactory"
+ + " (or when solr 4.0 will be used org.apache.solr.core.RAMDirectoryFactory)"),
"solr.StandardDirectoryFactory", String.class, false, false),
@@ -184,6 +186,14 @@
+ "org.nuiton.wikitty.jdbc.WikittyStorageJDBC,"
+ "org.nuiton.wikitty.solr.WikittySearchEnginSolr", String.class, false, false),
+ WIKITTY_TRANSACTION_WIKITTYSERVICE_COMPONENTS(
+ "wikitty.transaction.WikittyService.components",
+ _("WikittyService to use for transaction (must be in memory)"
+ + "ex: org.nuiton.wikitty.services.WikittyServiceInMemory"
+ + " or org.nuiton.wikitty.services.WikittyServiceInMemoryJdbcSolr)"),
+ WikittyServiceInMemory.class.getName(), String.class, false, false),
+
+
WIKITTY_SERVER_CONFIG(
"wikitty.service.server.config",
_("Jetty server configuration file name"),
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceFactory.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -40,9 +40,22 @@
* @return
*/
static public WikittyService buildWikittyService(ApplicationConfig config) {
+ String prefix = "wikitty.";
+ WikittyService result = buildWikittyService(config, prefix);
+ return result;
+ }
+
+ static public WikittyService buildWikittyServiceTransaction(ApplicationConfig config) {
+ String prefix = "wikitty.transaction.";
+ WikittyService result = buildWikittyService(config, prefix);
+ return result;
+ }
+
+ static public WikittyService buildWikittyService(
+ ApplicationConfig config, String prefix) {
WikittyService result = null;
- List<Class> layers = getComponents(config, WikittyService.class);
+ List<Class> layers = getComponents(config, prefix, WikittyService.class);
MutablePicoContainer pico = new TransientPicoContainer();
pico.addComponent(config);
@@ -51,7 +64,7 @@
// on cree un container specifique pour l'instanciate de cette objet
// avec tous les composants dont il a besoin
- MutablePicoContainer childPico = getChildContainer(config, pico, clazz);
+ MutablePicoContainer childPico = getChildContainer(config, pico, prefix, clazz);
result = childPico.getComponent(clazz);
pico.removeComponent(WikittyService.class);
@@ -86,8 +99,9 @@
* @return
*/
static protected MutablePicoContainer getChildContainer(
- ApplicationConfig config, MutablePicoContainer parent, Class clazz) {
- List<Class> comps = getComponents(config, clazz);
+ ApplicationConfig config, MutablePicoContainer parent,
+ String prefix, Class clazz) {
+ List<Class> comps = getComponents(config, prefix, clazz);
MutablePicoContainer result = makeChildContainer(parent, comps);
return result;
}
@@ -105,10 +119,10 @@
* @param clazz
* @return la liste de classe trouvee ou null si la cle n'existe pas
*/
- static protected List<Class> getComponents(ApplicationConfig config, Class clazz) {
+ static protected List<Class> getComponents(ApplicationConfig config, String prefix, Class clazz) {
List<Class> result = null;
- String key = "wikitty." + clazz.getSimpleName() + ".components";
+ String key = prefix + clazz.getSimpleName() + ".components";
String componentsString = config.getOption(key);
if (componentsString != null) {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyImportExportService.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyImportExportService.java 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/WikittyImportExportService.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -80,6 +80,7 @@
}
};
+ ApplicationConfig config = null;
/** directory path where export asynchronous file are stored */
protected String exportDirectory = "/tmp/";
/** url used by client to retrieve export file when job is ended */
@@ -97,6 +98,7 @@
public WikittyImportExportService(
ApplicationConfig config, String securityToken, WikittyService ws) {
+ this.config = config;
this.securityToken = securityToken;
this.ws = ws;
@@ -125,7 +127,7 @@
public void syncImport(FORMAT format, String s) {
Reader reader = new StringReader(s);
- ImportTask task = new ImportTask(securityToken, ws, format, reader);
+ ImportTask task = new ImportTask(securityToken, config, ws, format, reader);
task.run();
}
@@ -133,7 +135,7 @@
try {
URL url = new URL(uri);
Reader reader = new InputStreamReader(url.openStream());
- ImportTask task = new ImportTask(securityToken, ws, format, reader);
+ ImportTask task = new ImportTask(securityToken, config, ws, format, reader);
task.run();
} catch (Exception eee) {
throw new WikittyException(String.format(
@@ -145,7 +147,7 @@
try {
URL url = new URL(uri);
Reader reader = new InputStreamReader(url.openStream());
- ImportTask task = new ImportTask(securityToken, ws, format, reader);
+ ImportTask task = new ImportTask(securityToken, config, ws, format, reader);
FutureTask<String> future = new FutureTask<String>(task, null);
importExportExecutor.submit(future);
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportTask.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportTask.java 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/addons/importexport/ImportTask.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -27,6 +27,7 @@
import java.io.Reader;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationConfig;
import org.nuiton.wikitty.WikittyException;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.addons.WikittyImportExportService.FORMAT;
@@ -37,15 +38,17 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(ImportTask.class);
+ protected ApplicationConfig config;
protected WikittyService ws;
protected FORMAT format;
protected Reader reader;
protected ImportExportMethod importerExporter;
protected String securityToken;
- public ImportTask(String securityToken,
+ public ImportTask(String securityToken, ApplicationConfig config,
WikittyService ws, FORMAT format, Reader reader) {
super();
+ this.config = config;
this.securityToken = securityToken;
this.ws = ws;
this.format = format;
@@ -54,7 +57,7 @@
@Override
public void run() {
- WikittyServiceTransaction tx = new WikittyServiceTransaction(null, ws);
+ WikittyServiceTransaction tx = new WikittyServiceTransaction(config, ws);
// TODO poussin 20101029 rendre configurable le l'auto commit '1000' pour l'import
tx.setAutoCommit(1000);
try {
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceTransaction.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -20,6 +20,7 @@
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.WikittyServiceFactory;
import org.nuiton.wikitty.WikittyTree;
import org.nuiton.wikitty.entities.WikittyTreeNode;
@@ -49,11 +50,10 @@
public WikittyServiceTransaction(ApplicationConfig config, WikittyService ws) {
this.ws = ws;
- // create new WikittyServiceInMemory not configured with default config
- // this WikittyServiceInMemory must be only in memory
- // FIXME poussin 20101118 use configuration to retrive transaction
- // in memory implementation to used. Default must be h2+solr in memory mode
- this.tx = new WikittyServiceInMemory(null);
+ // use WikittyService in Memory
+ // use configuration to retrive transaction in memory implementation
+ // you must used WikittyServiceInMemoryJdbcSolr implementation
+ this.tx = WikittyServiceFactory.buildWikittyServiceTransaction(config);
events = new LinkedList<WikittyEvent>();
}
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyTransaction.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyTransaction.java 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyTransaction.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -44,29 +44,10 @@
/** permet d'attacher n'importe quoi a une transaction */
protected Map<Object, Object> tagValues;
- /** cache static utilise par le WikittyServiceCached */
- transient protected WikittyCache cache = null;
-
public WikittyTransaction() {
tagValues = new HashMap<Object, Object>();
}
- /**
- * FIXME poussin 20101027 a supprimer lorsque WikittyServiceTransaction
- * aura ete implante
- *
- * Visibilite 'default' car est uilise par WikittyServiceCached qui est dans
- * le meme package et a priori seulement lui en a besoin
- *
- * @return
- */
- WikittyCache getCache() {
- if (cache == null) {
- cache = new WikittyCache(false);
- }
- return cache;
- }
-
public Object getTagValue(Object tag) {
return tagValues.get(tag);
}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/services/WikittyServiceTransactionTest.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -1,14 +1,12 @@
package org.nuiton.wikitty.services;
import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.services.WikittyServiceEnhanced;
-import org.nuiton.wikitty.services.WikittyServiceTransaction;
-import org.nuiton.wikitty.services.WikittyServiceInMemory;
import java.util.Collections;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Test;
+import org.nuiton.util.ApplicationConfig;
import org.nuiton.wikitty.WikittyConfig;
import org.nuiton.wikitty.entities.WikittyLabel;
import org.nuiton.wikitty.entities.WikittyLabelImpl;
@@ -26,12 +24,14 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(WikittyServiceTransactionTest.class);
- public WikittyServiceTransactionTest() {
+ protected ApplicationConfig getConfig() {
+ WikittyConfig result = new WikittyConfig();
+ return result;
}
@Test
public void testTransaction() throws Exception {
- WikittyConfig config = new WikittyConfig();
+ ApplicationConfig config = getConfig();
WikittyServiceInMemory ws = new WikittyServiceInMemory(config);
WikittyServiceTransaction tx = new WikittyServiceTransaction(config, ws);
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-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -203,9 +203,8 @@
} else if (WikittyUtil.versionGreaterThan(requestedVersion, actualVersion)) { //requested version is newer
newVersion = requestedVersion;
} else { //requested version is obsolete
-// FIXME poussin 20101118 pourquoi lorsqu'on
-// demande un force il peut y avoir un "Wikitty is obsolete" ce qui ne permet
-// pas de rejouer plusieurs fois les events pour les besoins du slave :(
+// FIXME poussin 20101118 pourquoi lorsqu'on demande un force il peut y avoir un "Wikitty is obsolete"
+// ce qui ne permet pas de rejouer plusieurs fois les events pour les besoins du slave :(
throw new WikittyObsoleteException(String.format(
"Your wikitty '%s' is obsolete (saving: '%s'; existing: '%s')", wikitty.getId(), requestedVersion, actualVersion));
}
Added: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java (rev 0)
+++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolr.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -0,0 +1,49 @@
+package org.nuiton.wikitty.services;
+
+
+import java.util.UUID;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyConfig;
+import org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC;
+import org.nuiton.wikitty.jdbc.WikittyStorageJDBC;
+import org.nuiton.wikitty.solr.WikittySearchEnginSolr;
+
+/**
+ * In memory implementation that use in memory h2 and in memory solr
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class WikittyServiceInMemoryJdbcSolr extends WikittyServiceImpl {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(WikittyServiceInMemoryJdbcSolr.class);
+
+ public WikittyServiceInMemoryJdbcSolr() {
+ super(null, null, null);
+
+ // we use unique db name (this permit to use simultaneously many
+ // WikittyServiceInMemoryJdbcSolr)
+ String dbName = UUID.randomUUID().toString();
+ ApplicationConfig config = new WikittyConfig();
+ config.setOption(WikittyConfig.Option.
+ WIKITTY_STORAGE_JDBC_URL.getKey(),
+ "jdbc:h2:mem:" + dbName);
+ config.setOption(WikittyConfig.Option.
+ WIKITTY_SEARCHENGINE_SOLR_DIRECTORY_FACTORY.getKey(),
+ "org.nuiton.wikitty.solr.RAMDirectoryFactory");
+ // others defaults value in config normaly is correct
+ // - WIKITTY_STORAGE_JDBC*
+ // - WIKITTY_STORAGE_JDBC_XADATASOURCE*
+
+ extensionStorage = new WikittyExtensionStorageJDBC(config);
+ wikittyStorage = new WikittyStorageJDBC(config, extensionStorage);
+ searchEngin = new WikittySearchEnginSolr(config, extensionStorage);
+ }
+
+}
Added: trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java
===================================================================
--- trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java (rev 0)
+++ trunk/wikitty-jdbc-impl/src/test/java/org/nuiton/wikitty/services/WikittyServiceInMemoryJdbcSolrTest.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -0,0 +1,31 @@
+package org.nuiton.wikitty.services;
+
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyConfig;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class WikittyServiceInMemoryJdbcSolrTest extends WikittyServiceTransactionTest {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(WikittyServiceInMemoryJdbcSolrTest.class);
+
+ @Override
+ protected ApplicationConfig getConfig() {
+ ApplicationConfig result = super.getConfig();
+ result.setOption(WikittyConfig.Option.
+ WIKITTY_TRANSACTION_WIKITTYSERVICE_COMPONENTS.getKey(),
+ WikittyServiceInMemoryJdbcSolr.class.getName());
+ return result;
+ }
+
+}
Added: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java
===================================================================
--- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java (rev 0)
+++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/solr/RAMDirectoryFactory.java 2010-11-18 18:54:15 UTC (rev 487)
@@ -0,0 +1,119 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.nuiton.wikitty.solr;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.solr.core.StandardDirectoryFactory;
+import java.io.IOException;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.RAMDirectory;
+
+/**
+ * Directory provider for using lucene RAMDirectory
+ *
+ * Only exists in version 4.0 of solr, but we used 1.4.1. Remove this class
+ * when solr 4.0 will be used
+ */
+public class RAMDirectoryFactory extends StandardDirectoryFactory {
+
+ private static Map<String, RefCntRamDirectory> directories = new HashMap<String, RefCntRamDirectory>();
+
+ @Override
+ public Directory open(String path) throws IOException {
+ synchronized (RAMDirectoryFactory.class) {
+ RefCntRamDirectory directory = directories.get(path);
+ if (directory == null || !directory.isOpen()) {
+ directory = (RefCntRamDirectory) openNew(path);
+ directories.put(path, directory);
+ } else {
+ directory.incRef();
+ }
+
+ return directory;
+ }
+ }
+
+ public boolean exists(String path) {
+ synchronized (RAMDirectoryFactory.class) {
+ RefCntRamDirectory directory = directories.get(path);
+ if (directory == null || !directory.isOpen()) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+
+ /**
+ * Non-public for unit-test access only. Do not use directly
+ */
+ Directory openNew(String path) throws IOException {
+ Directory directory;
+ File dirFile = new File(path);
+ boolean indexExists = dirFile.canRead();
+ if (indexExists) {
+ Directory dir = super.open(path);
+ directory = new RefCntRamDirectory(dir);
+ } else {
+ directory = new RefCntRamDirectory();
+ }
+ return directory;
+ }
+
+ static public class RefCntRamDirectory extends RAMDirectory {
+
+ private final AtomicInteger refCount = new AtomicInteger();
+
+ public RefCntRamDirectory() {
+ super();
+ refCount.set(1);
+ }
+
+ public RefCntRamDirectory(Directory dir) throws IOException {
+ this();
+ Directory.copy(dir, this, false);
+// for (String file : dir.listAll()) {
+// dir.copy(this, file, file);
+// }
+ }
+
+ public void incRef() {
+ ensureOpen();
+ refCount.incrementAndGet();
+ }
+
+ public void decRef() {
+ ensureOpen();
+ if (refCount.getAndDecrement() == 1) {
+ super.close();
+ }
+ }
+
+ public final synchronized void close() {
+ decRef();
+ }
+
+ public boolean isOpen() {
+ return isOpen;
+ }
+ }
+}
Modified: trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml
===================================================================
--- trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-solr-impl/src/main/resources/solrconfig.xml 2010-11-18 18:54:15 UTC (rev 487)
@@ -24,23 +24,6 @@
#L%
-->
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
<config>
<!-- Set this to 'false' if you want solr to continue working after it has
encountered an severe configuration error. In a production environment,
Modified: trunk/wikitty-solr-impl/src/test/resources/solrconfig.xml
===================================================================
--- trunk/wikitty-solr-impl/src/test/resources/solrconfig.xml 2010-11-18 12:16:22 UTC (rev 486)
+++ trunk/wikitty-solr-impl/src/test/resources/solrconfig.xml 2010-11-18 18:54:15 UTC (rev 487)
@@ -31,9 +31,18 @@
<!-- Used to specify an alternate directory to hold all index data
other than the default ./data under the Solr home.
If replication is in use, this should match the replication configuration. -->
- <dataDir>${solr.data.dir:./target/tests-temp-dir/solr/data}</dataDir>
+ <dataDir>${wikitty.searchengine.solr.directory.data:./solr/data}</dataDir>
+ <!-- The DirectoryFactory to use for indexes.
+ solr.StandardDirectoryFactory, the default, is filesystem based.
+ solr.RAMDirectoryFactory is memory based, not persistent, and doesn't work with replication.
+ A prefix of "solr." for class names is an alias that
+ causes solr to search appropriate packages, including
+ org.apache.solr.(search|update|request|core|analysis)
+ -->
+ <directoryFactory name="DirectoryFactory" class="${wikitty.searchengine.solr.directory.factory:solr.StandardDirectoryFactory}"/>
+
<indexDefaults>
<!-- Values here affect all index writers and act as a default unless overridden. -->
<useCompoundFile>false</useCompoundFile>
1
0