cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From reinh...@apache.org
Subject svn commit: r746777 - in /cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas: ./ cocoon3-monitoring.apt cocoon3-profiling-ui.apt cocoon3-profiling.apt
Date Sun, 22 Feb 2009 17:20:46 GMT
Author: reinhard
Date: Sun Feb 22 17:20:46 2009
New Revision: 746777

URL: http://svn.apache.org/viewvc?rev=746777&view=rev
Log:
project ideas for students

Added:
    cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/
    cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-monitoring.apt
    cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling-ui.apt
    cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling.apt

Added: cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-monitoring.apt
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-monitoring.apt?rev=746777&view=auto
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-monitoring.apt
(added)
+++ cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-monitoring.apt
Sun Feb 22 17:20:46 2009
@@ -0,0 +1,41 @@
+ -----
+  Student project idea: Cocoon 3 monitoring
+ -----
+ -----
+ 2009
+ -----
+
+Student project idea: Cocoon 3 monitoring
+
+* Goal
+
+  Enable JMX monitoring for Cocoon 3 web applications
+
+* Description
+
+  Apart from the basic pipeline implementations Cocoon 3 also provides a framework for RESTful
web applications based on XML sitemaps. 
+When monitoring a Cocoon application it would be very useful to 
+
+  * inspect the content of the used pipeline caches (cache keys, content)
+  
+  * be able remove cache entries or clear the whole cache (there might be more than one cache
configured!)
+  
+  * get an overview of all available Servlet-Services (Spring beans), their connections and
their mount-points
+  
+  * get an overview of all other Spring beans
+  
+  * inspect all settings
+  
+  * inspect and reconfigure the logging settings (log4j)
+
+* Deliverables
+  
+  * A separate module that exposes the described functionality via MBeans and works with
JConsole.
+  
+  * It might be necessary to refactor the pipeline caching infrastructure in order to expose
the required data and to be able to delete cache entries
+  
+  * It might be necessary to enhance the Cocoon Spring Configurator in order to support a
reconfiguration of the logging framework.
+
+* Technologies
+
+  Cocoon 3, Cocoon Spring-Configurator, JMX, Spring 2.5, Log4j, Java  
\ No newline at end of file

