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
April 2011
- 6 participants
- 99 discussions
r763 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 06 Apr '11
by mfortun@users.nuiton.org 06 Apr '11
06 Apr '11
Author: mfortun
Date: 2011-04-06 17:52:16 +0200 (Wed, 06 Apr 2011)
New Revision: 763
Url: http://nuiton.org/repositories/revision/wikitty/763
Log:
comment to prepare algorithm, correct method
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 14:01:47 UTC (rev 762)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 15:52:16 UTC (rev 763)
@@ -137,34 +137,38 @@
// usage: wp --norecursion --ws http://truc.com import --dir /home/Manou
/*
- * TODO mfortun-2011-04-05 just prototypage, remove when really
+ * Ici il y aura une moulinette pour la création des wikittys des
+ * nouveaux fichiers. Possible de faire la même moulinette au niveau des
+ * commits, update et tout ça puisque on pourra faire la différence des
+ * fichiers envoyés, déclaré en tant que wikitty et ceux qui éxiste,
+ * risque d'avoir une mauvaise cohésion ? cohérence ?
+ */
+
+ /*
+ * TODO mfortun-2011-04-05 just prototyping, remove when really
* implements the method
*/
System.out.println("import :\n");
- for (File child : dir.listFiles()) {
- if (child.isDirectory() && !noRecur) {
- printDirectory(child);
- } else if (child.isDirectory()) {
- System.out.println(child.getAbsolutePath());
- }
+ printDirectory(dir, !noRecur);
- }
}
/*
- * TODO mfortun-2011-04-05 just prototypage, remove when really implements
+ * TODO mfortun-2011-04-05 just prototyping, remove when really implements
* the method linked: importToWikitty
*/
- public static void printDirectory(File dir) {
+ public static void printDirectory(File dir, boolean recur) {
+
System.out.println("<dir " + dir.getName() + ">");
for (File child : dir.listFiles()) {
- if (child.isDirectory()) {
- printDirectory(child);
- } else {
+ if (child.isDirectory() && recur
+ && !child.getName().equals(PROPERTY_DIRECTORY)) {
+ printDirectory(child, recur);
+ } else if (!child.isDirectory()) {
System.out.println(child.getAbsolutePath());
}
}
- System.out.println("</dir >");
+ System.out.println("</dir " + dir.getName() + ">");
}
/**
@@ -175,14 +179,14 @@
* harvested directory
* @param recursivly
* boolean id the directory have to be harvest
- * @return
- * list of harvested file
+ * @return list of harvested file
*/
protected static List<File> listFile(File starts, boolean recursivly) {
ArrayList<File> result = new ArrayList<File>();
result.add(starts);
for (File child : starts.listFiles()) {
- if (child.isDirectory() && recursivly) {
+ if (child.isDirectory() && recursivly
+ && !child.getName().equals(PROPERTY_DIRECTORY)) {
result.add(child);
result.addAll(listFile(child, recursivly));
} else if (!child.isDirectory()) {
@@ -354,10 +358,31 @@
log.info("commit " + " wikitty-service" + wikittyService
+ "noRecurs : " + noRecur + " hessian Protocole :"
+ hessianProtocole + "directory : " + dir.getAbsolutePath());
+
+ System.out.println("try to commit: ");
+ printDirectory(dir, !noRecur);
+
// faire la liste des fichiers à commit
- // avec récursivité si c'est demandé.
+ // avec récursivité si c'etransfert d'histoire entre svnst demandé.
// et les transformer en wikitty, vérifier les versions et tout.
+ /*
+ * parcours l'arborescence des fichiers celon que on soit recursif ou
+ * non plutot que faire la liste fichier, on va aller lire les ids dans
+ * les fichiers de propriétés.
+ *
+ * Ensuite on creer le wikittyserviceFileSysteme avec le répertoire de
+ * travail et lui on lui donner les ids avec lesquels il va travailler
+ * et aller chercher les fichiers de propriétés pour retrouver les files
+ * et creer les wikittypub correspondant.
+ *
+ * Pour faire un commit il ne suffira pas de faire un restore
+ * finalement, il faudra faire un search aussi puisque on va se
+ * retrouver à faire des new wikitty p'etre éclaircir ce point plus
+ * tard. Pour le moment ne pas se poser de question trop, et faire sans
+ * nouveau fichier.
+ */
+
// création du proxy
/*
@@ -424,10 +449,10 @@
log.info("Delete " + " wikitty-service" + wikittyService
+ " hessian Protocole :" + hessianProtocole
+ "file to delete : " + toDelete.getAbsolutePath());
- // faire la liste des fichiers à commit
- // avec récursivité si c'est demandé.
- // et les transformer en wikitty, vérifier les versions et tout.
+ System.out.println("try to delete: ");
+ printDirectory(dir, true);
+
}
/*
@@ -449,7 +474,7 @@
File wpHomeDir;
if (null == dir || !dir.exists()) {
/*
- * si pas de dir on commit le dossier courant
+ * si pas de dir on update le dossier courant
*/
dir = new File(".");
@@ -486,10 +511,10 @@
log.info("update " + " wikitty-service" + wikittyService
+ "noRecurs : " + noRecur + " hessian Protocole :"
+ hessianProtocole + "directory : " + dir.getAbsolutePath());
- // faire la liste des fichiers à commit
- // avec récursivité si c'est demandé.
- // et les transformer en wikitty, vérifier les versions et tout.
+ System.out.println("try to update: ");
+ printDirectory(dir, !noRecur);
+
/*
* on va commencer par vérifier les arguments * ''wp update
* [--norecursion] [--ws (url du WikittyService)] [répertoire à mettre à
@@ -499,13 +524,18 @@
}
/**
+ *
* Use to search in the file system the directory that containt the .wp dir
* that containt the properties file for the wikitty service's adresse
+ *
+ * @param start
+ * @return File the directory container of the master property file
+ * @throws Exception
*/
protected static File searchWikittyPublicationHomeDir(File start)
throws Exception {
- if (start.exists() && start.isDirectory()) {
+ if (start != null && start.exists() && start.isDirectory()) {
// on va retourner le dossier .wp home
// method récursiv qui remonte dans les parents pour retrouver.
1
0
r762 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 06 Apr '11
by mfortun@users.nuiton.org 06 Apr '11
06 Apr '11
Author: mfortun
Date: 2011-04-06 16:01:47 +0200 (Wed, 06 Apr 2011)
New Revision: 762
Url: http://nuiton.org/repositories/revision/wikitty/762
Log:
correction of the File uses, correct code convention, add method that harvest file
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 12:57:32 UTC (rev 761)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 14:01:47 UTC (rev 762)
@@ -1,12 +1,11 @@
package org.nuiton.wikitty.publication;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
+import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
@@ -36,7 +35,7 @@
public static String HESSIAN_PROTOCOL_KEY = "hessian";
public static String PROPERTY_DIRECTORY = ".wp";
- public static String WIKITTYPUBLICATION_PROPERTIES_FILE = "";
+ public static String WIKITTYPUBLICATION_PROPERTIES_FILE = "ws.properties";
/**
* @param args
@@ -143,9 +142,9 @@
*/
System.out.println("import :\n");
for (File child : dir.listFiles()) {
- if (child.isDirectory() && false == noRecur) {
+ if (child.isDirectory() && !noRecur) {
printDirectory(child);
- } else if (false == child.isDirectory()) {
+ } else if (child.isDirectory()) {
System.out.println(child.getAbsolutePath());
}
@@ -169,6 +168,31 @@
}
/**
+ * Method that create the list of file needed to commit, delete, update
+ * import. It harvest file in order to transform them into wikitties
+ *
+ * @param starts
+ * harvested directory
+ * @param recursivly
+ * boolean id the directory have to be harvest
+ * @return
+ * list of harvested file
+ */
+ protected static List<File> listFile(File starts, boolean recursivly) {
+ ArrayList<File> result = new ArrayList<File>();
+ result.add(starts);
+ for (File child : starts.listFiles()) {
+ if (child.isDirectory() && recursivly) {
+ result.add(child);
+ result.addAll(listFile(child, recursivly));
+ } else if (!child.isDirectory()) {
+ result.add(child);
+ }
+ }
+ return result;
+ }
+
+ /**
* Method that checkout a label recursivly or not into a local directory
* from a wikitty service
*/
@@ -196,7 +220,7 @@
// write the proper properties file!
Properties props = new Properties();
props.put(WITTY_SERVICE_KEY, wikittyService);
- if (true == hessianProtocole) {
+ if (hessianProtocole) {
props.put("wikitty.WikittyService.components",
"org.nuiton.wikitty.services.WikittyServiceHessianClient");
} else {
@@ -235,17 +259,17 @@
System.out
.println("search the directory of .wp file to write new properties file");
// search for the home directory
- if (null == dir || false == dir.exists()) {
+ if (null == dir || !dir.exists()) {
wpHomeDir = searchWikittyPublicationHomeDir(new File("."));
} else {
- wpHomeDir = new File(dir.getCanonicalFile() + File.pathSeparator
+ wpHomeDir = new File(dir.getCanonicalFile() + File.separator
+ PROPERTY_DIRECTORY);
}
Properties oldProperties = new Properties();
// TODO mfortun-2011-04-06 catch exception instead of throws
- File propertiesFile = new File(wpHomeDir
+ File propertiesFile = new File(wpHomeDir + File.separator
+ WIKITTYPUBLICATION_PROPERTIES_FILE);
// load the old file just for loggin
oldProperties.load(new FileReader(propertiesFile));
@@ -258,7 +282,7 @@
// Creation of the new properties file
Properties props = new Properties();
props.put(WITTY_SERVICE_KEY, wikittyService);
- if (true == hessianProtocole) {
+ if (hessianProtocole) {
props.put("wikitty.WikittyService.components",
"org.nuiton.wikitty.services.WikittyServiceHessianClient");
} else {
@@ -291,7 +315,7 @@
File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
File wpHomeDir;
- if (null == dir || false == dir.exists()) {
+ if (null == dir || !dir.exists()) {
/*
* si pas de dir on commit le dossier courant
*/
@@ -305,7 +329,7 @@
// TODO mfortun-2011-04-06 catch exception instead of throws
File propertiesFile = new File(wpHomeDir.getCanonicalPath()
- + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ + File.separator + WIKITTYPUBLICATION_PROPERTIES_FILE);
// load the old file just for loggin
properties.load(new FileReader(propertiesFile));
@@ -319,7 +343,7 @@
boolean hessianProtocole = applicationConfig
.getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
- if (true == hessianProtocole) {
+ if (hessianProtocole) {
applicationConfig.setOption("wikitty.WikittyService.components",
"org.nuiton.wikitty.services.WikittyServiceHessianClient");
} else {
@@ -354,7 +378,7 @@
public static void deleteFromWikitty(File toDelete) throws Exception {
// check args
- if (null == toDelete || false == toDelete.exists()) {
+ if (null == toDelete || !toDelete.exists()) {
// Exception
} else {
@@ -375,7 +399,7 @@
// TODO mfortun-2011-04-06 catch exception instead of throws
File propertiesFile = new File(wpHomeDir.getCanonicalPath()
- + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ + File.separator + WIKITTYPUBLICATION_PROPERTIES_FILE);
// load the old file just for loggin
properties.load(new FileReader(propertiesFile));
@@ -387,7 +411,7 @@
boolean hessianProtocole = applicationConfig
.getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
- if (true == hessianProtocole) {
+ if (hessianProtocole) {
applicationConfig
.setOption("wikitty.WikittyService.components",
"org.nuiton.wikitty.services.WikittyServiceHessianClient");
@@ -423,7 +447,7 @@
File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
File wpHomeDir;
- if (null == dir || false == dir.exists()) {
+ if (null == dir || !dir.exists()) {
/*
* si pas de dir on commit le dossier courant
*/
@@ -437,7 +461,7 @@
// TODO mfortun-2011-04-06 catch exception instead of throws
File propertiesFile = new File(wpHomeDir.getCanonicalPath()
- + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ + File.separator + WIKITTYPUBLICATION_PROPERTIES_FILE);
// load the old file just for loggin
properties.load(new FileReader(propertiesFile));
@@ -451,7 +475,7 @@
boolean hessianProtocole = applicationConfig
.getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
- if (true == hessianProtocole) {
+ if (hessianProtocole) {
applicationConfig.setOption("wikitty.WikittyService.components",
"org.nuiton.wikitty.services.WikittyServiceHessianClient");
} else {
@@ -481,18 +505,18 @@
protected static File searchWikittyPublicationHomeDir(File start)
throws Exception {
- if (start.exists() && true == start.isDirectory()) {
+ if (start.exists() && start.isDirectory()) {
// on va retourner le dossier .wp home
// method récursiv qui remonte dans les parents pour retrouver.
- File temp = new File(start.getAbsolutePath() + PROPERTY_DIRECTORY);
- if (true == temp.exists()) {
- File propertie = new File(temp.getCanonicalPath()
- + File.pathSeparator
- + WIKITTYPUBLICATION_PROPERTIES_FILE);
- if (true == propertie.exists()) {
- return temp;
+ File propertyDirectory = new File(start.getCanonicalPath()
+ + File.separator + PROPERTY_DIRECTORY);
+ if (propertyDirectory.exists()) {
+ File propertie = new File(propertyDirectory.getCanonicalPath()
+ + File.separator + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ if (propertie.exists()) {
+ return propertyDirectory;
}
}
return searchWikittyPublicationHomeDir(start.getParentFile());
1
0
r761 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty/storage test/java/org/nuiton/wikitty/api test/java/org/nuiton/wikitty/memory
by jcouteau@users.nuiton.org 06 Apr '11
by jcouteau@users.nuiton.org 06 Apr '11
06 Apr '11
Author: jcouteau
Date: 2011-04-06 14:57:32 +0200 (Wed, 06 Apr 2011)
New Revision: 761
Url: http://nuiton.org/repositories/revision/wikitty/761
Log:
Improve tests
Add associated search on WikittySearchEngineInMemory
Added:
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/InMemorySearchTest.java
Removed:
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractTestApi.java
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/SearchCriteriaTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java 2011-04-06 12:49:06 UTC (rev 760)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/storage/WikittySearchEngineInMemory.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -37,6 +37,7 @@
import org.nuiton.wikitty.search.PagedResult;
import org.nuiton.wikitty.search.TreeNodeResult;
import org.nuiton.wikitty.search.operators.And;
+import org.nuiton.wikitty.search.operators.AssociatedRestriction;
import org.nuiton.wikitty.search.operators.BinaryOperator;
import org.nuiton.wikitty.search.operators.Element;
import org.nuiton.wikitty.search.operators.Restriction;
@@ -67,7 +68,8 @@
// public void delete(Collection<String> idList) throws WikittyException {
// }
- public boolean checkRestriction(Restriction restriction, Wikitty w) {
+ public boolean checkRestriction(WikittyTransaction transaction,
+ Restriction restriction, Wikitty w) {
if (restriction instanceof BinaryOperator) {
BinaryOperator binOp = (BinaryOperator) restriction;
if (binOp.getElement().getName().equals(Element.ELT_EXTENSION)) {
@@ -138,11 +140,38 @@
} else if (restriction instanceof And) {
And and = (And) restriction;
for (Restriction sub : and.getRestrictions()) {
- if (!checkRestriction(sub, w)) {
+ if (!checkRestriction(transaction, sub, w)) {
return false;
}
}
return true;
+ } else if (restriction instanceof AssociatedRestriction) {
+
+ AssociatedRestriction ass = (AssociatedRestriction) restriction;
+
+ String fqfieldName = ass.getElement().getName();
+
+ //check my wikitty got the right extension before doing anything.
+ String[] extName = fqfieldName.split("\\.");
+ if (!w.hasField(extName[0], extName[1])) {
+ return false;
+ }
+ // get the value in the wikitty, it is a wikitty's id
+ Object o = w.getFqField(fqfieldName);
+
+ //Get sub-restriction
+ Restriction sub = ass.getRestriction();
+
+ Criteria associatedSearch = new Criteria();
+ associatedSearch.setRestriction(sub);
+
+ //find everything that validate the sub-restriction
+ PagedResult<String> associatedResult = findAllByCriteria(transaction, associatedSearch);
+
+ List<String> associatedList = associatedResult.getAll();
+
+ //Check that my field is contained in the sub-restriction results.
+ return associatedList.contains(String.valueOf(o));
} else {
throw new UnsupportedOperationException(restriction.getName() + " Search Not yet implemented");
}
@@ -159,7 +188,7 @@
Wikitty w = entry.getValue();
String id = entry.getKey();
Restriction dto = criteria.getRestriction();
- if (!w.isDeleted() && checkRestriction(dto, w)) {
+ if (!w.isDeleted() && checkRestriction(transaction, dto, w)) {
currentIndex++;
if (currentIndex > firstIndex) {
ids.add(id);
Added: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java (rev 0)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -0,0 +1,129 @@
+package org.nuiton.wikitty.api;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.entities.ExtensionFactory;
+import org.nuiton.wikitty.entities.FieldFactory;
+import org.nuiton.wikitty.entities.FieldType;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.entities.WikittyImpl;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.PagedResult;
+import org.nuiton.wikitty.search.Search;
+
+/**
+ * User: couteau
+ * Date: 05/04/11
+ */
+public abstract class AbstractSearchTest {
+
+ public static final String EXT_PRODUCT = "Product";
+ public static final String EXT_CATEGORY = "Category";
+ public static final String PRODUCT_PRICE = "price";
+ public static final String PRODUCT_NAME = "name";
+ public static final String PRODUCT_CATEGORY = "category";
+ public static final String CATEGORY_NAME = "name";
+ public static final String VERSION = "1.0";
+
+ protected WikittyProxy proxy = new WikittyProxy(getWikittyService());
+
+ @Before
+ public void initData(){
+
+ ///////////////////////////////////////////////////////////////////////
+ // CREATE EXTENSIONS NEEDED FOR TESTS //
+ ///////////////////////////////////////////////////////////////////////
+
+ //Create product extension
+ WikittyExtension product = ExtensionFactory.create(EXT_PRODUCT, VERSION)
+ .addField(PRODUCT_PRICE, FieldType.TYPE.NUMERIC)
+ .addField(PRODUCT_NAME, FieldType.TYPE.STRING)
+ .addField(PRODUCT_CATEGORY, FieldType.TYPE.WIKITTY)
+ .extension();
+ proxy.storeExtension(product);
+
+ //Create category extension
+ WikittyExtension category = ExtensionFactory.create(EXT_CATEGORY, VERSION)
+ .addField(CATEGORY_NAME, FieldType.TYPE.STRING)
+ .extension();
+ proxy.storeExtension(category);
+
+ ///////////////////////////////////////////////////////////////////////
+ // CREATE CATEGORIES //
+ ///////////////////////////////////////////////////////////////////////
+
+ //Create wikitty category named "Hardware"
+ Wikitty category1 = new WikittyImpl();
+ category1.addExtension(category);
+ category1.setField(EXT_CATEGORY, CATEGORY_NAME, "Hardware");
+ proxy.store(category1);
+
+ //Create wikitty category named "Wrong category"
+ Wikitty category2 = new WikittyImpl();
+ category2.addExtension(category);
+ category2.setField(EXT_CATEGORY, CATEGORY_NAME, "Wrong category");
+ proxy.store(category2);
+
+ ///////////////////////////////////////////////////////////////////////
+ // CREATE PRODUCTS //
+ ///////////////////////////////////////////////////////////////////////
+
+ //Create product named Paint, price is 20 category is category1
+ Wikitty product1 = new WikittyImpl();
+ product1.addExtension(product);
+ product1.setField(EXT_PRODUCT, PRODUCT_NAME, "Paint");
+ product1.setField(EXT_PRODUCT, PRODUCT_PRICE, 20);
+ product1.setField(EXT_PRODUCT, PRODUCT_CATEGORY, category1.getId());
+ proxy.store(product1);
+
+ //Create product named Screwdriver, price is 3, category is category2
+ Wikitty product2 = new WikittyImpl();
+ product2.addExtension(product);
+ product2.setField(EXT_PRODUCT, PRODUCT_NAME, "Screwdriver");
+ product2.setField(EXT_PRODUCT, PRODUCT_PRICE, 3);
+ product2.setField(EXT_PRODUCT, PRODUCT_CATEGORY, category2.getId());
+ proxy.store(product2);
+
+ //Create product named Paint Blue, price is 22, category is category2
+ Wikitty product3 = new WikittyImpl();
+ product3.addExtension(product);
+ product3.setField(EXT_PRODUCT, PRODUCT_NAME, "Paint Blue");
+ product3.setField(EXT_PRODUCT, PRODUCT_PRICE, 22);
+ product3.setField(EXT_PRODUCT, PRODUCT_CATEGORY, category2.getId());
+ proxy.store(product3);
+
+ }
+
+ @Test
+ public void testAssociated() throws Exception {
+
+ /* Following request mean is :
+ * Looking for any product which price is between 15 and 25,
+ * and name starts with 'Paint',
+ * and with an associated category which name is 'Hardware'
+ */
+
+ Search query = Search.query().bw("Product.price", "15", "25")
+ .sw("Product.name", "Paint");
+
+ Search associatedSearch = query.associated("Product.category")
+ .eq("Category.name", "Hardware");
+
+ Criteria associatedCriteria = associatedSearch.criteria();
+
+ PagedResult<Wikitty> results = proxy.findAllByCriteria(associatedCriteria);
+
+ Assert.assertEquals(1, results.getAll().size());
+
+ Wikitty resultW = results.getFirst();
+
+ Assert.assertEquals("Paint", resultW.getFieldAsString(EXT_PRODUCT, PRODUCT_NAME));
+ Assert.assertEquals(20, resultW.getFieldAsInt(EXT_PRODUCT, PRODUCT_PRICE));
+ }
+
+ public abstract WikittyService getWikittyService();
+}
Deleted: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractTestApi.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractTestApi.java 2011-04-06 12:49:06 UTC (rev 760)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractTestApi.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -1,34 +0,0 @@
-/*
- * #%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.api;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public abstract class AbstractTestApi {
-
- protected final static Log log = LogFactory.getLog(AbstractTestApi.class);
-
-}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java 2011-04-06 12:49:06 UTC (rev 760)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/CommonTest.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -55,7 +55,7 @@
* @author guillaumed
*
*/
-public class CommonTest extends AbstractTestApi {
+public class CommonTest {
private static Log log = LogFactory.getLog(CommonTest.class);
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java 2011-04-06 12:49:06 UTC (rev 760)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -31,7 +31,7 @@
import org.nuiton.wikitty.entities.FieldType.TYPE;
import org.nuiton.wikitty.entities.WikittyExtension;
-public class ExtensionFactoryTest extends AbstractTestApi {
+public class ExtensionFactoryTest {
@Test
public void testExtensionFactory() throws Exception {
Added: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/InMemorySearchTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/InMemorySearchTest.java (rev 0)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/InMemorySearchTest.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -0,0 +1,25 @@
+package org.nuiton.wikitty.api;
+
+import org.nuiton.wikitty.WikittyConfig;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.services.WikittyServiceInMemory;
+
+/**
+ * User: couteau
+ * Date: 05/04/11
+ */
+public class InMemorySearchTest extends AbstractSearchTest {
+
+ WikittyService service;
+
+ @Override
+ public WikittyService getWikittyService() {
+
+ if (service == null) {
+ WikittyConfig config = new WikittyConfig();
+ service = new WikittyServiceInMemory(config);
+ }
+
+ return service;
+ }
+}
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/SearchCriteriaTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/SearchCriteriaTest.java 2011-04-06 12:49:06 UTC (rev 760)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/SearchCriteriaTest.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -28,6 +28,11 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Test;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.FieldType;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.entities.WikittyImpl;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.operators.And;
import org.nuiton.wikitty.search.operators.AssociatedRestriction;
@@ -39,7 +44,7 @@
import org.nuiton.wikitty.search.operators.RestrictionName;
import org.nuiton.wikitty.search.Search;
-public class SearchCriteriaTest extends AbstractTestApi {
+public class SearchCriteriaTest {
static private Log log = LogFactory.getLog(SearchCriteriaTest.class);
@@ -113,7 +118,8 @@
@Test
public void testAssociated() throws Exception {
- /* Following request mean is :
+
+ /* Following request mean is :
* Looking for any product which price is between 15 and 25,
* and name starts with 'Paint',
* and with an associated category which name is 'Hardware'
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 2011-04-06 12:49:06 UTC (rev 760)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/WikittyUtilTest.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -59,7 +59,7 @@
*
* @author poussin
*/
-public class WikittyUtilTest extends AbstractTestApi {
+public class WikittyUtilTest {
static private Log log = LogFactory.getLog(WikittyUtilTest.class);
Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java
===================================================================
--- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java 2011-04-06 12:49:06 UTC (rev 760)
+++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/memory/InMemoryStorageTest.java 2011-04-06 12:57:32 UTC (rev 761)
@@ -46,9 +46,8 @@
import org.nuiton.wikitty.services.WikittyServiceEnhanced;
import org.nuiton.wikitty.services.WikittyServiceInMemory;
import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.api.AbstractTestApi;
-public class InMemoryStorageTest extends AbstractTestApi {
+public class InMemoryStorageTest {
protected WikittyServiceInMemory wikittyService;
1
0
r760 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 06 Apr '11
by mfortun@users.nuiton.org 06 Apr '11
06 Apr '11
Author: mfortun
Date: 2011-04-06 14:49:06 +0200 (Wed, 06 Apr 2011)
New Revision: 760
Url: http://nuiton.org/repositories/revision/wikitty/760
Log:
cosmetic change to respect code conventions, resume prototyping sync operation
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 09:16:25 UTC (rev 759)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 12:49:06 UTC (rev 760)
@@ -1,7 +1,9 @@
package org.nuiton.wikitty.publication;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FileReader;
+import java.io.FileWriter;
import java.util.List;
import java.util.Properties;
@@ -24,20 +26,18 @@
protected static ApplicationConfig applicationConfig;
protected static WikittyProxy proxyWS;
-
- /*static string for allias, wrong named attribut TODO mfortun-2011-04-06 need to
- * set better name
+ /*
+ * static string for allias, wrong named attribut TODO mfortun-2011-04-06
+ * need to set better name
*/
- public static String WITTY_SERVICE_KEY= "wikitty.service.server.url";
- public static String NO_RECURSION_KEY="norecursion";
- public static String DIRECTORY_KEY="directory";
-
- public static String PROPERTY_DIRECTORY=".wp";
- public static String WIKITTYPUBLICATION_PROPERTIES_FILE="";
-
-
-
-
+ public static String WITTY_SERVICE_KEY = "wikitty.service.server.url";
+ public static String NO_RECURSION_KEY = "norecursion";
+ public static String DIRECTORY_KEY = "directory";
+ public static String HESSIAN_PROTOCOL_KEY = "hessian";
+
+ public static String PROPERTY_DIRECTORY = ".wp";
+ public static String WIKITTYPUBLICATION_PROPERTIES_FILE = "";
+
/**
* @param args
* @throws ArgumentsParserException
@@ -77,9 +77,13 @@
*/
// allias for norecursion
- applicationConfig.addAlias("--norecursion", "--option", NO_RECURSION_KEY,
- "true");
+ applicationConfig.addAlias("--norecursion", "--option",
+ NO_RECURSION_KEY, "true");
+ // allias for the protocole
+ applicationConfig.addAlias("--hessian", "--option",
+ HESSIAN_PROTOCOL_KEY, "true");
+
// allias for all the action
applicationConfig.addAlias("wp import", "--option", "import");
applicationConfig.addAlias("wp checkout", "--option", "checkout");
@@ -124,33 +128,32 @@
*/
public static void importToWikitty() {
- boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ boolean noRecur = applicationConfig
+ .getOptionAsBoolean(NO_RECURSION_KEY);
File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
- String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
+ String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY);
- log.info("import : wikittyservice: "
- + wikittyService
- + " noresursion=" + noRecur + " directory= "
- + dir.getAbsolutePath());
- //usage: wp --norecursion --ws http://truc.com import --dir /home/Manou
-
-
- /* TODO mfortun-2011-04-05 just prototypage, remove when really
- *implements the method
- *
+ log.info("import : wikittyservice: " + wikittyService + " noresursion="
+ + noRecur + " directory= " + dir.getAbsolutePath());
+ // usage: wp --norecursion --ws http://truc.com import --dir /home/Manou
+
+ /*
+ * TODO mfortun-2011-04-05 just prototypage, remove when really
+ * implements the method
*/
System.out.println("import :\n");
for (File child : dir.listFiles()) {
if (child.isDirectory() && false == noRecur) {
printDirectory(child);
- } else if(false==child.isDirectory()) {
+ } else if (false == child.isDirectory()) {
System.out.println(child.getAbsolutePath());
}
}
}
- /* TODO mfortun-2011-04-05 just prototypage, remove when really implements
+ /*
+ * TODO mfortun-2011-04-05 just prototypage, remove when really implements
* the method linked: importToWikitty
*/
public static void printDirectory(File dir) {
@@ -171,33 +174,36 @@
*/
public static void checkoutFromWikitty(String label) {
- boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ boolean noRecur = applicationConfig
+ .getOptionAsBoolean(NO_RECURSION_KEY);
File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
- String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
+ String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY);
+ boolean hessianProtocole = applicationConfig
+ .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
- log.info("checkout : wikittyservice: "
- + wikittyService
+ log.info("checkout : wikittyservice: " + wikittyService
+ " noresursion=" + noRecur + " directory= "
- + dir.getAbsolutePath()
- +"Label a checkout " +label);
-
- proxyWS= new WikittyProxy(applicationConfig);
-
-
-
-
- //write the proper properties file!
- Properties props= new Properties();
+ + dir.getAbsolutePath() + "Label a checkout " + label
+ + "HessianProtocol=" + hessianProtocole);
+
+ proxyWS = new WikittyProxy(applicationConfig);
+
+ /*
+ * obtain the list of wikittypub and write then in the file system with
+ * the appropriate wikittyservice !
+ */
+
+ // write the proper properties file!
+ Properties props = new Properties();
props.put(WITTY_SERVICE_KEY, wikittyService);
- if ( wikittyService.startsWith("cajo")){
- props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceCajoClient");
- }else{
- props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ if (true == hessianProtocole) {
+ props.put("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ } else {
+ props.put("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceCajoClient");
}
-
-
-
-
+
/*
* on va commencer par vérifier les arguments ''wp checkout
* [--norecursion] [url du WikittyService] [Label à extraire] [directory
@@ -211,34 +217,64 @@
/**
* Relocate the default url of the wikitty service
*/
- public static void relocateWikitty() {
-
+ public static void relocateWikitty() throws Exception {
+
+ /*
+ * log.info("checkout : wikittyservice: " + wikittyService +
+ * " noresursion=" + noRecur + " directory= " + dir.getAbsolutePath()
+ * +"Label a checkout " +label+ "HessianProtocol="+hessianProtocole);
+ */
+
File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
- String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
-
- if (null==dir || false==dir.exists()){
- searchWikittyPublicationHomeDir(new File("."));
+ String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY);
+ boolean hessianProtocole = applicationConfig
+ .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
+
+ File wpHomeDir;
+
+ System.out
+ .println("search the directory of .wp file to write new properties file");
+ // search for the home directory
+ if (null == dir || false == dir.exists()) {
+ wpHomeDir = searchWikittyPublicationHomeDir(new File("."));
+ } else {
+ wpHomeDir = new File(dir.getCanonicalFile() + File.pathSeparator
+ + PROPERTY_DIRECTORY);
}
-
- System.out.println("search the directory of .wp file to write new properties file");
-
-
- Properties props= new Properties();
+
+ Properties oldProperties = new Properties();
+
+ // TODO mfortun-2011-04-06 catch exception instead of throws
+ File propertiesFile = new File(wpHomeDir
+ + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ // load the old file just for loggin
+ oldProperties.load(new FileReader(propertiesFile));
+
+ log.info("Try relocate :" + "wikitty service:"
+ + oldProperties.getProperty(WITTY_SERVICE_KEY) + " by "
+ + wikittyService + " HessianProtocol: " + hessianProtocole
+ + " File : " + propertiesFile.getCanonicalPath());
+
+ // Creation of the new properties file
+ Properties props = new Properties();
props.put(WITTY_SERVICE_KEY, wikittyService);
- if ( wikittyService.startsWith("cajo")){
- props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceCajoClient");
- }else{
- props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ if (true == hessianProtocole) {
+ props.put("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ } else {
+ props.put("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceCajoClient");
}
-
-
+
+ // save the new property file
+ props.store(new FileWriter(propertiesFile), "");
+
/*
* Properties props=new Properties(); props.load(new FileReader(new
* File("/home/Manou/temp.properties")));
* applicationConfig.setOptions(props);
*/
-
/*
* on va commencer par vérifier les arguments ''wp relocate [nouvelle
* url du WikittyService par defaut] [directory a relocaliser]'' on doit
@@ -247,32 +283,59 @@
}
-
-
/**
* commit the current wikittyworkspace into a wikitty service
*/
- public static void commitToWikitty() {
-
- boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ public static void commitToWikitty() throws Exception {
+
File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
- String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
-
+ File wpHomeDir;
+ if (null == dir || false == dir.exists()) {
+ /*
+ * si pas de dir on commit le dossier courant
+ */
+ dir = new File(".");
- if(null==dir || false==dir.exists()){
- /*
- * si pas de dir on commit le dossier courant
- */
- dir = new File(".");
-
- //on va chercher le home dir
- searchWikittyPublicationHomeDir(dir);
}
-
-
-
-
+ // on va chercher le home dir
+ wpHomeDir = searchWikittyPublicationHomeDir(dir);
+
+ Properties properties = new Properties();
+
+ // TODO mfortun-2011-04-06 catch exception instead of throws
+ File propertiesFile = new File(wpHomeDir.getCanonicalPath()
+ + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ // load the old file just for loggin
+ properties.load(new FileReader(propertiesFile));
+
+ // on va rajouter les propriété de notre file
+ applicationConfig.setOptions(properties);
+
+ boolean noRecur = applicationConfig
+ .getOptionAsBoolean(NO_RECURSION_KEY);
+
+ String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY);
+ boolean hessianProtocole = applicationConfig
+ .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
+
+ if (true == hessianProtocole) {
+ applicationConfig.setOption("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ } else {
+ applicationConfig.setOption("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceCajoClient");
+ }
+
+ log.info("commit " + " wikitty-service" + wikittyService
+ + "noRecurs : " + noRecur + " hessian Protocole :"
+ + hessianProtocole + "directory : " + dir.getAbsolutePath());
+ // faire la liste des fichiers à commit
+ // avec récursivité si c'est demandé.
+ // et les transformer en wikitty, vérifier les versions et tout.
+
+ // création du proxy
+
/*
* on va commencer par vérifier les arguments ''wp commit
* [--norecursion] [--ws (url du WikittyService)] [répertoire à
@@ -285,27 +348,64 @@
/**
* delete a file or directory from the workspace it remove the label from
* the wikitty
+ *
+ * @throws Exception
*/
- public static void deleteFromWikitty(File toDelete) {
-
-
+ public static void deleteFromWikitty(File toDelete) throws Exception {
- //check args
- if ( null==toDelete || false==toDelete.exists()){
- //Exception
- }else{
-
- searchWikittyPublicationHomeDir(new File("."));
- //search for the .wp home dir to load props
-
- //then load proxy
-
- //if toDelete is a directory do something different from usualy
- //recursivly remove labels
-
+ // check args
+ if (null == toDelete || false == toDelete.exists()) {
+ // Exception
+ } else {
+
+ File wpHomeDir = searchWikittyPublicationHomeDir(new File("."));
+ // search for the .wp home dir to load props
+
+ // then load proxy
+
+ // if toDelete is a directory do something different from usualy
+ // recursivly remove labels
+
+ File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
+
+ // on va chercher le home dir
+ wpHomeDir = searchWikittyPublicationHomeDir(dir);
+
+ Properties properties = new Properties();
+
+ // TODO mfortun-2011-04-06 catch exception instead of throws
+ File propertiesFile = new File(wpHomeDir.getCanonicalPath()
+ + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ // load the old file just for loggin
+ properties.load(new FileReader(propertiesFile));
+
+ // on va rajouter les propriété de notre file
+ applicationConfig.setOptions(properties);
+
+ String wikittyService = applicationConfig
+ .getOption(WITTY_SERVICE_KEY);
+ boolean hessianProtocole = applicationConfig
+ .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
+
+ if (true == hessianProtocole) {
+ applicationConfig
+ .setOption("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ } else {
+ applicationConfig.setOption(
+ "wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceCajoClient");
+ }
+
+ log.info("Delete " + " wikitty-service" + wikittyService
+ + " hessian Protocole :" + hessianProtocole
+ + "file to delete : " + toDelete.getAbsolutePath());
+ // faire la liste des fichiers à commit
+ // avec récursivité si c'est demandé.
+ // et les transformer en wikitty, vérifier les versions et tout.
+
}
-
-
+
/*
* on va commencer par vérifier les arguments ''wp delete [--ws (url du
* WikittyService)] [répertoire ou fichier à supprimer]'' on doit avoir
@@ -318,16 +418,54 @@
/**
* update the current workspace from a wikitty
*/
- public static void updateFromWikitty() {
-
- boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ public static void updateFromWikitty() throws Exception {
+
File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
- String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
-
-
-
-
+ File wpHomeDir;
+ if (null == dir || false == dir.exists()) {
+ /*
+ * si pas de dir on commit le dossier courant
+ */
+ dir = new File(".");
+
+ }
+ // on va chercher le home dir
+ wpHomeDir = searchWikittyPublicationHomeDir(dir);
+
+ Properties properties = new Properties();
+
+ // TODO mfortun-2011-04-06 catch exception instead of throws
+ File propertiesFile = new File(wpHomeDir.getCanonicalPath()
+ + File.pathSeparator + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ // load the old file just for loggin
+ properties.load(new FileReader(propertiesFile));
+
+ // on va rajouter les propriété de notre file
+ applicationConfig.setOptions(properties);
+
+ boolean noRecur = applicationConfig
+ .getOptionAsBoolean(NO_RECURSION_KEY);
+
+ String wikittyService = applicationConfig.getOption(WITTY_SERVICE_KEY);
+ boolean hessianProtocole = applicationConfig
+ .getOptionAsBoolean(HESSIAN_PROTOCOL_KEY);
+
+ if (true == hessianProtocole) {
+ applicationConfig.setOption("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ } else {
+ applicationConfig.setOption("wikitty.WikittyService.components",
+ "org.nuiton.wikitty.services.WikittyServiceCajoClient");
+ }
+
+ log.info("update " + " wikitty-service" + wikittyService
+ + "noRecurs : " + noRecur + " hessian Protocole :"
+ + hessianProtocole + "directory : " + dir.getAbsolutePath());
+ // faire la liste des fichiers à commit
+ // avec récursivité si c'est demandé.
+ // et les transformer en wikitty, vérifier les versions et tout.
+
/*
* on va commencer par vérifier les arguments * ''wp update
* [--norecursion] [--ws (url du WikittyService)] [répertoire à mettre à
@@ -335,32 +473,33 @@
* quelque chose dans le recursion
*/
}
-
-
+
/**
- * Use to search in the file system the directory that containt the
- * .wp dir that containt the properties file for the wikitty service's adresse
+ * Use to search in the file system the directory that containt the .wp dir
+ * that containt the properties file for the wikitty service's adresse
*/
- protected static File searchWikittyPublicationHomeDir(File start) {
-
- if (start.exists()&& true==start.isDirectory()){
- //on va retourner le dossier .wp home
-
- //method récursiv qui remonte dans les parents pour retrouver.
-
-
- File temp= new File(start.getAbsolutePath()+PROPERTY_DIRECTORY);
- if (true==temp.exists()){
- File propertie= new File(temp.getAbsolutePath()+WIKITTYPUBLICATION_PROPERTIES_FILE);
- if(true==propertie.exists()){
- return temp;
+ protected static File searchWikittyPublicationHomeDir(File start)
+ throws Exception {
+
+ if (start.exists() && true == start.isDirectory()) {
+ // on va retourner le dossier .wp home
+
+ // method récursiv qui remonte dans les parents pour retrouver.
+
+ File temp = new File(start.getAbsolutePath() + PROPERTY_DIRECTORY);
+ if (true == temp.exists()) {
+ File propertie = new File(temp.getCanonicalPath()
+ + File.pathSeparator
+ + WIKITTYPUBLICATION_PROPERTIES_FILE);
+ if (true == propertie.exists()) {
+ return temp;
}
}
- return searchWikittyPublicationHomeDir(start.getParentFile());
- }else {
- //Exception
+ return searchWikittyPublicationHomeDir(start.getParentFile());
+ } else {
+ // Exception
/*
- * TODO mfortun-2011-04-06 whrite/set the appropriate exception here
+ * TODO mfortun-2011-04-06 write/set the appropriate exception here
*/
return null;
}
1
0
r759 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 06 Apr '11
by mfortun@users.nuiton.org 06 Apr '11
06 Apr '11
Author: mfortun
Date: 2011-04-06 11:16:25 +0200 (Wed, 06 Apr 2011)
New Revision: 759
Url: http://nuiton.org/repositories/revision/wikitty/759
Log:
migrate string to static field, complete method with prototype code
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-05 16:00:48 UTC (rev 758)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-06 09:16:25 UTC (rev 759)
@@ -24,6 +24,20 @@
protected static ApplicationConfig applicationConfig;
protected static WikittyProxy proxyWS;
+
+ /*static string for allias, wrong named attribut TODO mfortun-2011-04-06 need to
+ * set better name
+ */
+ public static String WITTY_SERVICE_KEY= "wikitty.service.server.url";
+ public static String NO_RECURSION_KEY="norecursion";
+ public static String DIRECTORY_KEY="directory";
+
+ public static String PROPERTY_DIRECTORY=".wp";
+ public static String WIKITTYPUBLICATION_PROPERTIES_FILE="";
+
+
+
+
/**
* @param args
* @throws ArgumentsParserException
@@ -53,9 +67,9 @@
applicationConfig = new ApplicationConfig();
// allias for the url of the wikitty service
- applicationConfig.addAlias("--ws", "--option", "wikitty.service");
+ applicationConfig.addAlias("--ws", "--option", WITTY_SERVICE_KEY);
- applicationConfig.addAlias("--dir", "--option", "directory");
+ applicationConfig.addAlias("--dir", "--option", DIRECTORY_KEY);
/*
* TODO mfortun-2011-04-05 once application fixed setdefault value and
@@ -63,7 +77,7 @@
*/
// allias for norecursion
- applicationConfig.addAlias("--norecursion", "--option", "norecursion",
+ applicationConfig.addAlias("--norecursion", "--option", NO_RECURSION_KEY,
"true");
// allias for all the action
@@ -110,9 +124,9 @@
*/
public static void importToWikitty() {
- boolean noRecur = applicationConfig.getOptionAsBoolean("norecursion");
- File dir = applicationConfig.getOptionAsFile("directory");
- String wikittyService= applicationConfig.getOption("wikitty.service");
+ boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
+ String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
log.info("import : wikittyservice: "
+ wikittyService
@@ -157,9 +171,9 @@
*/
public static void checkoutFromWikitty(String label) {
- boolean noRecur = applicationConfig.getOptionAsBoolean("norecursion");
- File dir = applicationConfig.getOptionAsFile("directory");
- String wikittyService= applicationConfig.getOption("wikitty.service");
+ boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
+ String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
log.info("checkout : wikittyservice: "
+ wikittyService
@@ -167,9 +181,23 @@
+ dir.getAbsolutePath()
+"Label a checkout " +label);
+ proxyWS= new WikittyProxy(applicationConfig);
+
+ //write the proper properties file!
+ Properties props= new Properties();
+ props.put(WITTY_SERVICE_KEY, wikittyService);
+ if ( wikittyService.startsWith("cajo")){
+ props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceCajoClient");
+ }else{
+ props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ }
+
+
+
+
/*
* on va commencer par vérifier les arguments ''wp checkout
* [--norecursion] [url du WikittyService] [Label à extraire] [directory
@@ -184,12 +212,33 @@
* Relocate the default url of the wikitty service
*/
public static void relocateWikitty() {
+
+ File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
+ String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
+
+ if (null==dir || false==dir.exists()){
+ searchWikittyPublicationHomeDir(new File("."));
+ }
+
+ System.out.println("search the directory of .wp file to write new properties file");
+
+
+ Properties props= new Properties();
+ props.put(WITTY_SERVICE_KEY, wikittyService);
+ if ( wikittyService.startsWith("cajo")){
+ props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceCajoClient");
+ }else{
+ props.put("wikitty.WikittyService.components", "org.nuiton.wikitty.services.WikittyServiceHessianClient");
+ }
+
+
/*
* Properties props=new Properties(); props.load(new FileReader(new
* File("/home/Manou/temp.properties")));
* applicationConfig.setOptions(props);
*/
+
/*
* on va commencer par vérifier les arguments ''wp relocate [nouvelle
* url du WikittyService par defaut] [directory a relocaliser]'' on doit
@@ -198,11 +247,33 @@
}
+
+
/**
* commit the current wikittyworkspace into a wikitty service
*/
public static void commitToWikitty() {
+
+ boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
+ String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
+
+
+
+ if(null==dir || false==dir.exists()){
/*
+ * si pas de dir on commit le dossier courant
+ */
+ dir = new File(".");
+
+ //on va chercher le home dir
+ searchWikittyPublicationHomeDir(dir);
+ }
+
+
+
+
+ /*
* on va commencer par vérifier les arguments ''wp commit
* [--norecursion] [--ws (url du WikittyService)] [répertoire à
* pousser]'' on doit avoir deux string dans le unparsed et
@@ -215,7 +286,26 @@
* delete a file or directory from the workspace it remove the label from
* the wikitty
*/
- public static void deleteFromWikitty() {
+ public static void deleteFromWikitty(File toDelete) {
+
+
+
+ //check args
+ if ( null==toDelete || false==toDelete.exists()){
+ //Exception
+ }else{
+
+ searchWikittyPublicationHomeDir(new File("."));
+ //search for the .wp home dir to load props
+
+ //then load proxy
+
+ //if toDelete is a directory do something different from usualy
+ //recursivly remove labels
+
+ }
+
+
/*
* on va commencer par vérifier les arguments ''wp delete [--ws (url du
* WikittyService)] [répertoire ou fichier à supprimer]'' on doit avoir
@@ -229,6 +319,15 @@
* update the current workspace from a wikitty
*/
public static void updateFromWikitty() {
+
+ boolean noRecur = applicationConfig.getOptionAsBoolean(NO_RECURSION_KEY);
+ File dir = applicationConfig.getOptionAsFile(DIRECTORY_KEY);
+ String wikittyService= applicationConfig.getOption(WITTY_SERVICE_KEY);
+
+
+
+
+
/*
* on va commencer par vérifier les arguments * ''wp update
* [--norecursion] [--ws (url du WikittyService)] [répertoire à mettre à
@@ -236,5 +335,35 @@
* quelque chose dans le recursion
*/
}
+
+
+ /**
+ * Use to search in the file system the directory that containt the
+ * .wp dir that containt the properties file for the wikitty service's adresse
+ */
+ protected static File searchWikittyPublicationHomeDir(File start) {
+
+ if (start.exists()&& true==start.isDirectory()){
+ //on va retourner le dossier .wp home
+
+ //method récursiv qui remonte dans les parents pour retrouver.
+
+
+ File temp= new File(start.getAbsolutePath()+PROPERTY_DIRECTORY);
+ if (true==temp.exists()){
+ File propertie= new File(temp.getAbsolutePath()+WIKITTYPUBLICATION_PROPERTIES_FILE);
+ if(true==propertie.exists()){
+ return temp;
+ }
+ }
+ return searchWikittyPublicationHomeDir(start.getParentFile());
+ }else {
+ //Exception
+ /*
+ * TODO mfortun-2011-04-06 whrite/set the appropriate exception here
+ */
+ return null;
+ }
+ }
}
1
0
r758 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 05 Apr '11
by mfortun@users.nuiton.org 05 Apr '11
05 Apr '11
Author: mfortun
Date: 2011-04-05 18:00:48 +0200 (Tue, 05 Apr 2011)
New Revision: 758
Url: http://nuiton.org/repositories/revision/wikitty/758
Log:
resume prototypage with use of action alias instead of an ugly if. Correct indent without tab, correct Todo template
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-05 12:45:14 UTC (rev 757)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-05 16:00:48 UTC (rev 758)
@@ -5,6 +5,8 @@
import java.util.List;
import java.util.Properties;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.ArgumentsParserException;
import org.nuiton.wikitty.WikittyProxy;
@@ -15,196 +17,224 @@
public class WikittyPublication {
- protected static WikittyPublicationFileSystem wikittyServiceFileSystem;
- protected static ApplicationConfig applicationConfig;
- protected static WikittyProxy proxyWS;
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ final static private Log log = LogFactory.getLog(WikittyPublication.class);
- /**
- * @param args
- * @throws ArgumentsParserException
- */
- public static void main(String[] args) throws Exception {
+ protected static WikittyPublicationFileSystem wikittyServiceFileSystem;
+ protected static ApplicationConfig applicationConfig;
+ protected static WikittyProxy proxyWS;
- /*
+ /**
+ * @param args
+ * @throws ArgumentsParserException
+ */
+ public static void main(String[] args) throws Exception {
+
+ /*
*
*/
- // on va creer un wikitty proxy pour le lien avec le wikitty qui stock
- // mes trucs
- // et on va avoir un wikittypublicationfilesystem pour stocker sur le
- // local et tout
- // soucis du wikittyFS c'est de savoir dans quel dossier il va taffer ?
- // a moins qu'il prenne un directory de travail
+ // on va creer un wikitty proxy pour le lien avec le wikitty qui stock
+ // mes trucs
+ // et on va avoir un wikittypublicationfilesystem pour stocker sur le
+ // local et tout
+ // soucis du wikittyFS c'est de savoir dans quel dossier il va taffer ?
+ // a moins qu'il prenne un directory de travail
- /*
- * ws.properties :wikitty.service= http://www.adresse.com:8080
- *
- * wikittypubs.properties
- * script.js=numéroVersion7 id.script.js= id du wikitty
- * scripttut.js=numéroVersion id.scripttut.js= id du wikitty
- * image.png=numéroVersion id.image.png= id du wikitty label=
- * racine.directory2, racine.directory22
- */
+ /*
+ * ws.properties :wikitty.service= http://www.adresse.com:8080
+ *
+ * wikittypubs.properties script.js=numéroVersion7 id.script.js= id du
+ * wikitty scripttut.js=numéroVersion id.scripttut.js= id du wikitty
+ * image.png=numéroVersion id.image.png= id du wikitty label=
+ * racine.directory2, racine.directory22
+ */
- applicationConfig = new ApplicationConfig();
-
-
-
-
- // allias for the url of the wikitty service
- applicationConfig.addAlias("--ws", "--option", "wikitty.service");
-
-
- // allias for norecursion
- applicationConfig.addAlias("--norecursion", "--option", "recursion",
- "false");
+ applicationConfig = new ApplicationConfig();
- // allias for the action
- applicationConfig.addAlias("wp", "--option", "action");
+ // allias for the url of the wikitty service
+ applicationConfig.addAlias("--ws", "--option", "wikitty.service");
- // après on prend les unparsed en fonction de tout
- // on attend un certain nombre d'argument
- // objectif préparer pour ce soir toutes les commandes avec argument
- // plus d'autre trucs.
- applicationConfig.parse(args);
+ applicationConfig.addAlias("--dir", "--option", "directory");
-
- String action = applicationConfig.getOption("action");
- if ("import".equals(action)) {
- importToWikitty();
- } else if ("commit".equals(action)) {
- commitToWikitty();
- } else if ("checkout".equals(action)) {
- checkoutFromWikitty();
- } else if ("relocate".equals(action)) {
- relocateWikitty();
- } else if ("delete".equals(action)) {
- deleteFromWikitty();
- } else if ("update".equals(action)) {
- updateFromWikitty();
- } else {
- // on va throw une exception puisque l'action n'est pas reconnu
- }
+ /*
+ * TODO mfortun-2011-04-05 once application fixed setdefault value and
+ * enumclass for initialisation
+ */
-
- }
+ // allias for norecursion
+ applicationConfig.addAlias("--norecursion", "--option", "norecursion",
+ "true");
- /**
- * Method that import the content of a directory into a wikitty service
- */
- protected static void importToWikitty() {
- List<String> argumentsImports= applicationConfig.getUnparsed();
-
- if(2!=argumentsImports.size()){
- System.out.println("Import usage: wp import [--norecursion] [url du WikittyService] [directory]");
- } else{
- String recurValue= applicationConfig.getOption("recursion");
-
- String result="Import:";
- if (recurValue!=null && false== applicationConfig.getOptionAsBoolean(recurValue) ){
- result+="\nRecursion=false";
- }
- System.out.println();
- result+="\nWikittyUrl="+argumentsImports.get(0);
- result+="\nDirectory="+argumentsImports.get(1);
-
- System.out.println(result);
-
-
- }
-
-
-
- //System.out.println("User choice: wp import" + );
-
- /*
- * on va commencer par vérifier les arguments * ''wp import
- * [--norecursion] [url du WikittyService] [directory]'' on doit avoir
- * deux string dans le unparsed et potentiellement quelque chose dans le
- * getoption recursion
- */
+ // allias for all the action
+ applicationConfig.addAlias("wp import", "--option", "import");
+ applicationConfig.addAlias("wp checkout", "--option", "checkout");
+ applicationConfig.addAlias("wp relocate", "--option", "relocate");
+ applicationConfig.addAlias("wp commit", "--option", "commit");
+ applicationConfig.addAlias("wp delete", "--option", "delete");
+ applicationConfig.addAlias("wp update", "--option", "update");
- }
+ applicationConfig
+ .addActionAlias("import",
+ "org.nuiton.wikitty.publication.WikittyPublication#importToWikitty");
- /**
- * Method that checkout a label recursivly or not into a local directory
- * from a wikitty service
- */
- protected static void checkoutFromWikitty() {
+ applicationConfig
+ .addActionAlias("checkout",
+ "org.nuiton.wikitty.publication.WikittyPublication#checkoutFromWikitty");
-
-
- /*
- * on va commencer par vérifier les arguments ''wp checkout
- * [--norecursion] [url du WikittyService] [Label à extraire] [directory
- * local d'accueil]'' on doit avoir trois string dans le unparsed: url,
- * label, directory et potentiellement quelque chose dans le getoption
- * recursion
- */
+ applicationConfig
+ .addActionAlias("relocate",
+ "org.nuiton.wikitty.publication.WikittyPublication#relocateWikitty");
- }
+ applicationConfig
+ .addActionAlias("commit",
+ "org.nuiton.wikitty.publication.WikittyPublication#commitToWikitty");
- /**
- * Relocate the default url of the wikitty service
- */
- protected static void relocateWikitty() {
- /*
- * Properties props=new Properties();
- props.load(new FileReader(new File("/home/Manou/temp.properties")));
- applicationConfig.setOptions(props);
- *
- */
-
- /*
- * on va commencer par vérifier les arguments ''wp relocate [nouvelle
- * url du WikittyService par defaut] [directory a relocaliser]'' on doit
- * avoir trois string dans le unparsed: url et directory
- */
+ applicationConfig
+ .addActionAlias("delete",
+ "org.nuiton.wikitty.publication.WikittyPublication#deleteFromWikitty");
- }
+ applicationConfig
+ .addActionAlias("update",
+ "org.nuiton.wikitty.publication.WikittyPublication#updateFromWikitty");
-
- /**
- * commit the current wikittyworkspace into a wikitty service
- */
- protected static void commitToWikitty() {
- /*
- * on va commencer par vérifier les arguments ''wp commit
- * [--norecursion] [--ws (url du WikittyService)] [répertoire à
- * pousser]'' on doit avoir deux string dans le unparsed et
- * potentiellement quelque chose dans le getoption recursion
- */
+ // parsing
+ applicationConfig.parse(args);
+ // execution
+ applicationConfig.doAction(0);
- }
+ }
- /**
- * delete a file or directory from the workspace
- * it remove the label from the wikitty
- */
- protected static void deleteFromWikitty() {
- /*
- * on va commencer par vérifier les arguments
- * ''wp delete [--ws (url du WikittyService)] [répertoire ou fichier à
- * supprimer]''
- * on doit avoir un string dans le unparsed et après pour pour le wikittyservice
- * bah on tape dedans en fonction de si elle a été précisé en ligne de commande
- * applicationConfig se débrouille
- */
- }
+ /**
+ * Method that import the content of a directory into a wikitty service
+ */
+ public static void importToWikitty() {
- /**
- * update the current workspace from a wikitty
- */
- protected static void updateFromWikitty() {
- /*
- * on va commencer par vérifier les arguments
- * * ''wp update [--norecursion] [--ws (url du
- * WikittyService)] [répertoire à mettre à jour]''
- * normalement un string dans unparsed
- * et potentiellement quelque chose dans le recursion
- *
- *
- */
- }
+ boolean noRecur = applicationConfig.getOptionAsBoolean("norecursion");
+ File dir = applicationConfig.getOptionAsFile("directory");
+ String wikittyService= applicationConfig.getOption("wikitty.service");
+ log.info("import : wikittyservice: "
+ + wikittyService
+ + " noresursion=" + noRecur + " directory= "
+ + dir.getAbsolutePath());
+ //usage: wp --norecursion --ws http://truc.com import --dir /home/Manou
+
+
+ /* TODO mfortun-2011-04-05 just prototypage, remove when really
+ *implements the method
+ *
+ */
+ System.out.println("import :\n");
+ for (File child : dir.listFiles()) {
+ if (child.isDirectory() && false == noRecur) {
+ printDirectory(child);
+ } else if(false==child.isDirectory()) {
+ System.out.println(child.getAbsolutePath());
+ }
+
+ }
+ }
+
+ /* TODO mfortun-2011-04-05 just prototypage, remove when really implements
+ * the method linked: importToWikitty
+ */
+ public static void printDirectory(File dir) {
+ System.out.println("<dir " + dir.getName() + ">");
+ for (File child : dir.listFiles()) {
+ if (child.isDirectory()) {
+ printDirectory(child);
+ } else {
+ System.out.println(child.getAbsolutePath());
+ }
+ }
+ System.out.println("</dir >");
+ }
+
+ /**
+ * Method that checkout a label recursivly or not into a local directory
+ * from a wikitty service
+ */
+ public static void checkoutFromWikitty(String label) {
+
+ boolean noRecur = applicationConfig.getOptionAsBoolean("norecursion");
+ File dir = applicationConfig.getOptionAsFile("directory");
+ String wikittyService= applicationConfig.getOption("wikitty.service");
+
+ log.info("checkout : wikittyservice: "
+ + wikittyService
+ + " noresursion=" + noRecur + " directory= "
+ + dir.getAbsolutePath()
+ +"Label a checkout " +label);
+
+
+
+
+ /*
+ * on va commencer par vérifier les arguments ''wp checkout
+ * [--norecursion] [url du WikittyService] [Label à extraire] [directory
+ * local d'accueil]'' on doit avoir trois string dans le unparsed: url,
+ * label, directory et potentiellement quelque chose dans le getoption
+ * recursion
+ */
+
+ }
+
+ /**
+ * Relocate the default url of the wikitty service
+ */
+ public static void relocateWikitty() {
+ /*
+ * Properties props=new Properties(); props.load(new FileReader(new
+ * File("/home/Manou/temp.properties")));
+ * applicationConfig.setOptions(props);
+ */
+
+ /*
+ * on va commencer par vérifier les arguments ''wp relocate [nouvelle
+ * url du WikittyService par defaut] [directory a relocaliser]'' on doit
+ * avoir trois string dans le unparsed: url et directory
+ */
+
+ }
+
+ /**
+ * commit the current wikittyworkspace into a wikitty service
+ */
+ public static void commitToWikitty() {
+ /*
+ * on va commencer par vérifier les arguments ''wp commit
+ * [--norecursion] [--ws (url du WikittyService)] [répertoire à
+ * pousser]'' on doit avoir deux string dans le unparsed et
+ * potentiellement quelque chose dans le getoption recursion
+ */
+
+ }
+
+ /**
+ * delete a file or directory from the workspace it remove the label from
+ * the wikitty
+ */
+ public static void deleteFromWikitty() {
+ /*
+ * on va commencer par vérifier les arguments ''wp delete [--ws (url du
+ * WikittyService)] [répertoire ou fichier à supprimer]'' on doit avoir
+ * un string dans le unparsed et après pour pour le wikittyservice bah
+ * on tape dedans en fonction de si elle a été précisé en ligne de
+ * commande applicationConfig se débrouille
+ */
+ }
+
+ /**
+ * update the current workspace from a wikitty
+ */
+ public static void updateFromWikitty() {
+ /*
+ * on va commencer par vérifier les arguments * ''wp update
+ * [--norecursion] [--ws (url du WikittyService)] [répertoire à mettre à
+ * jour]'' normalement un string dans unparsed et potentiellement
+ * quelque chose dans le recursion
+ */
+ }
+
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java 2011-04-05 12:45:14 UTC (rev 757)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java 2011-04-05 16:00:48 UTC (rev 758)
@@ -3,6 +3,8 @@
import java.util.Collection;
import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyExtension;
@@ -15,181 +17,231 @@
public class WikittyPublicationFileSystem implements WikittyService {
-
-
- @Override
- public void addWikittyServiceListener(WikittyListener listener,
- ServiceListenerType type) {
- // TODO Auto-generated method stub
-
- }
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ final static private Log log = LogFactory.getLog(WikittyPublicationFileSystem.class);
+
+ @Override
+ public void addWikittyServiceListener(WikittyListener listener,
+ ServiceListenerType type) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //
+
+ }
- @Override
- public void removeWikittyServiceListener(WikittyListener listener,
- ServiceListenerType type) {
- // TODO Auto-generated method stub
-
- }
+ @Override
+ public void removeWikittyServiceListener(WikittyListener listener,
+ ServiceListenerType type) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //
+
+ }
- @Override
- public String login(String login, String password) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String login(String login, String password) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public void logout(String securityToken) {
- // TODO Auto-generated method stub
-
- }
+ @Override
+ public void logout(String securityToken) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //
+
+ }
- @Override
- public WikittyEvent clear(String securityToken) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyEvent clear(String securityToken) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public boolean canWrite(String securityToken, Wikitty wikitty) {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean canWrite(String securityToken, Wikitty wikitty) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return false;
+
+ }
- @Override
- public boolean canDelete(String securityToken, String wikittyId) {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean canDelete(String securityToken, String wikittyId) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return false;
+
+ }
- @Override
- public boolean canRead(String securityToken, String wikittyId) {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean canRead(String securityToken, String wikittyId) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return false;
+
+ }
- @Override
- public boolean exists(String securityToken, String wikittyId) {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean exists(String securityToken, String wikittyId) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return false;
+
+ }
- @Override
- public boolean isDeleted(String securityToken, String wikittyId) {
- // TODO Auto-generated method stub
- return false;
- }
+ @Override
+ public boolean isDeleted(String securityToken, String wikittyId) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return false;
+
+ }
- @Override
- public WikittyEvent replay(String securityToken, List<WikittyEvent> events,
- boolean force) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyEvent replay(String securityToken, List<WikittyEvent> events,
+ boolean force) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- //XXX à faire en priorité
- public WikittyEvent store(String securityToken,
- Collection<Wikitty> wikitties, boolean force) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyEvent store(String securityToken,
+ Collection<Wikitty> wikitties, boolean force) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public List<String> getAllExtensionIds(String securityToken) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public List<String> getAllExtensionIds(String securityToken) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public List<String> getAllExtensionsRequires(String securityToken,
- String extensionName) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public List<String> getAllExtensionsRequires(String securityToken,
+ String extensionName) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public WikittyEvent storeExtension(String securityToken,
- Collection<WikittyExtension> exts) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyEvent storeExtension(String securityToken,
+ Collection<WikittyExtension> exts) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public WikittyEvent deleteExtension(String securityToken,
- Collection<String> extNames) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyEvent deleteExtension(String securityToken,
+ Collection<String> extNames) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public WikittyExtension restoreExtension(String securityToken,
- String extensionId) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyExtension restoreExtension(String securityToken,
+ String extensionId) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public WikittyExtension restoreExtensionLastVersion(String securityToken,
- String name) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyExtension restoreExtensionLastVersion(String securityToken,
+ String name) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- //XXX à faire en priorité
-
- public List<Wikitty> restore(String securityToken, List<String> id) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public List<Wikitty> restore(String securityToken, List<String> id) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public WikittyEvent delete(String securityToken, Collection<String> ids) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyEvent delete(String securityToken, Collection<String> ids) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public PagedResult<String>[] findAllByCriteria(String securityToken,
- Criteria... criteria) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public PagedResult<String>[] findAllByCriteria(String securityToken,
+ Criteria... criteria) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public String[] findByCriteria(String securityToken, Criteria... criteria) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public String[] findByCriteria(String securityToken, Criteria... criteria) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public TreeNodeResult<String> findTreeNode(String securityToken,
- String wikittyId, int depth, boolean count, Criteria filter) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public TreeNodeResult<String> findTreeNode(String securityToken,
+ String wikittyId, int depth, boolean count, Criteria filter) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public Wikitty restoreVersion(String securityToken, String wikittyId,
- String version) {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public Wikitty restoreVersion(String securityToken, String wikittyId,
+ String version) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //return null;
+
+ }
- @Override
- public void syncSearchEngine(String securityToken) {
- // TODO Auto-generated method stub
-
- }
+ @Override
+ public void syncSearchEngine(String securityToken) {
+ // TODO mfortun-2011-04-05
+ throw new UnsupportedOperationException("not yet implemented");
+ //
+
+ }
-
+
+
-
+
}
-
1
0
Author: mfortun
Date: 2011-04-05 14:45:14 +0200 (Tue, 05 Apr 2011)
New Revision: 757
Url: http://nuiton.org/repositories/revision/wikitty/757
Log:
remove from the pom eclipse's modifications
Modified:
trunk/wikitty-publication/pom.xml
Modified: trunk/wikitty-publication/pom.xml
===================================================================
--- trunk/wikitty-publication/pom.xml 2011-04-05 12:34:58 UTC (rev 756)
+++ trunk/wikitty-publication/pom.xml 2011-04-05 12:45:14 UTC (rev 757)
@@ -129,39 +129,7 @@
</plugin>
</plugins>
- <pluginManagement>
- <plugins>
- <!--TODO TEXT. This plugin's configuration is used in m2e only.-->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.nuiton.eugene</groupId>
- <artifactId>
- maven-eugene-plugin
- </artifactId>
- <versionRange>
- [2.3.1,)
- </versionRange>
- <goals>
- <goal>smart-generate</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
+
</build>
</project>
1
0
r756 - in trunk/wikitty-publication: . src/main/java/org/nuiton/wikitty/publication src/site/rst
by mfortun@users.nuiton.org 05 Apr '11
by mfortun@users.nuiton.org 05 Apr '11
05 Apr '11
Author: mfortun
Date: 2011-04-05 14:34:58 +0200 (Tue, 05 Apr 2011)
New Revision: 756
Url: http://nuiton.org/repositories/revision/wikitty/756
Log:
first steps for the sync part of wikitty publication
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java
Modified:
trunk/wikitty-publication/pom.xml
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java
trunk/wikitty-publication/src/site/rst/wp-analyse.rst
Modified: trunk/wikitty-publication/pom.xml
===================================================================
--- trunk/wikitty-publication/pom.xml 2011-04-01 16:57:08 UTC (rev 755)
+++ trunk/wikitty-publication/pom.xml 2011-04-05 12:34:58 UTC (rev 756)
@@ -129,6 +129,39 @@
</plugin>
</plugins>
+ <pluginManagement>
+ <plugins>
+ <!--TODO TEXT. This plugin's configuration is used in m2e only.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>
+ maven-eugene-plugin
+ </artifactId>
+ <versionRange>
+ [2.3.1,)
+ </versionRange>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
</project>
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java 2011-04-01 16:57:08 UTC (rev 755)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java 2011-04-05 12:34:58 UTC (rev 756)
@@ -67,6 +67,8 @@
int firstIndex = StringUtil.toInt(first);
int endIndex = StringUtil.toInt(end);
+
+
Criteria criteria = Search.query().keyword(r).criteria();
criteria.setFirstIndex(firstIndex);
criteria.setEndIndex(endIndex);
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublication.java 2011-04-05 12:34:58 UTC (rev 756)
@@ -0,0 +1,210 @@
+package org.nuiton.wikitty.publication;
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.List;
+import java.util.Properties;
+
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ArgumentsParserException;
+import org.nuiton.wikitty.WikittyProxy;
+
+///XXX a faire avec applicationConfig faire des trucs et des machins
+/// objectif mercredi ça affiche les trucs depuis le repo
+/// et ça lit en local aussi
+
+public class WikittyPublication {
+
+ protected static WikittyPublicationFileSystem wikittyServiceFileSystem;
+ protected static ApplicationConfig applicationConfig;
+ protected static WikittyProxy proxyWS;
+
+ /**
+ * @param args
+ * @throws ArgumentsParserException
+ */
+ public static void main(String[] args) throws Exception {
+
+ /*
+ *
+ */
+
+ // on va creer un wikitty proxy pour le lien avec le wikitty qui stock
+ // mes trucs
+ // et on va avoir un wikittypublicationfilesystem pour stocker sur le
+ // local et tout
+ // soucis du wikittyFS c'est de savoir dans quel dossier il va taffer ?
+ // a moins qu'il prenne un directory de travail
+
+ /*
+ * ws.properties :wikitty.service= http://www.adresse.com:8080
+ *
+ * wikittypubs.properties
+ * script.js=numéroVersion7 id.script.js= id du wikitty
+ * scripttut.js=numéroVersion id.scripttut.js= id du wikitty
+ * image.png=numéroVersion id.image.png= id du wikitty label=
+ * racine.directory2, racine.directory22
+ */
+
+ applicationConfig = new ApplicationConfig();
+
+
+
+
+ // allias for the url of the wikitty service
+ applicationConfig.addAlias("--ws", "--option", "wikitty.service");
+
+
+ // allias for norecursion
+ applicationConfig.addAlias("--norecursion", "--option", "recursion",
+ "false");
+
+ // allias for the action
+ applicationConfig.addAlias("wp", "--option", "action");
+
+ // après on prend les unparsed en fonction de tout
+ // on attend un certain nombre d'argument
+ // objectif préparer pour ce soir toutes les commandes avec argument
+ // plus d'autre trucs.
+ applicationConfig.parse(args);
+
+
+ String action = applicationConfig.getOption("action");
+ if ("import".equals(action)) {
+ importToWikitty();
+ } else if ("commit".equals(action)) {
+ commitToWikitty();
+ } else if ("checkout".equals(action)) {
+ checkoutFromWikitty();
+ } else if ("relocate".equals(action)) {
+ relocateWikitty();
+ } else if ("delete".equals(action)) {
+ deleteFromWikitty();
+ } else if ("update".equals(action)) {
+ updateFromWikitty();
+ } else {
+ // on va throw une exception puisque l'action n'est pas reconnu
+ }
+
+
+ }
+
+ /**
+ * Method that import the content of a directory into a wikitty service
+ */
+ protected static void importToWikitty() {
+ List<String> argumentsImports= applicationConfig.getUnparsed();
+
+ if(2!=argumentsImports.size()){
+ System.out.println("Import usage: wp import [--norecursion] [url du WikittyService] [directory]");
+ } else{
+ String recurValue= applicationConfig.getOption("recursion");
+
+ String result="Import:";
+ if (recurValue!=null && false== applicationConfig.getOptionAsBoolean(recurValue) ){
+ result+="\nRecursion=false";
+ }
+ System.out.println();
+ result+="\nWikittyUrl="+argumentsImports.get(0);
+ result+="\nDirectory="+argumentsImports.get(1);
+
+ System.out.println(result);
+
+
+ }
+
+
+
+ //System.out.println("User choice: wp import" + );
+
+ /*
+ * on va commencer par vérifier les arguments * ''wp import
+ * [--norecursion] [url du WikittyService] [directory]'' on doit avoir
+ * deux string dans le unparsed et potentiellement quelque chose dans le
+ * getoption recursion
+ */
+
+ }
+
+ /**
+ * Method that checkout a label recursivly or not into a local directory
+ * from a wikitty service
+ */
+ protected static void checkoutFromWikitty() {
+
+
+
+ /*
+ * on va commencer par vérifier les arguments ''wp checkout
+ * [--norecursion] [url du WikittyService] [Label à extraire] [directory
+ * local d'accueil]'' on doit avoir trois string dans le unparsed: url,
+ * label, directory et potentiellement quelque chose dans le getoption
+ * recursion
+ */
+
+ }
+
+ /**
+ * Relocate the default url of the wikitty service
+ */
+ protected static void relocateWikitty() {
+ /*
+ * Properties props=new Properties();
+ props.load(new FileReader(new File("/home/Manou/temp.properties")));
+ applicationConfig.setOptions(props);
+ *
+ */
+
+ /*
+ * on va commencer par vérifier les arguments ''wp relocate [nouvelle
+ * url du WikittyService par defaut] [directory a relocaliser]'' on doit
+ * avoir trois string dans le unparsed: url et directory
+ */
+
+ }
+
+
+ /**
+ * commit the current wikittyworkspace into a wikitty service
+ */
+ protected static void commitToWikitty() {
+ /*
+ * on va commencer par vérifier les arguments ''wp commit
+ * [--norecursion] [--ws (url du WikittyService)] [répertoire à
+ * pousser]'' on doit avoir deux string dans le unparsed et
+ * potentiellement quelque chose dans le getoption recursion
+ */
+
+ }
+
+ /**
+ * delete a file or directory from the workspace
+ * it remove the label from the wikitty
+ */
+ protected static void deleteFromWikitty() {
+ /*
+ * on va commencer par vérifier les arguments
+ * ''wp delete [--ws (url du WikittyService)] [répertoire ou fichier à
+ * supprimer]''
+ * on doit avoir un string dans le unparsed et après pour pour le wikittyservice
+ * bah on tape dedans en fonction de si elle a été précisé en ligne de commande
+ * applicationConfig se débrouille
+ */
+ }
+
+ /**
+ * update the current workspace from a wikitty
+ */
+ protected static void updateFromWikitty() {
+ /*
+ * on va commencer par vérifier les arguments
+ * * ''wp update [--norecursion] [--ws (url du
+ * WikittyService)] [répertoire à mettre à jour]''
+ * normalement un string dans unparsed
+ * et potentiellement quelque chose dans le recursion
+ *
+ *
+ */
+ }
+
+}
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationFileSystem.java 2011-04-05 12:34:58 UTC (rev 756)
@@ -0,0 +1,195 @@
+package org.nuiton.wikitty.publication;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.PagedResult;
+import org.nuiton.wikitty.search.TreeNodeResult;
+import org.nuiton.wikitty.services.WikittyEvent;
+import org.nuiton.wikitty.services.WikittyListener;
+
+
+public class WikittyPublicationFileSystem implements WikittyService {
+
+
+
+ @Override
+ public void addWikittyServiceListener(WikittyListener listener,
+ ServiceListenerType type) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void removeWikittyServiceListener(WikittyListener listener,
+ ServiceListenerType type) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public String login(String login, String password) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void logout(String securityToken) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public WikittyEvent clear(String securityToken) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean canWrite(String securityToken, Wikitty wikitty) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean canDelete(String securityToken, String wikittyId) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean canRead(String securityToken, String wikittyId) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean exists(String securityToken, String wikittyId) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isDeleted(String securityToken, String wikittyId) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public WikittyEvent replay(String securityToken, List<WikittyEvent> events,
+ boolean force) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ //XXX à faire en priorité
+ public WikittyEvent store(String securityToken,
+ Collection<Wikitty> wikitties, boolean force) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List<String> getAllExtensionIds(String securityToken) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List<String> getAllExtensionsRequires(String securityToken,
+ String extensionName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WikittyEvent storeExtension(String securityToken,
+ Collection<WikittyExtension> exts) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WikittyEvent deleteExtension(String securityToken,
+ Collection<String> extNames) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WikittyExtension restoreExtension(String securityToken,
+ String extensionId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WikittyExtension restoreExtensionLastVersion(String securityToken,
+ String name) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ //XXX à faire en priorité
+
+ public List<Wikitty> restore(String securityToken, List<String> id) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WikittyEvent delete(String securityToken, Collection<String> ids) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public PagedResult<String>[] findAllByCriteria(String securityToken,
+ Criteria... criteria) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String[] findByCriteria(String securityToken, Criteria... criteria) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WikittyEvent deleteTree(String securityToken, String treeNodeId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public TreeNodeResult<String> findTreeNode(String securityToken,
+ String wikittyId, int depth, boolean count, Criteria filter) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Wikitty restoreVersion(String securityToken, String wikittyId,
+ String version) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void syncSearchEngine(String securityToken) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+
+
+}
+
Modified: trunk/wikitty-publication/src/site/rst/wp-analyse.rst
===================================================================
--- trunk/wikitty-publication/src/site/rst/wp-analyse.rst 2011-04-01 16:57:08 UTC (rev 755)
+++ trunk/wikitty-publication/src/site/rst/wp-analyse.rst 2011-04-05 12:34:58 UTC (rev 756)
@@ -264,7 +264,7 @@
Il est bien sur possible d'utiliser l'application avec tous les
sources dans Wikitty. Mais il est aussi possible d'utiliser
l'application en extrayant les sources dans des fichiers et les
-packagers dans un war. Dans ce cas l'application est vigée et n'est
+packagers dans un war. Dans ce cas l'application est figée et n'est
plus modifiable à l'exécution. Pour cela on utilise la servlet
WikittyPublicationExternalize qui au lieu d'aller chercher les
WikittyPubText et WikittyPubData dans le WikittyService va les
@@ -280,7 +280,7 @@
les données pour des raisons de sécurites.
Au contraire lors d'une phase de prototypage ou si l'on souhaite
-pouvoir modifier facilement l'application on utiilsera le déploiement
+pouvoir modifier facilement l'application on utilisera le déploiement
avec l'application dans Wikitty.
Statistique d'accès au pages
1
0
r755 - trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search
by bpoussin@users.nuiton.org 01 Apr '11
by bpoussin@users.nuiton.org 01 Apr '11
01 Apr '11
Author: bpoussin
Date: 2011-04-01 18:57:08 +0200 (Fri, 01 Apr 2011)
New Revision: 755
Url: http://nuiton.org/repositories/revision/wikitty/755
Log:
Evolution #1436: add new method to retrieve Topic on PagedResult
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/PagedResult.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/PagedResult.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/PagedResult.java 2011-03-25 13:56:41 UTC (rev 754)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/PagedResult.java 2011-04-01 16:57:08 UTC (rev 755)
@@ -31,6 +31,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
@@ -72,7 +73,13 @@
protected List<T> results;
/** facet asked or null if no facet */
protected Map<String, List<FacetTopic>> facets;
+ /** facet asked of null if no facet, FacetTopic are put in map with key topic name,
+ * To use this variable, you must used getter, because, this variable is
+ * lazy loaded from facets variable.
+ */
+ protected Map<String, Map<String, FacetTopic>> facetsAsMap = null;
+
/**
* we don't initialize securityToken
*
@@ -241,6 +248,40 @@
}
/**
+ * Return topic for the specified facet and topic name.
+ *
+ * @param facetName name of the wanted facet
+ * @param topicName name of the wanted topic
+ * @return topic
+ */
+ public FacetTopic getTopic(String facetName, String topicName) {
+ FacetTopic result = getFacetsAsMap().get(facetName).get(topicName);
+ return result;
+ }
+
+ /**
+ * Return topic count for the specified facet and topic name. If facet or
+ * topic don't exist, return 0.
+ *
+ * @param facetName name of the wanted facet
+ * @param topicName name of the wanted topic
+ * @return topic count or 0
+ */
+ public int getTopicCount(String facetName, String topicName) {
+ int result = 0;
+ if (getFacetsAsMap() != null) {
+ Map<String, FacetTopic> topics = getFacetsAsMap().get(facetName);
+ if (topics != null) {
+ FacetTopic topic = topics.get(topicName);
+ if (topic != null) {
+ result = topic.getCount();
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
* Get map represent facets.
*
* @return all facets
@@ -249,6 +290,25 @@
return facets;
}
+ public Map<String, Map<String, FacetTopic>> getFacetsAsMap() {
+ if (facetsAsMap == null && facets != null) {
+ // use local variable to prevent multi-thread problem (multiple add)
+ Map<String, Map<String, FacetTopic>> localFacetsAsMap =
+ new HashMap<String, Map<String, FacetTopic>>();
+ for (Map.Entry<String, List<FacetTopic>> e : getFacets().entrySet()) {
+ Map<String, FacetTopic> topics = new HashMap<String, FacetTopic>();
+ localFacetsAsMap.put(e.getKey(), topics);
+ for (FacetTopic t : e.getValue()) {
+ topics.put(t.getTopicName(), t);
+ }
+ }
+ facetsAsMap = localFacetsAsMap;
+ }
+ return facetsAsMap;
+ }
+
+
+
/**
* Return the first element in result
*
1
0