[Yanel-commits] rev 38164 - public/yanel/trunk/src/realms/yanel-website/content

simon at wyona.com simon at wyona.com
Wed Aug 20 23:14:28 CEST 2008


Author: simon
Date: 2008-08-20 23:14:27 +0200 (Wed, 20 Aug 2008)
New Revision: 38164

Added:
   public/yanel/trunk/src/realms/yanel-website/content/0e34d59c-57d7-438f-ba41-7a9166627343
Log:
tutorial content added

Added: public/yanel/trunk/src/realms/yanel-website/content/0e34d59c-57d7-438f-ba41-7a9166627343
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/content/0e34d59c-57d7-438f-ba41-7a9166627343	                        (rev 0)
+++ public/yanel/trunk/src/realms/yanel-website/content/0e34d59c-57d7-438f-ba41-7a9166627343	2008-08-20 21:14:27 UTC (rev 38164)
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title>Documentation</title>
+  </head>
+  <body>
+<h3 id="section-Create+simple+hello-world+resource-type+BasicXMLResource-ThisIsAnExampleImplentationOfAResourceTypeBasedOnTheBasicXMLResource">this is an example implentation of a resource-type based on the BasicXMLResource</h3>
+<ul><li>we just change the HelloWorldResource example we created in the tutorial <a href="create_a_simple_hello-world_resource-type.html">Create a simple hello-world resource-type</a>
+</li><li>we will need less code and will get more functionality (e.g. xslt-transformation, I18n-transformation)
+</li><li>open hello-world/src/build/dependencies.xml and search for following line:
+</li></ul><div class="prettify">
+<pre class="prettyprint"><span class="tag">&lt;dependency </span><span class="atn">groupId</span><span class="tag">=</span><span class="atv">"wyona-org-yanel"</span><span class="tag"> </span><span class="atn">artifactId</span><span class="tag">=</span><span class="atv">"yanel-core"</span><span class="tag"> </span><span class="atn">version</span><span class="tag">=</span><span class="atv">"${yanel.source.version}"</span><span class="atn">/</span><span class="tag">&gt;</span></pre>
+
+</div>
+<ul><li>below  add following line:
+</li></ul><div class="prettify">
+<pre class="prettyprint"><span class="tag">&lt;dependency </span><span class="atn">groupId</span><span class="tag">=</span><span class="atv">"wyona-org-yanel"</span><span class="tag"> </span><span class="atn">artifactId</span><span class="tag">=</span><span class="atv">"yanel-impl"</span><span class="tag"> </span><span class="atn">version</span><span class="tag">=</span><span class="atv">"${yanel.source.version}"</span><span class="atn">/</span><span class="tag">&gt;</span></pre>
+
+</div>
+<ul><li>now we just added the necessary lib to our resource. BTW. you can add any lib by providing a maven artifact. 
+</li><li>let's use the lib! it contains the class BasicXMLResource which provides us with all we need to easily create a XML based Resource Type.
+</li></ul><div class="prettify">
+<pre class="prettyprint"><span class="com">/*<br/>&#160;* Copyright 2007 Wyona<br/>&#160;*/</span><span class="pln"><br/><br/></span><span class="kwd">package</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">yourname</span><span class="pun">.</span><span class="pln">yanel</span><span class="pun">.</span><span class="pln">impl</span><span class="pun">.</span><span class="pln">resources</span><span class="pun">;</span><span class="pln"><br/><br/></span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">wyona</span><span class="pun">.</span><span class="pln">yanel</span><span class="pun">.</span><span class="pln">impl</span><span class="pun">.</span><span class="pln">resources</span><span class="pun">.</span><span class="typ">BasicXMLResource</span><span class="pun">;</span><span class="pln"><br/><br/></span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><!
 span class="pln">io</span><span class="pun">.</span><span class="typ">ByteArrayInputStream</span><span class="pun">;</span><span class="pln"><br/></span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">io</span><span class="pun">.</span><span class="typ">InputStream</span><span class="pun">;</span><span class="pln"><br/><br/></span><span class="kwd">import</span><span class="pln"> org</span><span class="pun">.</span><span class="pln">apache</span><span class="pun">.</span><span class="pln">log4j</span><span class="pun">.</span><span class="typ">Logger</span><span class="pun">;</span><span class="pln"><br/><br/><br/></span><span class="com">/**<br/>&#160;* A simple HelloWorldResource which extends BasicXMLResource to output "Hello World!" in XML<br/>&#160;*/</span><span class="pln"><br/></span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="ty!
 p">HelloWorldResource</span><span class="pln"> </span><span cl!
 ass="kwd
