Author: buildbot Date: Wed Mar 4 13:22:46 2020 New Revision: 1057375 Log: Staging update by buildbot for felix
Added: websites/staging/felix/trunk/content/documentation/development/site-how-to.html Modified: websites/staging/felix/trunk/content/ (props changed) websites/staging/felix/trunk/content/documentation.html websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations.html Propchange: websites/staging/felix/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Wed Mar 4 13:22:46 2020 @@ -1 +1 @@ -1874782 +1874787 Modified: websites/staging/felix/trunk/content/documentation.html ============================================================================== --- websites/staging/felix/trunk/content/documentation.html (original) +++ websites/staging/felix/trunk/content/documentation.html Wed Mar 4 13:22:46 2020 @@ -101,220 +101,9 @@ h2:hover > .headerlink, h3:hover > .head contents of the site.</p> <p>If you are unable to find the documentation you need, please ask on the <a href="">mailing lists</a>. Also, feedback on improving the documentation and/or organization of this site is welcome.</p> <p><em>The Felix web site and documentation are managed with the <a href="https://www.apache.org/dev/cms.html">Apache CMS</a>. -For Apache Felix specific extensions see the <a href="#site-how-to">Site How-To</a> -section below.</em></p> -<h2 id="books">Books<a class="headerlink" href="#books" title="Permanent link">¶</a></h2> -<p>The most important "books" on OSGi are of course the specifications themselves. They are quite a good read but are also complete and contain stuff, you might be interested -in. So for a starter you might interested to read the following:</p> -<ul> -<li>Core Specification (Layer, Services, LiveCycle part)</li> -<li>Compendium Specification</li> -<li>Enterprise Specification</li> -</ul> -<p>Visit the <a href="http://www.osgi.org/Specifications/HomePage">OSGi Alliance Specifications</a> page to download the specifications for free.</p> -<p>Apart from the specifications a number of books have recently been published. They are listed here in no particular order:</p> -<ul> -<li><a href="http://www.manning.com/hall/">OSGi in Action</a>; Richard Hall, Karl Pauls, Stuart McCulloch, David Savage; Manning Publications, 2011. -Covers most (if not all) of R 4.2 specs and also contains a lot of side information. The authors of this book are committers and/or PMC members of the Apache Felix project.</li> -<li><a href="http://www.amazon.com/OSGi-Equinox-Creating-Modular-Systems/dp/0321585712">OSGi and Equinox: creating highly modular Java systems</a>; Jeff McAffer, Paul VanderLei, Simon Archer; Addison-Wesley, 2010. -Despite its dependency on Equinox it might be helpful, because they use Declarative Services intensely for their sample application throughout the book and we use Declarative Services intensely, too.</li> -<li><a href="http://www.manning.com/alves/">OSGi in Depth</a>; Alexandre de Castro Alves; Manning, 2011. -I cannot say anything on this book except that he seems to have used Apache Felix for the samples....</li> -<li><a href="http://www.manning.com/cummins/">Enterprise OSGi in Action: With examples using Apache Aries</a>; Holly Cummins, Timothy Ward; Manning, 2013 -Covers Enterprise OSGi specifications, which are becoming more and more important.</li> -<li><a href="http://www.amazon.com/Java-Application-Architecture-Modularity-Development/dp/0321247132">Java Application Architecture: Modularity Patterns with Examples Using OSGi (Agile Software Development Series)</a>; Kirk Knoernschild; Prentice Hall, 2012 -Primarily covers Java Application Architecture using OSGi for the framework to implement.</li> -<li><a href="http://njbartlett.name/osgibook.html">OSGi in Practice</a>; Neil Bartlett; Free PDF EBook. -Many OSGi core concepts are greatly explained, and its free;</li> -<li><a href="http://www.packtpub.com/open-services-gateway-initiative-starter/book">Instant OSGi Starter</a>; Jamie Goodyear, Johan Edstrom; Packt, 2013</li> -<li><a href="http://www.packtpub.com/osgi-and-apache-felix-30-beginners-guide/book">OSGi and Apache Felix 3.0 Beginner's Guide</a>; Walid Joseph Gédéon; Packt, 2010</li> -<li><a href="http://www.manning.com/cogoluegnes/">Spring Dynamic Modules in Action</a>; Arnaud Cogoluègnes, Thierry Templier, Andy Piper; Manning, 2010</li> -<li><a href="http://shop.oreilly.com/product/0636920028086.do#">Building Modular Cloud Apps with OSGi</a>; Paul Bakker, Bert Ertman; O'Reilly, 2013. Uses Apache Felix. For experienced Java developers in the enterprise, this practical, hands-on book shows you how to use OSGi to design, develop, and deploy modular cloud applications. </li> -</ul> -<h2 id="site-how-to">Site How-To<a class="headerlink" href="#site-how-to" title="Permanent link">¶</a></h2> -<p>The site is managed with the <a href="https://www.apache.org/dev/cms.html">Apache CMS</a> -where the source is kept in SVN at <a href="https://svn.apache.org/repos/asf/felix/site/trunk/content">https://svn.apache.org/repos/asf/felix/site/trunk/content</a>.</p> -<h3 id="to-update-the-documentation-using-the-cms-system">To update the documentation using the CMS system<a class="headerlink" href="#to-update-the-documentation-using-the-cms-system" title="Permanent link">¶</a></h3> -<ul> -<li>Install the bookmarklet from the <a href="https://cms.apache.org/">cms</a> page. You only have to do this once.</li> -<li>Navigate to the page you wish to edit (on the live site, not in the cms).</li> -<li>Click the bookmarklet. There will be a short pause while the CMS system is initialised for you.</li> -<li>Click on <code>Edit</code> (to skip this step hack the bookmarklet to add an 'action=edit' param to the query string)</li> -<li>The page editor should then be displayed.</li> -<li>Click <code>Submit</code> to save your edit to the workarea</li> -<li>Click <code>Commit</code> to save the updated file to SVN and trigger a staged build. (to skip this step click on the "Quick Commit" checkbox in the <code>Edit</code> form).</li> -<li>The results should appear shortly on the <a href="http://felix.staging.apache.org/content/documentation.html">staging</a> site. (You may have to force the page to refresh in order to see the updated content)</li> -<li>Once you are happy with the updated page, click on <code>Publish Site</code> to deploy.</li> -</ul> -<p>There is also a <a href="https://www.apache.org/dev/cmsref.html">Reference Manual</a> of the Apache CMS as well as a -video tutorial at <a href="http://s.apache.org/cms-tutorial">http://s.apache.org/cms-tutorial</a>.</p> -<h3 id="features-of-the-apache-felix-site">Features of the Apache Felix Site<a class="headerlink" href="#features-of-the-apache-felix-site" title="Permanent link">¶</a></h3> -<p>This section lists some Apache Felix features to help with the maintenance -of the site, such as automatic link generation.</p> -<p>Start the file with a <code>Title:</code> line to define the page title and the first H1 tag:</p> -<div class="codehilite"><pre><span class="n">Title</span><span class="o">:</span> <span class="n">Page</span> <span class="n">Title</span> - -<span class="n">Here</span> <span class="n">comes</span> <span class="n">the</span> <span class="n">content</span> <span class="n">separated</span> <span class="k">with</span> <span class="n">a</span> <span class="n">blank</span> <span class="n">like</span> <span class="n">from</span> <span class="n">the</span> -<span class="n">header</span> <span class="o">...</span> -</pre></div> - - -<p>The last modification information from SVN (revision, committer, and -date/time) is automatically added when the page is rendered</p> -<p>Excerpts can be added to a page using the <code>Excerpt:</code> header:</p> -<div class="codehilite"><pre><span class="n">Title</span><span class="o">:</span> <span class="n">Page</span> <span class="n">Title</span> -<span class="n">Excerpt</span><span class="o">:</span> <span class="n">Summary</span> <span class="n">of</span> <span class="n">the</span> <span class="n">page</span> <span class="k">for</span> <span class="n">inclusion</span> <span class="k">in</span> <span class="n">other</span> <span class="n">pages</span><span class="o">;</span> - <span class="n">continuation</span> <span class="n">of</span> <span class="n">the</span> <span class="n">excerpt</span> <span class="n">must</span> <span class="n">be</span> <span class="n">indented</span> - -<span class="n">Here</span> <span class="n">comes</span> <span class="n">the</span> <span class="n">content</span> <span class="n">separated</span> <span class="k">with</span> <span class="n">a</span> <span class="n">blank</span> <span class="n">like</span> <span class="n">from</span> <span class="n">the</span> -<span class="n">header</span> <span class="o">...</span> -</pre></div> - - -<p>Metadata from child pages can be referred to in the content with the -Django variable reference notation using the child page name (without -extension) as its container; e.g. for the child page named <code>childpage</code>:</p> -<div class="codehilite"><pre><span class="cp">{{</span> <span class="nv">children.childpage.headers.excerpt</span> <span class="cp">}}</span><span class="x"></span> -<span class="cp">{{</span> <span class="nv">children.childpage.headers.title</span> <span class="cp">}}</span><span class="x"></span> -</pre></div> - - -<p>Content Pages can contain Django templates of the form <code>{{...}}</code> and <code>{%...%}</code>. -If so, the page content is evaluated as a Django template before running -it through the page template.</p> -<p>Any page in the site can be referenced with refs.pagename returning properties:</p> -<dl> -<dt><code>.path</code></dt> -<dd>the absolute path of the page on the site</dd> -<dt><code>.headers</code></dt> -<dd>page headers (e.g. <code>.title</code>, <code>.excerpt</code>)</dd> -<dt><code>.content</code></dt> -<dd>the raw page content</dd> -</dl> -<p>All pages in the children namespace are also available in the refs namespace</p> -<p>Some usefull hints:</p> -<p>Printing title of another page "handler":</p> -<div class="codehilite"><pre><span class="x"> :::django</span> -<span class="x"> </span><span class="cp">{{</span> <span class="nv">refs.handler.headers.title</span> <span class="cp">}}</span><span class="x"></span> -</pre></div> - - -<p>Printing excerpt of another page "handler":</p> -<div class="codehilite"><pre><span class="x"> :::django</span> -<span class="x"> </span><span class="cp">{{</span> <span class="nv">refs.handler.headers.excerpt</span> <span class="cp">}}</span><span class="x"></span> -</pre></div> - - -<p>Linking to another page "handler":</p> -<div class="codehilite"><pre><span class="x"> :::django</span> -<span class="x"> (</span><span class="cp">{{</span> <span class="nv">refs.handler.path</span> <span class="cp">}}</span><span class="x">)</span> -</pre></div> - - -<p>Printing title as a link to another page "handler":</p> -<div class="codehilite"><pre><span class="x"> :::django</span> -<span class="x"> [</span><span class="cp">{{</span> <span class="nv">refs.handler.headers.title</span> <span class="cp">}}</span><span class="x">](</span><span class="cp">{{</span> <span class="nv">refs.handler.path</span> <span class="cp">}}</span><span class="x">)</span> -</pre></div> - - -<p>Printing excerpt as a link to another page "handler":</p> -<div class="codehilite"><pre><span class="x"> :::django</span> -<span class="x"> [</span><span class="cp">{{</span> <span class="nv">refs.handler.headers.excerpt</span> <span class="cp">}}</span><span class="x">](</span><span class="cp">{{</span> <span class="nv">refs.handler.path</span> <span class="cp">}}</span><span class="x">)</span> -</pre></div> - - -<p>Print a bullet pointed child page list:</p> -<div class="codehilite"><pre><span class="x"> :::django</span> -<span class="x"> </span><span class="cp">{%</span> <span class="k">for</span> <span class="nv">label</span><span class="o">,</span> <span class="nv">page</span> <span class="k">in</span> <span class="nv">children</span> <span class="cp">%}</span><span class="x">* [</span><span class="cp">{{</span> <span class="nv">page.headers.title</span> <span class="cp">}}</span><span class="x">](</span><span class="cp">{{</span> <span class="nv">page.path</span> <span class="cp">}}</span><span class="x">)</span> -<span class="x"> </span><span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span><span class="x"></span> -</pre></div> - - -<div class="note"> -It is important to have the first part as a single line, otherwise -the Django/Markdown combo will create a list for each entry. -</div> - -<h3 id="code-highlighting">Code Highlighting<a class="headerlink" href="#code-highlighting" title="Permanent link">¶</a></h3> -<p>Code Highlighting works by indenting code by four blanks. To indicate the -type of highlighting preced the code style text with either <code>:::<lexer></code> to -get high lighted code using the given <code><lexer></code> or <code>#!<lexer></code> to get high -lighted code with line numbers using the given <code><lexer></code>. See -<a href="http://www.apache.org/dev/cmsref.html#code-hilighter">http://www.apache.org/dev/cmsref.html#code-hilighter</a> for main info and -<a href="http://pygments.org/docs/lexers/">http://pygments.org/docs/lexers/</a> for supported lexers</p> -<h3 id="html-and-markdown">HTML and Markdown<a class="headerlink" href="#html-and-markdown" title="Permanent link">¶</a></h3> -<p>Markdown supports embedding HTML. But be aware that contents of HTML elements -are not further handled by the Markdown converter. Thus it is not possible -to embed Markdown syntax inside of HTML elements to have them converted.</p> -<h3 id="manual-generation">Manual Generation<a class="headerlink" href="#manual-generation" title="Permanent link">¶</a></h3> -<p>When commiting changes to pages into SVN the pages are automatically -generated in <a href="http://felix.staging.apache.org">the staging site</a>.</p> -<div class="info"> -<p>To generate the site locally, you must have checked out the complete SVN to access the tools:</p> - -<div class="codehilite"><pre><span class="nv">$ </span>svn <span class="s2">https://svn.apache.org/repos/asf/felix/site/ felix-site</span> -</pre></div> -</div> - -<p>To manually generate the site or single pages the <a href="http://svn.apache.org/repos/asf/felix/site">site</a> -can be checked out from SVN. In addition Perl and Python must be installed -for the build tools to work.</p> -<p>To prepare for site build, the Markdown daemon has to be started:</p> -<div class="codehilite"><pre><span class="nv">$ </span><span class="nb">export </span><span class="nv">MARKDOWN_SOCKET</span><span class="o">=</span><span class="s2">"$PWD/tools/build/../markdown.socket"</span> -<span class="nv">$ </span><span class="nb">export </span><span class="nv">PYTHONPATH</span><span class="o">=</span><span class="s2">"$PWD/tools/build"</span> -<span class="nv">$ </span>python <span class="s2">"$PWD/tools/build/markdownd.py"</span> -</pre></div> - - -<p>The <code>MARKDOWN_SOCKET</code> environment variables is also required by the <code>build_site.pl</code> -and <code>build_file.pl</code> scripts to connect to the Markdown daemon.</p> -<p>To build the complete site use the <code>build_site.pl</code> script:</p> -<div class="codehilite"><pre><span class="nv">$ </span>tools/build/build_site.pl --source-base <span class="nv">$PWD</span>/trunk <span class="se">\</span> - --target-base <span class="nv">$PWD</span>/trunk/target -</pre></div> - - -<p>To build a single page use the <code>build_file.pl</code> script:</p> -<div class="codehilite"><pre><span class="nv">$ </span>tools/build/build_site.pl --source-base <span class="nv">$PWD</span>/trunk <span class="se">\</span> - --target-base <span class="nv">$PWD</span>/trunk/target <span class="se">\</span> - --source content/documentation.mdtext -</pre></div> - - -<p>The argument to the <code>--source</code> parameter is relative to the <code>--source-base</code> folder.</p> -<h3 id="configuring-site-generation-on-mac">Configuring site generation on Mac<a class="headerlink" href="#configuring-site-generation-on-mac" title="Permanent link">¶</a></h3> -<div class="info"> -Those instructions were computed on Mountain Lion. -</div> - -<p>A couple of Python and Perl libraries are required and need to be installed</p> -<div class="codehilite"><pre><span class="nv">$ </span>sudo easy_install Pygments -<span class="nv">$ </span>sudo easy_install Markdown -</pre></div> - - -<p>And for the Perl modules:</p> -<div class="codehilite"><pre><span class="nv">$ </span>sudo cpan install XML::Atom::Feed -<span class="nv">$ </span>sudo cpan install XML::RSS::Parser -<span class="nv">$ </span>sudo cpan install XML::Parser::Lite -<span class="nv">$ </span>sudo cpan install XML::RSS::Parser::Lite -<span class="nv">$ </span>sudo cpan install Net::Twitter -<span class="nv">$ </span>sudo cpan install SVN::Client -</pre></div> - - -<p>Be careful that some of those commands require time... Once done, launch the mardown daemon with the following command from the SVN root:</p> -<div class="codehilite"><pre><span class="nv">$ </span><span class="nb">export </span><span class="nv">MARKDOWN_SOCKET</span><span class="o">=</span><span class="s2">"$PWD/tools/build/../markdown.socket"</span> -<span class="nv">$ </span><span class="nb">export </span><span class="nv">PYTHONPATH</span><span class="o">=</span><span class="s2">"$PWD/tools/build"</span> -<span class="nv">$ </span>python <span class="s2">"$PWD/tools/build/markdownd.py"</span> -</pre></div> - - -<p>And finally, generate the web site from the svn root with:</p> -<div class="codehilite"><pre>tools/build/build_site.pl --source-base <span class="nv">$PWD</span>/trunk --target-base <span class="nv">$PWD</span>/trunk/target -</pre></div> +For Apache Felix specific extensions see the <a href="/documentation/development/site-how-to.html">Site How-To</a>.</em></p> <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;"> - Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000 + Rev. 1874787 by pauls on Wed, 4 Mar 2020 13:22:01 +0000 </div> <div class="trademarkFooter"> Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project Added: websites/staging/felix/trunk/content/documentation/development/site-how-to.html ============================================================================== --- websites/staging/felix/trunk/content/documentation/development/site-how-to.html (added) +++ websites/staging/felix/trunk/content/documentation/development/site-how-to.html Wed Mar 4 13:22:46 2020 @@ -0,0 +1,283 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + <head> + <title>Apache Felix - Site How-To</title> + <link rel="icon" href="/res/favicon.ico"> + <link rel="stylesheet" href="/res/site.css" type="text/css" media="all"> + <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all"> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> + </head> + <body> + <div class="title"> + <div class="logo"> + <a href="https://felix.apache.org/"> + <img border="0" alt="Apache Felix" src="/res/logo.png"> + </a> + </div> + <div class="header"> + <a href="https://www.apache.org/"> + <img border="0" alt="Apache" src="/res/apache.png"> + </a> + </div> + </div> + + <div class="menu"> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<p><a href="/news.html">News</a> <br /> +<a href="/license.html">License</a> <br /> +<a href="/downloads.cgi">Downloads</a> <br /> +<a href="/documentation.html">Documentation</a> <br /> +<a href="/documentation/community/project-info.html">Project Info</a> <br /> +<a href="/documentation/community/contributing.html">Contributing</a> <br /> +<a href="/sitemap.html">Site Map</a> <br /> +<a href="https://www.apache.org/">ASF</a> <br /> +<a href="https://www.apache.org/security/">Security</a> <br /> +<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a> <br /> +<a href="https://www.apache.org/foundation/thanks.html">Sponsors</a> </p> +<iframe + src="https://www.apache.org/ads/button.html" + style="border-width:0; float: left" + frameborder="0" + scrolling="no" + width="135" + height="135"> +</iframe> + </div> + + <div class="main"> + <div class="breadcrump" style="font-size: 80%;"> + <a href="/">Home</a> » <a href="/documentation.html">Documentation</a> » <a href="/documentation/development.html">Development</a> + </div> + + <h1>Site How-To</h1> + <style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h1 id="site-how-to">Site How-To<a class="headerlink" href="#site-how-to" title="Permanent link">¶</a></h1> +<p>The site is managed with the <a href="https://www.apache.org/dev/cms.html">Apache CMS</a> +where the source is kept in SVN at <a href="https://svn.apache.org/repos/asf/felix/site/trunk/content">https://svn.apache.org/repos/asf/felix/site/trunk/content</a>.</p> +<h2 id="to-update-the-documentation-using-the-cms-system">To update the documentation using the CMS system<a class="headerlink" href="#to-update-the-documentation-using-the-cms-system" title="Permanent link">¶</a></h2> +<ul> +<li>Install the bookmarklet from the <a href="https://cms.apache.org/">cms</a> page. You only have to do this once.</li> +<li>Navigate to the page you wish to edit (on the live site, not in the cms).</li> +<li>Click the bookmarklet. There will be a short pause while the CMS system is initialised for you.</li> +<li>Click on <code>Edit</code> (to skip this step hack the bookmarklet to add an 'action=edit' param to the query string)</li> +<li>The page editor should then be displayed.</li> +<li>Click <code>Submit</code> to save your edit to the workarea</li> +<li>Click <code>Commit</code> to save the updated file to SVN and trigger a staged build. (to skip this step click on the "Quick Commit" checkbox in the <code>Edit</code> form).</li> +<li>The results should appear shortly on the <a href="http://felix.staging.apache.org/content/documentation.html">staging</a> site. (You may have to force the page to refresh in order to see the updated content)</li> +<li>Once you are happy with the updated page, click on <code>Publish Site</code> to deploy.</li> +</ul> +<p>There is also a <a href="https://www.apache.org/dev/cmsref.html">Reference Manual</a> of the Apache CMS as well as a +video tutorial at <a href="http://s.apache.org/cms-tutorial">http://s.apache.org/cms-tutorial</a>.</p> +<h2 id="features-of-the-apache-felix-site">Features of the Apache Felix Site<a class="headerlink" href="#features-of-the-apache-felix-site" title="Permanent link">¶</a></h2> +<p>This section lists some Apache Felix features to help with the maintenance +of the site, such as automatic link generation.</p> +<p>Start the file with a <code>Title:</code> line to define the page title and the first H1 tag:</p> +<div class="codehilite"><pre><span class="n">Title</span><span class="o">:</span> <span class="n">Page</span> <span class="n">Title</span> + +<span class="n">Here</span> <span class="n">comes</span> <span class="n">the</span> <span class="n">content</span> <span class="n">separated</span> <span class="k">with</span> <span class="n">a</span> <span class="n">blank</span> <span class="n">like</span> <span class="n">from</span> <span class="n">the</span> +<span class="n">header</span> <span class="o">...</span> +</pre></div> + + +<p>The last modification information from SVN (revision, committer, and +date/time) is automatically added when the page is rendered</p> +<p>Excerpts can be added to a page using the <code>Excerpt:</code> header:</p> +<div class="codehilite"><pre><span class="n">Title</span><span class="o">:</span> <span class="n">Page</span> <span class="n">Title</span> +<span class="n">Excerpt</span><span class="o">:</span> <span class="n">Summary</span> <span class="n">of</span> <span class="n">the</span> <span class="n">page</span> <span class="k">for</span> <span class="n">inclusion</span> <span class="k">in</span> <span class="n">other</span> <span class="n">pages</span><span class="o">;</span> + <span class="n">continuation</span> <span class="n">of</span> <span class="n">the</span> <span class="n">excerpt</span> <span class="n">must</span> <span class="n">be</span> <span class="n">indented</span> + +<span class="n">Here</span> <span class="n">comes</span> <span class="n">the</span> <span class="n">content</span> <span class="n">separated</span> <span class="k">with</span> <span class="n">a</span> <span class="n">blank</span> <span class="n">like</span> <span class="n">from</span> <span class="n">the</span> +<span class="n">header</span> <span class="o">...</span> +</pre></div> + + +<p>Metadata from child pages can be referred to in the content with the +Django variable reference notation using the child page name (without +extension) as its container; e.g. for the child page named <code>childpage</code>:</p> +<div class="codehilite"><pre><span class="cp">{{</span> <span class="nv">children.childpage.headers.excerpt</span> <span class="cp">}}</span><span class="x"></span> +<span class="cp">{{</span> <span class="nv">children.childpage.headers.title</span> <span class="cp">}}</span><span class="x"></span> +</pre></div> + + +<p>Content Pages can contain Django templates of the form <code>{{...}}</code> and <code>{%...%}</code>. +If so, the page content is evaluated as a Django template before running +it through the page template.</p> +<p>Any page in the site can be referenced with refs.pagename returning properties:</p> +<dl> +<dt><code>.path</code></dt> +<dd>the absolute path of the page on the site</dd> +<dt><code>.headers</code></dt> +<dd>page headers (e.g. <code>.title</code>, <code>.excerpt</code>)</dd> +<dt><code>.content</code></dt> +<dd>the raw page content</dd> +</dl> +<p>All pages in the children namespace are also available in the refs namespace</p> +<p>Some usefull hints:</p> +<p>Printing title of another page "handler":</p> +<div class="codehilite"><pre><span class="x"> :::django</span> +<span class="x"> </span><span class="cp">{{</span> <span class="nv">refs.handler.headers.title</span> <span class="cp">}}</span><span class="x"></span> +</pre></div> + + +<p>Printing excerpt of another page "handler":</p> +<div class="codehilite"><pre><span class="x"> :::django</span> +<span class="x"> </span><span class="cp">{{</span> <span class="nv">refs.handler.headers.excerpt</span> <span class="cp">}}</span><span class="x"></span> +</pre></div> + + +<p>Linking to another page "handler":</p> +<div class="codehilite"><pre><span class="x"> :::django</span> +<span class="x"> (</span><span class="cp">{{</span> <span class="nv">refs.handler.path</span> <span class="cp">}}</span><span class="x">)</span> +</pre></div> + + +<p>Printing title as a link to another page "handler":</p> +<div class="codehilite"><pre><span class="x"> :::django</span> +<span class="x"> [</span><span class="cp">{{</span> <span class="nv">refs.handler.headers.title</span> <span class="cp">}}</span><span class="x">](</span><span class="cp">{{</span> <span class="nv">refs.handler.path</span> <span class="cp">}}</span><span class="x">)</span> +</pre></div> + + +<p>Printing excerpt as a link to another page "handler":</p> +<div class="codehilite"><pre><span class="x"> :::django</span> +<span class="x"> [</span><span class="cp">{{</span> <span class="nv">refs.handler.headers.excerpt</span> <span class="cp">}}</span><span class="x">](</span><span class="cp">{{</span> <span class="nv">refs.handler.path</span> <span class="cp">}}</span><span class="x">)</span> +</pre></div> + + +<p>Print a bullet pointed child page list:</p> +<div class="codehilite"><pre><span class="x"> :::django</span> +<span class="x"> </span><span class="cp">{%</span> <span class="k">for</span> <span class="nv">label</span><span class="o">,</span> <span class="nv">page</span> <span class="k">in</span> <span class="nv">children</span> <span class="cp">%}</span><span class="x">* [</span><span class="cp">{{</span> <span class="nv">page.headers.title</span> <span class="cp">}}</span><span class="x">](</span><span class="cp">{{</span> <span class="nv">page.path</span> <span class="cp">}}</span><span class="x">)</span> +<span class="x"> </span><span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span><span class="x"></span> +</pre></div> + + +<div class="note"> +It is important to have the first part as a single line, otherwise +the Django/Markdown combo will create a list for each entry. +</div> + +<h2 id="code-highlighting">Code Highlighting<a class="headerlink" href="#code-highlighting" title="Permanent link">¶</a></h2> +<p>Code Highlighting works by indenting code by four blanks. To indicate the +type of highlighting preced the code style text with either <code>:::<lexer></code> to +get high lighted code using the given <code><lexer></code> or <code>#!<lexer></code> to get high +lighted code with line numbers using the given <code><lexer></code>. See +<a href="http://www.apache.org/dev/cmsref.html#code-hilighter">http://www.apache.org/dev/cmsref.html#code-hilighter</a> for main info and +<a href="http://pygments.org/docs/lexers/">http://pygments.org/docs/lexers/</a> for supported lexers</p> +<h2 id="html-and-markdown">HTML and Markdown<a class="headerlink" href="#html-and-markdown" title="Permanent link">¶</a></h2> +<p>Markdown supports embedding HTML. But be aware that contents of HTML elements +are not further handled by the Markdown converter. Thus it is not possible +to embed Markdown syntax inside of HTML elements to have them converted.</p> +<h2 id="manual-generation">Manual Generation<a class="headerlink" href="#manual-generation" title="Permanent link">¶</a></h2> +<p>When commiting changes to pages into SVN the pages are automatically +generated in <a href="http://felix.staging.apache.org">the staging site</a>.</p> +<div class="info"> +<p>To generate the site locally, you must have checked out the complete SVN to access the tools:</p> + +<div class="codehilite"><pre><span class="nv">$ </span>svn <span class="s2">https://svn.apache.org/repos/asf/felix/site/ felix-site</span> +</pre></div> +</div> + +<p>To manually generate the site or single pages the <a href="http://svn.apache.org/repos/asf/felix/site">site</a> +can be checked out from SVN. In addition Perl and Python must be installed +for the build tools to work.</p> +<p>To prepare for site build, the Markdown daemon has to be started:</p> +<div class="codehilite"><pre><span class="nv">$ </span><span class="nb">export </span><span class="nv">MARKDOWN_SOCKET</span><span class="o">=</span><span class="s2">"$PWD/tools/build/../markdown.socket"</span> +<span class="nv">$ </span><span class="nb">export </span><span class="nv">PYTHONPATH</span><span class="o">=</span><span class="s2">"$PWD/tools/build"</span> +<span class="nv">$ </span>python <span class="s2">"$PWD/tools/build/markdownd.py"</span> +</pre></div> + + +<p>The <code>MARKDOWN_SOCKET</code> environment variables is also required by the <code>build_site.pl</code> +and <code>build_file.pl</code> scripts to connect to the Markdown daemon.</p> +<p>To build the complete site use the <code>build_site.pl</code> script:</p> +<div class="codehilite"><pre><span class="nv">$ </span>tools/build/build_site.pl --source-base <span class="nv">$PWD</span>/trunk <span class="se">\</span> + --target-base <span class="nv">$PWD</span>/trunk/target +</pre></div> + + +<p>To build a single page use the <code>build_file.pl</code> script:</p> +<div class="codehilite"><pre><span class="nv">$ </span>tools/build/build_site.pl --source-base <span class="nv">$PWD</span>/trunk <span class="se">\</span> + --target-base <span class="nv">$PWD</span>/trunk/target <span class="se">\</span> + --source content/documentation.mdtext +</pre></div> + + +<p>The argument to the <code>--source</code> parameter is relative to the <code>--source-base</code> folder.</p> +<h2 id="configuring-site-generation-on-mac">Configuring site generation on Mac<a class="headerlink" href="#configuring-site-generation-on-mac" title="Permanent link">¶</a></h2> +<div class="info"> +Those instructions were computed on Mountain Lion. +</div> + +<p>A couple of Python and Perl libraries are required and need to be installed</p> +<div class="codehilite"><pre><span class="nv">$ </span>sudo easy_install Pygments +<span class="nv">$ </span>sudo easy_install Markdown +</pre></div> + + +<p>And for the Perl modules:</p> +<div class="codehilite"><pre><span class="nv">$ </span>sudo cpan install XML::Atom::Feed +<span class="nv">$ </span>sudo cpan install XML::RSS::Parser +<span class="nv">$ </span>sudo cpan install XML::Parser::Lite +<span class="nv">$ </span>sudo cpan install XML::RSS::Parser::Lite +<span class="nv">$ </span>sudo cpan install Net::Twitter +<span class="nv">$ </span>sudo cpan install SVN::Client +</pre></div> + + +<p>Be careful that some of those commands require time... Once done, launch the mardown daemon with the following command from the SVN root:</p> +<div class="codehilite"><pre><span class="nv">$ </span><span class="nb">export </span><span class="nv">MARKDOWN_SOCKET</span><span class="o">=</span><span class="s2">"$PWD/tools/build/../markdown.socket"</span> +<span class="nv">$ </span><span class="nb">export </span><span class="nv">PYTHONPATH</span><span class="o">=</span><span class="s2">"$PWD/tools/build"</span> +<span class="nv">$ </span>python <span class="s2">"$PWD/tools/build/markdownd.py"</span> +</pre></div> + + +<p>And finally, generate the web site from the svn root with:</p> +<div class="codehilite"><pre>tools/build/build_site.pl --source-base <span class="nv">$PWD</span>/trunk --target-base <span class="nv">$PWD</span>/trunk/target +</pre></div> + <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;"> + Rev. 1874787 by pauls on Wed, 4 Mar 2020 13:22:01 +0000 + </div> + <div class="trademarkFooter"> + Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project + logo are trademarks of The Apache Software Foundation. All other marks mentioned + may be trademarks or registered trademarks of their respective owners. + </div> + </div> + </body> +</html> Modified: websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations.html ============================================================================== --- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations.html (original) +++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations.html Wed Mar 4 13:22:46 2020 @@ -93,8 +93,36 @@ h2:hover > .headerlink, h3:hover > .head <li><a href="/documentation/tutorials-examples-and-presentations/apache-felix-osgi-faq.html">OSGi Frequently Asked Questions</a></li> <li><a href="/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial.html">Apache Felix OSGi Tutorial</a></li> </ul> +<h2 id="books">Books<a class="headerlink" href="#books" title="Permanent link">¶</a></h2> +<p>The most important "books" on OSGi are of course the specifications themselves. They are quite a good read but are also complete and contain stuff, you might be interested +in. So for a starter you might interested to read the following:</p> +<ul> +<li>Core Specification (Layer, Services, LiveCycle part)</li> +<li>Compendium Specification</li> +<li>Enterprise Specification</li> +</ul> +<p>Visit the <a href="http://www.osgi.org/Specifications/HomePage">OSGi Alliance Specifications</a> page to download the specifications for free.</p> +<p>Apart from the specifications a number of books have recently been published. They are listed here in no particular order:</p> +<ul> +<li><a href="http://www.manning.com/hall/">OSGi in Action</a>; Richard Hall, Karl Pauls, Stuart McCulloch, David Savage; Manning Publications, 2011. +Covers most (if not all) of R 4.2 specs and also contains a lot of side information. The authors of this book are committers and/or PMC members of the Apache Felix project.</li> +<li><a href="http://www.amazon.com/OSGi-Equinox-Creating-Modular-Systems/dp/0321585712">OSGi and Equinox: creating highly modular Java systems</a>; Jeff McAffer, Paul VanderLei, Simon Archer; Addison-Wesley, 2010. +Despite its dependency on Equinox it might be helpful, because they use Declarative Services intensely for their sample application throughout the book and we use Declarative Services intensely, too.</li> +<li><a href="http://www.manning.com/alves/">OSGi in Depth</a>; Alexandre de Castro Alves; Manning, 2011. +I cannot say anything on this book except that he seems to have used Apache Felix for the samples....</li> +<li><a href="http://www.manning.com/cummins/">Enterprise OSGi in Action: With examples using Apache Aries</a>; Holly Cummins, Timothy Ward; Manning, 2013 +Covers Enterprise OSGi specifications, which are becoming more and more important.</li> +<li><a href="http://www.amazon.com/Java-Application-Architecture-Modularity-Development/dp/0321247132">Java Application Architecture: Modularity Patterns with Examples Using OSGi (Agile Software Development Series)</a>; Kirk Knoernschild; Prentice Hall, 2012 +Primarily covers Java Application Architecture using OSGi for the framework to implement.</li> +<li><a href="http://njbartlett.name/osgibook.html">OSGi in Practice</a>; Neil Bartlett; Free PDF EBook. +Many OSGi core concepts are greatly explained, and its free;</li> +<li><a href="http://www.packtpub.com/open-services-gateway-initiative-starter/book">Instant OSGi Starter</a>; Jamie Goodyear, Johan Edstrom; Packt, 2013</li> +<li><a href="http://www.packtpub.com/osgi-and-apache-felix-30-beginners-guide/book">OSGi and Apache Felix 3.0 Beginner's Guide</a>; Walid Joseph Gédéon; Packt, 2010</li> +<li><a href="http://www.manning.com/cogoluegnes/">Spring Dynamic Modules in Action</a>; Arnaud Cogoluègnes, Thierry Templier, Andy Piper; Manning, 2010</li> +<li><a href="http://shop.oreilly.com/product/0636920028086.do#">Building Modular Cloud Apps with OSGi</a>; Paul Bakker, Bert Ertman; O'Reilly, 2013. Uses Apache Felix. For experienced Java developers in the enterprise, this practical, hands-on book shows you how to use OSGi to design, develop, and deploy modular cloud applications. </li> +</ul> <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;"> - Rev. 1712487 by cziegeler on Wed, 4 Nov 2015 07:41:18 +0000 + Rev. 1874787 by pauls on Wed, 4 Mar 2020 13:22:01 +0000 </div> <div class="trademarkFooter"> Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project