r1327 - in xwiki/trunk/src/main: java/com/xpn/xwiki/api java/com/xpn/xwiki/doc java/com/xpn/xwiki/plugin/query java/com/xpn/xwiki/store/jcr xwiki/jcrdb/Blog xwiki/jcrdb/Main xwiki/jcrdb/XWiki
Artem Melentev
amelentev at users.forge.objectweb.org
Tue Sep 19 00:38:40 CEST 2006
Author: amelentev
Date: 2006-09-19 00:38:38 +0200 (Tue, 19 Sep 2006)
New Revision: 1327
Modified:
xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java
xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java
xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/JackRabbitJCRProvider.java
xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/XWikiJcrStore.java
xwiki/trunk/src/main/xwiki/jcrdb/Blog/Macros
xwiki/trunk/src/main/xwiki/jcrdb/Main/WhatIsAWiki
xwiki/trunk/src/main/xwiki/jcrdb/XWiki/ArticleClass
xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassS5Sheet
xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassTemplate
xwiki/trunk/src/main/xwiki/jcrdb/XWiki/SlideClass
Log:
Fixed bug http://jira.xwiki.org/jira/browse/XWIKI-334 (method #3) :
Added preffix 'xp:' (Xwiki Property) to node names of xwiki:property
was: /web/doc/obj/web/name/prop/@value
now: /web/doc/obj/web/name/xp:prop/@value
Fixed jcr database (jcrdb). Presentations is working now.
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java 2006-09-18 22:38:38 UTC (rev 1327)
@@ -1345,6 +1345,9 @@
public Map getHashMap() {
return new HashMap();
}
+ public Map getTreeMap() {
+ return new TreeMap();
+ }
/**
* API to sort a list over standard comparator.
@@ -1357,6 +1360,13 @@
Collections.sort(list);
return list;
}
+ public Number toNumber(Object o) {
+ try {
+ return new Long(o.toString());
+ } catch (Exception e) {
+ return null;
+ }
+ }
/**
* API to Outpout an BufferedImage object into the response outputstream
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java 2006-09-18 22:38:38 UTC (rev 1327)
@@ -1624,6 +1624,7 @@
setParent(getElement(docel, "parent"));
setCreator(getElement(docel, "creator"));
setAuthor(getElement(docel, "author"));
+ setContentAuthor(getElement(docel, "contentAuthor"));
setVersion(getElement(docel, "version"));
setContent(getElement(docel, "content"));
setLanguage(getElement(docel, "language"));
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/plugin/query/QueryPlugin.java 2006-09-18 22:38:38 UTC (rev 1327)
@@ -185,8 +185,7 @@
boolean descending = (c == '-');
if (c=='-' || c=='+')
prop = prop.substring(1);
- c = prop.charAt(0);
- if (c!='@')
+ if (prop.indexOf("@")<0)
res.append("@");
res.append(prop);
if (descending)
@@ -209,7 +208,7 @@
for (int i=0; i<props.length; i++) {
final String p = props[i];
sb.append(comma);
- if (p.charAt(0)!='@')
+ if (p.indexOf("@")<0)
sb.append("@");
sb.append(p);
comma = ",";
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/JackRabbitJCRProvider.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/JackRabbitJCRProvider.java 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/JackRabbitJCRProvider.java 2006-09-18 22:38:38 UTC (rev 1327)
@@ -44,6 +44,7 @@
import org.apache.portals.graffito.jcr.query.impl.QueryManagerImpl;
import javax.jcr.*;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -112,22 +113,15 @@
//TODO: namespace and nodetypes in one compact node def.
XWikiJcrSession s = getSession(workspace);
try {
- try {
- s.getWorkspace().getNamespaceRegistry().registerNamespace("xwiki", "http://www.xwiki.org");
- log.info("namespace 'xwiki' registered!");
- } catch (NamespaceException e) {};
- try {
- s.getWorkspace().getNamespaceRegistry().registerNamespace("graffito", "http://incubator.apache.org/graffito");
- log.info("namespace 'graffito' registered!");
- } catch (NamespaceException e) {};
+ registerNamespace(s.getWorkspace(), "xwiki", "http://www.xwiki.org");
+ registerNamespace(s.getWorkspace(), "xp", "http://www.xwiki.org/property");
+ registerNamespace(s.getWorkspace(), "graffito", "http://incubator.apache.org/graffito");
registerNodeTypes(s.getWorkspace(), getRealConfigPath("xwiki.store.jcr.jackrabbit.nodetypes.config", "jackrabbit/nodetypes.cnd"));
s.save();
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.info("Node types not registered", e);
return false;
- }
- finally {
+ } finally {
s.logout();
}
return true;
@@ -144,6 +138,15 @@
});
ntm.registerNodeTypes(fis, NodeTypeManagerImpl.TEXT_X_JCR_CND);
}
+ private boolean registerNamespace(Workspace w, String preffix, String uri) throws UnsupportedRepositoryOperationException, AccessDeniedException, RepositoryException {
+ try {
+ w.getNamespaceRegistry().registerNamespace(preffix, uri);
+ log.info("namespace '"+preffix+"' registered!");
+ } catch (NamespaceException e) {
+ return false;
+ };
+ return true;
+ }
public void shutdown() {
// not needed becouse TransientRepository
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/XWikiJcrStore.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/XWikiJcrStore.java 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/store/jcr/XWikiJcrStore.java 2006-09-18 22:38:38 UTC (rev 1327)
@@ -266,12 +266,16 @@
}
private void saveXWikiProperty(XWikiJcrSession ses, Node objnode, BaseProperty prop) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, RepositoryException {
- Node propNode = ses.insertObject(objnode, prop.getName(), prop);
+ Node propNode = ses.insertObject(objnode, "xp:"+prop.getName(), prop);
propNode.setProperty("obj", objnode);
}
private BaseProperty loadXWikiProperty(XWikiJcrSession ses, Node nprop) throws RepositoryException {
BaseProperty prop = (BaseProperty) ses.loadObject(nprop.getPath());
- prop.setName( decode( nprop.getName() ) );
+ final String sname = nprop.getName();
+ int ip = sname.indexOf(":");
+ if (ip<0)
+ return null;
+ prop.setName( decode( sname.substring(ip+1) ) );
return prop;
}
@@ -662,7 +666,7 @@
executeRead(context, new JcrCallBack(){
public Object doInJcr(XWikiJcrSession session) throws Exception {
// XXX: if username contains "'" ?
- String xpath = "store/*/*/obj/XWiki/XWikiGroups/member[@value='"+username+"' or @value='"+shortname+"']";
+ String xpath = "store/*/*/obj/XWiki/XWikiGroups/xp:member[@value='"+username+"' or @value='"+shortname+"']";
Query query = session.getQueryManager().createQuery(xpath, Query.XPATH);
NodeIterator ni = query.execute().getNodes();
while (ni.hasNext()) {
Modified: xwiki/trunk/src/main/xwiki/jcrdb/Blog/Macros
===================================================================
--- xwiki/trunk/src/main/xwiki/jcrdb/Blog/Macros 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/xwiki/jcrdb/Blog/Macros 2006-09-18 22:38:38 UTC (rev 1327)
@@ -20,7 +20,7 @@
#if($category=='')
#set ($xpath = "*/*[@fullName!='XWiki.ArticleClassTemplate']/obj/XWiki/ArticleClass/jcr:deref(@doc, '*')")
#else
-#set ($xpath = "*/*[@fullName!='XWiki.ArticleClassTemplate']/obj/XWiki/ArticleClass/category[@value='${category}']/jcr:deref(@obj, '*')/jcr:deref(@doc, '*')")
+#set ($xpath = "*/*[@fullName!='XWiki.ArticleClassTemplate']/obj/XWiki/ArticleClass/xp:category[@value='${category}']/jcr:deref(@obj, '*')/jcr:deref(@doc, '*')")
#end
#set($cdate = "")
#set($inbitems = $xwiki.parseInt($nbitems))
Modified: xwiki/trunk/src/main/xwiki/jcrdb/Main/WhatIsAWiki
===================================================================
--- xwiki/trunk/src/main/xwiki/jcrdb/Main/WhatIsAWiki 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/xwiki/jcrdb/Main/WhatIsAWiki 2006-09-18 22:38:38 UTC (rev 1327)
@@ -84,15 +84,15 @@
<number>1</number>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</title>
-<snumber>
-<name>snumber</name>
+<number>
+<name>number</name>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
<numberType>integer</numberType>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
<content>
<name>content</name>
<prettyName>content</prettyName>
@@ -146,15 +146,15 @@
<number>1</number>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</title>
-<snumber>
-<name>snumber</name>
+<number>
+<name>number</name>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
<numberType>integer</numberType>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
<content>
<name>content</name>
<prettyName>content</prettyName>
@@ -217,15 +217,15 @@
<number>1</number>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</title>
-<snumber>
-<name>snumber</name>
+<number>
+<name>number</name>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
<numberType>integer</numberType>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
<content>
<name>content</name>
<prettyName>content</prettyName>
@@ -283,15 +283,15 @@
<number>1</number>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</title>
-<snumber>
-<name>snumber</name>
+<number>
+<name>number</name>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
<numberType>integer</numberType>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
<content>
<name>content</name>
<prettyName>content</prettyName>
@@ -352,15 +352,15 @@
<number>1</number>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</title>
-<snumber>
-<name>snumber</name>
+<number>
+<name>number</name>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
<numberType>integer</numberType>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
<content>
<name>content</name>
<prettyName>content</prettyName>
@@ -419,15 +419,15 @@
<number>1</number>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</title>
-<snumber>
-<name>snumber</name>
+<number>
+<name>number</name>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
<numberType>integer</numberType>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
<content>
<name>content</name>
<prettyName>content</prettyName>
Modified: xwiki/trunk/src/main/xwiki/jcrdb/XWiki/ArticleClass
===================================================================
--- xwiki/trunk/src/main/xwiki/jcrdb/XWiki/ArticleClass 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/xwiki/jcrdb/XWiki/ArticleClass 2006-09-18 22:38:38 UTC (rev 1327)
@@ -49,7 +49,7 @@
<size>5</size>
<relationalStorage>1</relationalStorage>
<name>category</name>
-<sql>/*/*/obj/Blog/Categories/name/@value</sql>
+<sql>/*/*/obj/Blog/Categories/xp:name/@value</sql>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.DBListClass</classType>
</category>
Modified: xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassS5Sheet
===================================================================
--- xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassS5Sheet 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassS5Sheet 2006-09-18 22:38:38 UTC (rev 1327)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
<xwikidoc>
<web>XWiki</web>
@@ -10,43 +10,45 @@
<creator>XWiki.Admin</creator>
<author>XWiki.Admin</author>
<contentAuthor></contentAuthor>
-<creationDate>1107690421000</creationDate>
-<date>1107690421000</date>
-<contentUpdateDate>1147857674000</contentUpdateDate>
+<creationDate>1107708421000</creationDate>
+<date>1107708421000</date>
+<contentUpdateDate>1155849666000</contentUpdateDate>
<version>1.2</version>
<title></title>
<template></template>
-<content>#set($presobj = $doc.getObject("XWiki.PresentationClass"))
-<div class="layout">
-<div id="currentSlide"></div>
-<div id="header">$!doc.display("header", "rendered", $presobj)</div>
-<div id="logo">$!doc.display("logo", "rendered", $presobj)</div>
-<div id="footer">
-$!doc.display("footer", "rendered", $presobj)
-<a href="$doc.getURL("inline")">
-<img src="$xwiki.getSkinFile("editPage.gif")" border="0" alt="Edit Presentation" />
-</a>
-<div id="controls"></div>
-</div>
-</div>
-<div class="presentation">
-#macro(slide $slideobj)
-<div class="slide">
-<h1>$doc.display("title", $slideobj)</h1>
-$doc.display("content", "rendered", $slideobj)
-</div>
-#end
-#set($objdone = $xwiki.hashMap)
-#set ($thesql = "select obj.number from BaseObject as obj, IntegerProperty as prop where obj.id=prop.id.id and prop.id.name='number' and obj.className='XWiki.SlideClass' and obj.name='${doc.fullName}' order by prop.value asc")
-#foreach($slideobjnb in $xwiki.search($thesql))
-#set($slideobj = $doc.getObject("XWiki.SlideClass", $slideobjnb))
-#set($ok = $objdone.put($slideobj.getNumber(),1))
-#slide($slideobj)
-#end
-#foreach($slideobj in $doc.getObjects("XWiki.SlideClass"))
-#if($objdone.get($slideobj.getNumber())!=1)
-#slide($slideobj)
-#end
-#end
+<content>#set($presobj = $doc.getObject("XWiki.PresentationClass"))
+<div class="layout">
+<div id="currentSlide"></div>
+<div id="header">$!doc.display("header", "rendered", $presobj)</div>
+<div id="logo">$!doc.display("logo", "rendered", $presobj)</div>
+<div id="footer">
+$!doc.display("footer", "rendered", $presobj)
+<a href="$doc.getURL("inline")">
+<img src="$xwiki.getSkinFile("editPage.gif")" border="0" alt="Edit Presentation" />
+</a>
+<div id="controls"></div>
+</div>
+</div>
+<div class="presentation">
+#macro(slide $slideobj)
+<div class="slide">
+<h1>$doc.display("title", $slideobj)</h1>
+$doc.display("content", "rendered", $slideobj)
+</div>
+#end
+
+#set ($objtree = $xwiki.treeMap)
+#foreach ($o in $doc.getObjects("XWiki.SlideClass"))
+ #set ($n = $xwiki.toNumber($o.get("number")))
+ #if (!$n)
+ #set ($n = "")
+ #end
+ #set ($ok = $objtree.put($n, $o))
+#end
+
+#foreach ($o in $objtree.values())
+ #slide($o)
+#end
+
</div></content>
</xwikidoc>
Modified: xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassTemplate
===================================================================
--- xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassTemplate 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/xwiki/jcrdb/XWiki/PresentationClassTemplate 2006-09-18 22:38:38 UTC (rev 1327)
@@ -85,15 +85,15 @@
<number>1</number>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</title>
-<snumber>
-<name>snumber</name>
+<number>
+<name>number</name>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
<numberType>integer</numberType>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
<content>
<name>content</name>
<prettyName>content</prettyName>
Modified: xwiki/trunk/src/main/xwiki/jcrdb/XWiki/SlideClass
===================================================================
--- xwiki/trunk/src/main/xwiki/jcrdb/XWiki/SlideClass 2006-09-18 08:52:27 UTC (rev 1326)
+++ xwiki/trunk/src/main/xwiki/jcrdb/XWiki/SlideClass 2006-09-18 22:38:38 UTC (rev 1327)
@@ -50,15 +50,15 @@
<number>4</number>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</comment>
-<snumber>
+<number>
<numberType>integer</numberType>
<prettyName>number</prettyName>
<unmodifiable>0</unmodifiable>
<size>30</size>
-<name>snumber</name>
+<name>number</name>
<number>2</number>
<classType>com.xpn.xwiki.objects.classes.NumberClass</classType>
-</snumber>
+</number>
</class>
<content>#set($defaultparent = "XWiki.SlideClass")
#set($defaultweb = "Main")
More information about the Xwiki-notifications
mailing list