Added: cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling-ui.apt
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling-ui.apt?rev=746777&view=auto
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling-ui.apt
(added)
+++ cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling-ui.apt
Sun Feb 22 17:20:46 2009
@@ -0,0 +1,34 @@
+ -----
+  Student project idea: Cocoon Profiling UI (Firebug plugin)
+ -----
+ -----
+ 2009
+ -----
+
+Student project idea: Cocoon Profiling UI (Firebug plugin)
+
+  Provide a Firebug plugin that shows request profiling information.
+
+* Description
+
+  The goal of this project is the development of a {{{http://getfirebug.com/} Firebug}} plugin
that
+shows the information provided by the {{{cocoon3-profiling.html} Cocoon 3 Profiling}} module
next to the
+request and response tabs.
+
+* Deliverables
+
+  * Firebug plugin
+  
+  * Provide an installable release artifact of the plugin created as part of the Cocoon 3
build process.
+
+* Technologies
+
+  Firefox plugins, Firebug plugin, Javascript, XML, RESTful webservices  
+
+* Related ideas
+
+  This UI relies on web services provided by the <<<cocoon-profiling>>>
module. In the case that the UI is
+being developed before the module is available, a set of example XML files representing the
output of the
+webservices will be provided. See the {{{cocoon3-profiling.html} Cocoon 3 Profiling}} proposal
in order to
+get an idea of the contract.
+  
\ No newline at end of file

Added: cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling.apt
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling.apt?rev=746777&view=auto
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling.apt
(added)
+++ cocoon/cocoon3/trunk/cocoon-docs/src/site/apt/student-project-ideas/cocoon3-profiling.apt
Sun Feb 22 17:20:46 2009
@@ -0,0 +1,126 @@
+ -----
+  Student project idea: Cocoon Profiling
+ -----
+ -----
+ 2009
+ -----
+
+Student project idea: Cocoon Profiling
+
+  Collect profiling data on a per-request basis and expose it via a RESTful web service
+  
+* Description
+
+  A Cocoon request goes through many components
+
+  While performing a Cocoon request, servlets, sitemaps and pipeline components are being
executed. It is also quite common that
+Cocoon requests are cascaded which makes it sometimes difficult to understand what exactly
was happening.
+
+  The goal of this project is to collect data on a per-request basis about the involved
+  
+  * servlets
+  
+  * sitemaps and their nodes
+  
+  * pipeline components (input parameters, configuration, the content before and after their
invocation, execution times)
+  
+  []
+  
+  and expose this data via RESTful web services:
+  
+----
+  GET /cocoon-profiling/request/1
+  ........................................................
+  <request uri="app/videos/comedy/1" type="external">
+    <servlet class="org.apache.cocoon.servlet.XMLSitemapServlet" bean-name="org.mycompany.rest.servlet">
+      <sitemap>
+        <node type="map:match" pattern="videos/**">
+          <node type="map:match" pattern="comedy/{id}">
+            <node type="controller:call" controller="rest-controller" select="org.apache.cocoon.sample.controller.DemoRESTController">
+              <request type="servlet-service">
+                <servlet class="org.apache.cocoon.servlet.XMLSitemapServlet" bean-name="org.mycompany.view.servlet">
+                  <sitemap>
+                    <node type="map:match" pattern="screen/video/{id}.html">
+                       <pipeline>
+                         <generate type="generator:file" content="./data/1" duration="5ms">
+                           <parameter name="id" value="1"/>
+                         </generate>
+                         <transform type="transformer:cleaning"  content="./data/2" duration="1ms"/>
+                         <map:serialize type="serializer:xhtml"  content="./data/3" duration="3ms"/>
+                       </pipeline>
+                    </node>
+                  </sitemap>
+                </servlet>
+              </reqest>
+            </node>
+          </node>
+        </node>
+      </sitemap>
+    </servlet>
+  </reqest>
+
+
+  GET /cocoon-profiling/request/1/data/1
+  ........................................................
+  <html>
+    <body>
+      <h1>Video 1<h1>
+    <body>
+  </html>
+----
+
+  Additionally an XHTML representation of the profiling data should be provided so that the
data becomes more readable.
+  
+* Implementation ideas
+
+  It is important that the profiling module doesn't affect any existing code. That can be
achieved by using aspect-oriented programming.
+   
+  Cocoon 3 web applications make use of following modules: 
+  
+  * cocoon-pipeline
+  
+  * cocoon-sitemap
+  
+  * cocoon-servlet
+  
+  * cocoon-controller
+  
+  * cocoon-rest
+  
+  []
+  
+  and builds upon the
+  
+  * cocoon-servlet-service framework
+  
+  []
+  
+  Except the stand-alone cocoon-pipeline module all other modules make use of Spring. Since
Spring comes with great AOP support,
+it's our idea to collect all the necessary information about servlets, invoked sitemaps and
their nodes and pipeline components 
+by using Spring AOP. The collected data can be stored by using ThreadLocals and kept in memory.
+
+  When profiling is turned on, the header parameter <<<X-Cocoon-Profiling-URL>>>
is added to the response header and contains the <relative> link
+to the profiling data webservice, e.g. <<<../../cocoon-profiling/request/1>>>.
Again, this can be achieved by AOP interception mechanisms 
+applied on servlets.
+
+  The RESTful webservices can be implemented by using the cocoon-rest module.
+  
+  Profiling can be turned on and off by using JMX or by configuration parameters.  
+  
+* Deliverables
+
+  * cocoon-profiling module integrated into the Cocoon 3 build process
+  
+  * usage documentation
+  
+  * Javadocs
+
+* Technologies
+
+  Cocoon 3, Spring AOP, Java, RESTful webservices
+  
+* Related ideas
+
+  There is an additional {{{cocoon3-profiling-ui.html} project idea (Cocoon 3 Profiling UI)}}
of creating a Firebug plugin that shows the data of the 
+request in a user-friendly way.
+



Mime
View raw message