">extends</span><span class="pln"> </span><span class="typ">BasicXMLResource</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br/>&#160; &#160; <br/>&#160; &#160; </span><span class="kwd">private</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="typ">Logger</span><span class="pln"> log </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Logger</span><span class="pun">.</span><span class="pln">getLogger</span><span class="pun">(</span><span class="typ">HelloWorldResource</span><span class="pun">.</span><span class="kwd">class</span><span class="pun">);</span><span class="pln"><br/>&#160; &#160; <br/>&#160; &#160; </span><span class="com">/*<br/>&#160; &#160; &#160;* This method overrides the method to create the InputStream called by BasicXMLResource<br/>&#160; &#160; &#160;* Since you extend the BasicXMLResource this has to contain well-formed xml.<br/>&#160; &#160; &#160!
 ;* Beside the simple StringBuffer there are several other ways how to construct the xml. see dom, jdom, org.apache.commons.io.IOUtils and so on<br/>&#160; &#160; &#160;*/</span><span class="pln"><br/>&#160; &#160; </span><span class="kwd">protected</span><span class="pln"> </span><span class="typ">InputStream</span><span class="pln"> getContentXML</span><span class="pun">(</span><span class="typ">String</span><span class="pln"> viewId</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br/>&#160; &#160; &#160; &#160; </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">log</span><span class="pun">.</span><span class="pln">isDebugEnabled</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span><span class="pln"><br/>&#160; &#160; &#160; &#160; &#160; &#160; log</span><span class="pun">.</span><span class="pln">debug</span><span class="pun">(</spa!
 n><span class="str">"requested viewId: "</span><span class="pl!
 n"> </sp
an><span class="pun">+</span><span class="pln"> viewId</span><span class="pun">);</span><span class="pln"><br/>&#160; &#160; &#160; &#160; </span><span class="pun">}</span><span class="pln"><br/>&#160; &#160; &#160; &#160; </span><span class="typ">StringBuffer</span><span class="pln"> sb </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">StringBuffer</span><span class="pun">(</span><span class="str">"&lt;?xml version=\"1.0\"?&gt;"</span><span class="pun">);</span><span class="pln"><br/>&#160; &#160; &#160; &#160; sb</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="str">"&lt;root&gt;"</span><span class="pun">);</span><span class="pln"><br/>&#160; &#160; &#160; &#160; sb</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="str">"&lt;child&gt;"</span><span class="pun">);</span><span class="pln"><br/!
 >&#160; &#160; &#160; &#160; sb</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="str">"Hello World!"</span><span class="pun">);</span><span class="pln"><br/>&#160; &#160; &#160; &#160; sb</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="str">"&lt;/child&gt;"</span><span class="pun">);</span><span class="pln"><br/>&#160; &#160; &#160; &#160; sb</span><span class="pun">.</span><span class="pln">append</span><span class="pun">(</span><span class="str">"&lt;/root&gt;"</span><span class="pun">);</span><span class="pln"><br/>&#160; &#160; &#160; &#160; </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ByteArrayInputStream</span><span class="pun">(</span><span class="pln">sb</span><span class="pun">.</span><span class="kwd">toString</span><span class="pun">().</span><span class="pln">getBytes!
 </span><span class="pun">(</span><span class="str">"utf-8"</sp!
 an><span
 class="pun">));</span><span class="pln"><br/>&#160; &#160; </span><span class="pun">}</span><span class="pln"><br/></span><span class="pun">}</span><span class="pln"><br/></span></pre>
+
+</div>
+<ul><li>to the <a class="wikipage" href="/Wiki.jsp?page=Resource%20Type%20Configuration">Resource Type Configuration</a> (e.g $YANELHOME/src/realms/use-cases/yanel/rti/helloworld.txt.yanel-rc) we now can add some additional properties (e.g. xsl):
+</li></ul>TODO: describe all supported properties
+<div class="prettify">
+<pre class="prettyprint"><span class="tag">&lt;?</span><span class="embsrc"><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span></span><span class="tag">?&gt;</span><span class="pln"><br/></span><span class="tag">&lt;yanel:resource-config </span><span class="atn">xmlns:yanel</span><span class="tag">=</span><span class="atv">"http://www.wyona.org/yanel/rti/1.0"</span><span class="tag">&gt;</span><span class="pln"><br/>&#160; </span><span class="tag">&lt;yanel:rti </span><span class="atn">name</span><span class="tag">=</span><span class="atv">"hello-world"</span><span class="tag"> </span><span class="atn">namespace</span><span class="tag">=</span><span class="atv">"http://yourname.org/yanel/resource/1.0"</span><span class="atn">/</span><span class="tag">&gt;</span><span class="pln"><br/>&#160; </span><span class="tag">&lt;yanel:property </span><span class="atn">name</span><span class="tag">=</span><span class="atv">"xslt"</span><span cl!
 ass="tag"> </span><span class="atn">value</span><span class="tag">=</span><span class="atv">"/path/to/yourXSL.xsl"</span><span class="atn">/</span><span class="tag">&gt;</span><span class="pln"><br/>&#160; </span><span class="tag">&lt;yanel:property </span><span class="atn">name</span><span class="tag">=</span><span class="atv">"xslt"</span><span class="tag"> </span><span class="atn">value</span><span class="tag">=</span><span class="atv">"/path/to/anotherXSL.xsl"</span><span class="atn">/</span><span class="tag">&gt;</span><span class="pln"><br/></span><span class="tag">&lt;/yanel:resource-config&gt;</span></pre>
+
+</div>
+<a href="create_a_simple_usecase_based_on_the_executableusecaseresource.html">In the next tutorial we will have a look at a simple usecase based on the ExecutableUsecaseResource</a>
+  </body>
+</html>



More information about the Yanel-commits mailing list