Author: michiel
Date: 2009-05-13 18:42:33 +0200 (Wed, 13 May 2009)
New Revision: 35143
Modified:
speeltuin/mihxil/presentations/2009-05-14/1.xhtml
speeltuin/mihxil/presentations/2009-05-14/2.xhtml
Log:
more...
Modified: speeltuin/mihxil/presentations/2009-05-14/1.xhtml
===================================================================
--- speeltuin/mihxil/presentations/2009-05-14/1.xhtml 2009-05-13 15:10:02 UTC
(rev 35142)
+++ speeltuin/mihxil/presentations/2009-05-14/1.xhtml 2009-05-13 16:42:33 UTC
(rev 35143)
@@ -29,26 +29,28 @@
<div id="dove">
<h2><a href="#dove">DOVE</a></h2>
<div>
- <ol>
+ <ul>
<li>Used by Editwizards</li>
<li>A way to edit MMBase object via Servlet</li>
<li>Does Dove have a future?</li>
- </ol>
+ </ul>
</div>
</div>
<div id="soap">
<h2><a href="#soap">SOAP</a></h2>
<div>
- <ol>
+ <ul>
<li>Also a remote method invocation protocol</li>
<li>So like RMMCI, but using an XML</li>
- </ol>
+ </ul>
</div>
</div>
<div id="wsdl">
<h2><a href="#wsdl">Web Services Description Language</a></h2>
<div>
- <ol>
+ <ul>
+ <li><a href="http://cxf.apache.org">CXF</a></li>
+ <li>JAX-WS</li>
<li>SOAP</li>
<li>WSDL XML Specification
<pre><![CDATA[
@@ -76,14 +78,14 @@
</pre>
</li>
<li>It would be nice to provide MMBase bridge in the same way</li>
- </ol>
+ </ul>
</div>
</div>
<div id="not">
<h2><a href="#not">But why?</a></h2>
<div>
<p>MMBase is actually pretty complete</p>
- <ol>
+ <ul>
<li>Persistency</li>
<li>Free object model</li>
<li>Template langauges</li>
@@ -95,8 +97,8 @@
<li>DataTypes and Functions to 'inject' functionality</li>
<li>Components: crontab, lucene, etc.</li>
- </ol>
- <p>, though not all these things perhaps are not yet pretty completely
implemented and ready. See also <a href="2.xhtml">MMBase 2</a> </p>
+ </ul>
+ <p>, though not all these things perhaps are not yet pretty completely
implemented and ready. See also <a href="2.xhtml#intro">MMBase 2</a> </p>
</div>
</div>
Modified: speeltuin/mihxil/presentations/2009-05-14/2.xhtml
===================================================================
--- speeltuin/mihxil/presentations/2009-05-14/2.xhtml 2009-05-13 15:10:02 UTC
(rev 35142)
+++ speeltuin/mihxil/presentations/2009-05-14/2.xhtml 2009-05-13 16:42:33 UTC
(rev 35143)
@@ -13,69 +13,181 @@
<h2><a href="#intro">Introduction</a></h2>
<div>
- <ol>
+ <ul>
<li>1.8, 1.9, 1.10?</li>
- </ol>
+ </ul>
</div>
</div>
<div id="services">
- <h2><a href="#services">MMBase as Service</a></h2>
+ <h2><a href="#services">MMBase as Service and/or part of something
bigger</a></h2>
<div>
- <p>Since it is desired, we could add more functionality to make MMBase
better useable 'as a service'</p>
+ <ul>
+ <li>Portlets. CMSContainer</li>
+ <li>WSDL?</li>
+ <li>Object mapping generation and type safety. Annotations, proxies,
what not. </li>
+ </ul>
</div>
</div>
<div id="transactions">
<h2><a href="#transactions">Transactions</a></h2>
<div>
- <ol>
+ <ul>
<li>Simpler, more object oriented reimplementation. The current
implementation is not bad, but it is just a bit hard to understand. Moving code
around and encapsulating it in a simple interface would do a lot of good.</li>
<li>Database transactions. </li>
<li>Optimistic vs perssimistic locking</li>
<li>Editwizard transactions</li>
- </ol>
+ <li>Bridge vs Core transactions</li>
+ </ul>
</div>
</div>
<div id="dbsq">
<h2><a href="#dbsq">Search Query improvements</a></h2>
<div>
- <ol>
- <li>Bulk delete.</li>
- <li>Bulk update</li>
- <li>Outer joins</li>
+ <ul>
+ <li>
+ Bulk delete.
+ <pre><![CDATA[
+<mm:listnodescontainer type="news">
+ <mm:constraint ... />
+ <mm:bulkdelete />
+</mm:listnodescontainer>]]></pre>
+ <pre><![CDATA[
+NodeQuery q = nodeManager.createQuery();
+...
+nodeManager.delete(q);
+ ]]>
+ </pre>
+ </li>
+ <li>Bulk update
+ <pre><![CDATA[
+<mm:listnodescontainer type="news">
+ <mm:constraint ... />
+ <mm:bulkupdate>
+ <mm:setfield name="title">...</mm:setfield>
+ </mm:bulkupdate>
+</mm:listnodescontainer>]]></pre>
+ <pre><![CDATA[
+NodeQuery q = nodeManager.createQuery();
+...
+
+Node node = new VirtualNode(nodeManager);
+node.setStringValue("title", "...");
+
+nodeManager.update(q, node);
+ ]]></pre>
+ </li>
+ <li>
+ Outer joins
+ <pre><![CDATA[<mm:listnodescontainer
paths="news,author?">...]]></pre>
+ </li>
<li>More complex function constraints</li>
<li>Better support for aggregated queries</li>
- </ol>
+ </ul>
</div>
</div>
<div id="framework">
<h2><a href="#framework">Framework</a></h2>
<div>
- <ol>
+ <ul>
<li>Actual use</li>
<li>More Web 2.0</li>
<li>Portlet Specification (JSR 286) (web 2.0, inter portlet
communication)</li>
<li>Framework / Portlet Implementation. Shipping
portlet-api.jar?</li>
- </ol>
+ </ul>
</div>
</div>
<div id="datatypes">
<h2><a href="#datatypes">Datatypes</a></h2>
<div>
- <ol>
- <li>DataType <em>Handlers</em> (1.9.1)</li>
- <li>Javascript Validation (1.8.7)</li>
- <li>mm:input, mm:errors, mm:useinput (vs mm:fieldinfo)</li>
- </ol>
+ <ul>
+ <li>DataType <em>Handlers</em> (1.9.1)
+ <pre><![CDATA[
+ <datatype id="string">
+ <name xml:lang="en">Text</name>
+ <name xml:lang="nl">Tekst</name>
+ <description xml:lang="en">
+ String fields contain text.
+ </description>
+ <class name="org.mmbase.datatypes.StringDataType" />
+ <handler mimetype="text/html,application/xml+xhtml"
name="org.mmbase.datatypes.handlers.html.StringHandler" />
+ ]]>
+ </pre>
+ <pre><![CDATA[
+public interface Handler<C> extends java.io.Serializable {
+
+
+ /**
+ * Produces an form input field for the given Node, and Field.
+ * @param search if true, then a search field is produced.
+ */
+ C input(Request request, Node node, Field field, boolean search);
+
+ /**
+ * Checks the user input, and invalidates the request, if this user input
was invalid.
+ * @param errors If <code>true</code> then report the errors, otherwise
the return value can
+ * remain empty.
+ */
+ C check(Request request, Node node, Field field, boolean errors);
+
+ /**
+ * Sets the user's input into the field of the node
+ */
+ boolean set(Request request, Node node, Field field);
+
+ /**
+ * Uses the user's input to create a constraint for the given query
+ */
+ Constraint search(Request request, Field field, Query query);
+
+}
+ ]]>
+ </pre>
+ <p>Availabe in taglib as 'typehandler' for a long time. But the
generalization, directly linked with the datatype is new!</p>
+ </li>
+ <li>
+ Javascript Validation (1.8.7). Using the datatype's meta data to
set up AJAX-based content validation. Works pretty well, but can be improved
on. E.g. does not work so well yet in combination with
+ the <![CDATA[<mm:datatype />]]> tag.
+ </li>
+ <li>mm:input, mm:errors, mm:useinput (vs mm:fieldinfo).
Form-generations now happens with the classic 'mm:fieldinfo' tag. But this does
not look very intuitively clear.
+ <pre><![CDATA[
+<mm:form>
+ <mm:node>
+ <mm:fieldlist type="edit">
+ <mm:fieldinfo type="input" />
+ <mm:fieldinfo type="errors" />
+ </mm:fieldlist>
+ </mm:node>
+ <mm:valid>
+ <mm:commit />
+ </mm:valid>
+</mm:form>]]>
+ </pre>
+ <p>Perhaps can be improved on. Something like</p>
+ <pre><![CDATA[
+<mm:form>
+ <mm:node>
+ <mm:fieldlist type="edit">
+ <mm:input />
+ <mm:errors />
+ </mm:fieldlist>
+ </mm:node>
+ <mm:valid>
+ <mm:commit />
+ </mm:valid>
+</mm:form>]]>
+ </pre>
+ </li>
+ </ul>
</div>
</div>
<div id="virtualbuilders">
<h2><a href="#virtualbuilders">Virtual Builders</a></h2>
<div>
- <ol>
+ <ul>
<li>Using virtual fields and DataType.Handlers it is possible to
display things in generic editors which were normally handled by e.g.
Editwizards</li>
<li>An edit task can be described as a list of (virtual fields +
datatypes)</li>
<li>A Builder is a list of fields too. Hence 'virtual builder'</li>
- </ol>
+ </ul>
</div>
</div>
<!--
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs