Added: websites/staging/celix/trunk/content/css/pygments.css
==============================================================================
--- websites/staging/celix/trunk/content/css/pygments.css (added)
+++ websites/staging/celix/trunk/content/css/pygments.css Tue Jul 29 17:51:21
2014
@@ -0,0 +1,61 @@
+.codehilite .hll { background-color: #ffffcc }
+.codehilite .c { color: #60a0b0; font-style: italic } /* Comment */
+.codehilite .err { border: 1px solid #FF0000 } /* Error */
+.codehilite .k { color: #007020; font-weight: bold } /* Keyword */
+.codehilite .o { color: #666666 } /* Operator */
+.codehilite .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.codehilite .cp { color: #007020 } /* Comment.Preproc */
+.codehilite .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.codehilite .cs { color: #60a0b0; background-color: #fff0f0 } /*
Comment.Special */
+.codehilite .gd { color: #A00000 } /* Generic.Deleted */
+.codehilite .ge { font-style: italic } /* Generic.Emph */
+.codehilite .gr { color: #FF0000 } /* Generic.Error */
+.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.codehilite .gi { color: #00A000 } /* Generic.Inserted */
+.codehilite .go { color: #808080 } /* Generic.Output */
+.codehilite .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.codehilite .gs { font-weight: bold } /* Generic.Strong */
+.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.codehilite .gt { color: #0040D0 } /* Generic.Traceback */
+.codehilite .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.codehilite .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.codehilite .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.codehilite .kp { color: #007020 } /* Keyword.Pseudo */
+.codehilite .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.codehilite .kt { color: #902000 } /* Keyword.Type */
+.codehilite .m { color: #40a070 } /* Literal.Number */
+.codehilite .s { color: #4070a0 } /* Literal.String */
+.codehilite .na { color: #4070a0 } /* Name.Attribute */
+.codehilite .nb { color: #007020 } /* Name.Builtin */
+.codehilite .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.codehilite .no { color: #60add5 } /* Name.Constant */
+.codehilite .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.codehilite .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.codehilite .ne { color: #007020 } /* Name.Exception */
+.codehilite .nf { color: #06287e } /* Name.Function */
+.codehilite .nl { color: #002070; font-weight: bold } /* Name.Label */
+.codehilite .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.codehilite .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.codehilite .nv { color: #bb60d5 } /* Name.Variable */
+.codehilite .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
+.codehilite .mf { color: #40a070 } /* Literal.Number.Float */
+.codehilite .mh { color: #40a070 } /* Literal.Number.Hex */
+.codehilite .mi { color: #40a070 } /* Literal.Number.Integer */
+.codehilite .mo { color: #40a070 } /* Literal.Number.Oct */
+.codehilite .sb { color: #4070a0 } /* Literal.String.Backtick */
+.codehilite .sc { color: #4070a0 } /* Literal.String.Char */
+.codehilite .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.codehilite .s2 { color: #4070a0 } /* Literal.String.Double */
+.codehilite .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape
*/
+.codehilite .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.codehilite .si { color: #70a0d0; font-style: italic } /*
Literal.String.Interpol */
+.codehilite .sx { color: #c65d09 } /* Literal.String.Other */
+.codehilite .sr { color: #235388 } /* Literal.String.Regex */
+.codehilite .s1 { color: #4070a0 } /* Literal.String.Single */
+.codehilite .ss { color: #517918 } /* Literal.String.Symbol */
+.codehilite .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.codehilite .vc { color: #bb60d5 } /* Name.Variable.Class */
+.codehilite .vg { color: #bb60d5 } /* Name.Variable.Global */
+.codehilite .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.codehilite .il { color: #40a070 } /* Literal.Number.Integer.Long */
Added: websites/staging/celix/trunk/content/css/reset-fonts-grids.css
==============================================================================
--- websites/staging/celix/trunk/content/css/reset-fonts-grids.css (added)
+++ websites/staging/celix/trunk/content/css/reset-fonts-grids.css Tue Jul 29
17:51:21 2014
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2010, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.com/yui/license.html
+version: 2.8.1
+*/
+html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}body{font:13px/1.231
arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea,button{font:99%
arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kb
d,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}body{text-align:center;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto
10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main
.yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}.yui-t1
#yui-main,.yui-t2 #yui-main,.yui-t3
#yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5
#yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1
.yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main
.yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2
.yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main
.yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3
.yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main
.yui-b{margin-left:24.0769em;*m
argin-left:23.62em;}.yui-t4
.yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main
.yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5
.yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main
.yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6
.yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main
.yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main
.yui-b{display:block;margin:0 0 1em 0;}#yui-main
.yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb
.yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb
.yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g
.yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g
.yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc
.yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf
.yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc
div.first,.yui-gd div.first,.
yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge
div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g
.yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g
.yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb
.yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb
.yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd
.yui-u{width:32%;margin-left:1.99%;}.yui-gb
.yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd
.yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf
.yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb
div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd
div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc
.yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g
.yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g
.yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb d
iv.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc
div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g
div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc
div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb
.yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb
.yui-u{_margin-left:1.0%;}.yui-gb .yui-gd
.yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd
div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc
.yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc
div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb
.yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb
.yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g
.yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}.yui-gb .yui-gd
div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge
.yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-g
e div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge
div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb
.yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb
.yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd
.yui-u{width:65%;}.yui-ge div.first .yui-gd
div.first{width:32%;}#hd:after,#bd:after,#ft:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#hd,#bd,#ft,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}
\ No newline at end of file
Added: websites/staging/celix/trunk/content/css/superfish.css
==============================================================================
--- websites/staging/celix/trunk/content/css/superfish.css (added)
+++ websites/staging/celix/trunk/content/css/superfish.css Tue Jul 29 17:51:21
2014
@@ -0,0 +1,136 @@
+
+/*** ESSENTIAL STYLES ***/
+.sf-menu, .sf-menu * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+.sf-menu {
+ line-height: 1.0;
+}
+.sf-menu ul {
+ position: absolute;
+ top: -999em;
+ width: 10em; /* left offset of submenus need to match
(see below) */
+}
+.sf-menu ul li {
+ width: 100%;
+}
+.sf-menu li:hover {
+ visibility: inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+ float: left;
+ position: relative;
+}
+.sf-menu a {
+ display: block;
+ position: relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+ left: 0;
+ top: 2.5em; /* match top ul list item height */
+ z-index: 99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+ top: -999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+ left: 10em; /* match ul width */
+ top: 0;
+}
+
+/*** DEMO SKIN ***/
+.sf-menu {
+ float: left;
+ margin-bottom: 1em;
+}
+.sf-menu a {
+ border-left: 1px solid #fff;
+ border-top: 1px solid #CFDEFF;
+ padding: .75em 1em;
+ text-decoration:none;
+}
+.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies
text colour*/
+ color: #13a;
+}
+.sf-menu li {
+ background: #BDD2FF;
+}
+.sf-menu li li {
+ background: #AABDE6;
+}
+.sf-menu li li li {
+ background: #9AAEDB;
+}
+.sf-menu li:hover, .sf-menu li.sfHover,
+.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
+ background: #CFDEFF;
+ outline: 0;
+}
+
+/*** arrows **/
+.sf-menu a.sf-with-ul {
+ padding-right: 2.25em;
+ min-width: 1px; /* trigger IE7 hasLayout so spans position
accurately */
+}
+.sf-sub-indicator {
+ position: absolute;
+ display: block;
+ right: .75em;
+ top: 1.05em; /* IE6 only */
+ width: 10px;
+ height: 10px;
+ text-indent: -999em;
+ overflow: hidden;
+ background: url('../images/arrows-ffffff.png') no-repeat
-10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
+}
+a > .sf-sub-indicator { /* give all except IE6 the correct values */
+ top: .8em;
+ background-position: 0 -100px; /* use translucent arrow for modern
browsers*/
+}
+/* apply hovers to modern browsers */
+a:focus > .sf-sub-indicator,
+a:hover > .sf-sub-indicator,
+a:active > .sf-sub-indicator,
+li:hover > a > .sf-sub-indicator,
+li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/* point right for anchors in subs */
+.sf-menu ul .sf-sub-indicator { background-position: -10px 0; }
+.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }
+/* apply hovers to modern browsers */
+.sf-menu ul a:focus > .sf-sub-indicator,
+.sf-menu ul a:hover > .sf-sub-indicator,
+.sf-menu ul a:active > .sf-sub-indicator,
+.sf-menu ul li:hover > a > .sf-sub-indicator,
+.sf-menu ul li.sfHover > a > .sf-sub-indicator {
+ background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
+
+/*** shadows for all but IE6 ***/
+.sf-shadow ul {
+ background: url('../images/shadow.png') no-repeat bottom right;
+ padding: 0 8px 9px 0;
+ -moz-border-radius-bottomleft: 17px;
+ -moz-border-radius-topright: 17px;
+ -webkit-border-top-right-radius: 17px;
+ -webkit-border-bottom-left-radius: 17px;
+}
+.sf-shadow ul.sf-shadow-off {
+ background: transparent;
+}
Added: websites/staging/celix/trunk/content/documentation.html
==============================================================================
--- websites/staging/celix/trunk/content/documentation.html (added)
+++ websites/staging/celix/trunk/content/documentation.html Tue Jul 29 17:51:21
2014
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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
+
+ http://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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css"
media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css"
media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - Documentation</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript"
src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth:
1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage"
src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage"
src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service
Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and
Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it
Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Documentation</h1>
+ <p>Currently the documentation for Celix contains
information about building and running Celix, as well as some examples.</p>
+<ul>
+<li><a href="/celix/documentation/buildingandrunning.html">Building and
Running Celix</a></li>
+<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
+<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/celix/documentation/examples.html">Examples</a><ul>
+<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <div id="homeright">
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed
under
+ the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the
Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added:
websites/staging/celix/trunk/content/documentation/buildingandrunning-links.html
==============================================================================
---
websites/staging/celix/trunk/content/documentation/buildingandrunning-links.html
(added)
+++
websites/staging/celix/trunk/content/documentation/buildingandrunning-links.html
Tue Jul 29 17:51:21 2014
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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
+
+ http://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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css"
media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css"
media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - </title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript"
src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth:
1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage"
src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage"
src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service
Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and
Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it
Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title"></h1>
+ <h2 id="requirements">Requirements</h2>
+<ul>
+<li>CMake (2.8.4 and higher)</li>
+<li>GCC (4.2.1)</li>
+<li>GNU Make (3.81)</li>
+<li>ZLib</li>
+<li>CUnit</li>
+<li>Celix Source</li>
+</ul>
+<h2 id="useful-links">Useful Links</h2>
+<ul>
+<li><a href="http://www.cmake.org/cmake/help/documentation.html">CMake
Documentation</a></li>
+</ul>
+ </div>
+ <div id="homeright">
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed
under
+ the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the
Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added:
websites/staging/celix/trunk/content/documentation/buildingandrunning.html
==============================================================================
--- websites/staging/celix/trunk/content/documentation/buildingandrunning.html
(added)
+++ websites/staging/celix/trunk/content/documentation/buildingandrunning.html
Tue Jul 29 17:51:21 2014
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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
+
+ http://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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css"
media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css"
media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - Building and Running</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript"
src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth:
1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage"
src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage"
src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service
Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and
Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it
Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Building and Running</h1>
+ <p>Note: Currently there is one build that builds
Celix, the dependency manager and several small test bundles. This will be
split into several small modules.
+Requirements</p>
+<p>To be able to build Celix, the following is needed:</p>
+<div class="codehilite"><pre>CMake (2.8.4 and higher)
+GNU Make (3.81)
+GCC (4.2.1)
+Celix sources
+Sub-project dependencies
+</pre></div>
+
+
+<p>Note: Currently the framework and the examples are in one large project,
this results in required libraries which aren't used by the framework itself.
+The following is a list of libraries per sub-project:</p>
+<div class="codehilite"><pre><span class="n">Utils</span><span
class="p">:</span>
+<span class="o">-</span> <span class="n">Apache</span> <span
class="n">Portable</span> <span class="n">Runtime</span>
+<span class="o">-</span> <span class="n">CUnit</span>
+
+<span class="n">Framework</span><span class="p">:</span>
+<span class="o">-</span> <span class="n">Apache</span> <span
class="n">Portable</span> <span class="n">Runtime</span>
+<span class="o">-</span> <span class="n">CUnit</span>
+<span class="o">-</span> <span class="n">ZLib</span>
+<span class="o">-</span> <span class="n">Utils</span> <span
class="p">(</span><span class="n">Celix</span> <span class="n">sub</span><span
class="o">-</span><span class="n">project</span><span class="p">)</span>
+
+<span class="n">Shell</span><span class="p">:</span>
+<span class="o">-</span> <span class="n">all</span> <span
class="n">framework</span> <span class="n">dependencies</span>
+<span class="o">-</span> <span class="n">cURL</span>
+
+<span class="n">Remote</span> <span class="n">Services</span><span
class="p">:</span>
+<span class="o">-</span> <span class="n">all</span> <span
class="n">framework</span> <span class="n">dependencies</span>
+<span class="o">-</span> <span class="n">Jansson</span> <span
class="p">(</span><span class="n">library</span> <span class="k">for</span>
<span class="n">encoding</span><span class="o">/</span><span
class="n">decoding</span> <span class="n">JSON</span><span class="p">)</span>
+<span class="o">-</span> <span class="n">Apache</span> <span
class="n">Portable</span> <span class="n">Runtime</span> <span
class="n">Utils</span>
+
+<span class="n">Paint</span> <span class="n">example</span><span
class="p">:</span>
+<span class="o">-</span> <span class="n">all</span> <span
class="n">framework</span> <span class="n">dependencies</span>
+<span class="o">-</span> <span class="n">GTK</span> <span
class="p">(</span>2<span class="p">.</span>14 <span class="n">or</span> <span
class="n">higher</span><span class="p">)</span>
+</pre></div>
+
+
+<h2 id="building">Building</h2>
+<p>Celix uses CMake to generate makefile. There are cmake scripts to build the
libraries, but also to deploy created bundles to a named target.
+To start building and using Celix these makefiles have to be created. CMake
supports out-of-source builds, for Celix the build directory is used for
this.</p>
+<div class="codehilite"><pre><span class="c1">// First extract the
sources</span>
+<span class="n">svn</span> <span class="n">co</span> <span
class="nl">https:</span><span
class="c1">//svn.apache.org/repos/asf/incubator/celix/trunk/ celix</span>
+<span class="n">cd</span> <span class="n">celix</span>
+
+<span class="c1">// Create and go to the build directory to be able to do an
out-of-source build</span>
+<span class="n">mkdir</span> <span class="n">build</span>
+<span class="n">cd</span> <span class="n">build</span>
+
+<span class="c1">// Generate the make files in the current directory</span>
+<span class="n">cmake</span> <span class="p">..</span>
+</pre></div>
+
+
+<p>After generating the make files, the sources can be build. There are
several build targets to build the bundles, deploy and package them.
+The following targets are available:
+ // Build all libraries, bundles and packages
+ make all -> build all libraries, bundles and packages</p>
+<div class="codehilite"><pre><span class="c1">// Deploy all deployment
targets</span>
+<span class="n">make</span> <span class="n">deploy</span> <span
class="o">-></span> <span class="n">deploys</span> <span
class="n">all</span> <span class="n">deployments</span>
+
+<span class="c1">// Build a single bundle (and its dependencies)</span>
+<span class="n">make</span> <span class="p">{</span><span
class="n">bundle_name</span><span class="p">}</span>
+
+<span class="c1">// Deploy a singe deployment target (and its
dependencies)</span>
+<span class="n">make</span> <span class="n">deploy_</span><span
class="p">{</span><span class="n">deployment_name</span><span
class="p">}</span> <span class="o">-></span> <span class="n">deploys</span>
<span class="n">a</span> <span class="n">single</span> <span
class="n">deployment</span> <span class="p">(</span><span class="k">and</span>
<span class="n">dependencies</span><span class="p">)</span>
+
+<span class="c1">// Clean the entire build, including deployment, bundles,
libraries etc</span>
+<span class="n">make</span> <span class="n">clean</span> <span
class="o">-></span> <span class="n">removes</span> <span
class="n">all</span> <span class="n">deployments</span><span class="p">,</span>
<span class="n">bundles</span><span class="p">,</span> <span
class="n">libraries</span> <span class="n">etc</span>
+
+<span class="c1">// Build a "framework.zip" file with the framework,
headers and selected bundles</span>
+<span class="n">make</span> <span class="n">install</span><span
class="o">-</span><span class="n">fw</span>
+</pre></div>
+
+
+<p>Also it is possible to enter sub directories of the build and run the build
from there. So when running make from "build/shell" only the shell
+(and dependencies) will be build. This is the same as running "make shell" in
the build root.</p>
+<p>Note: The build files are recursive. If a target is build, all required
dependencies are build (bundles, libraries etc).</p>
+<h2 id="bundles">Bundles</h2>
+<p>In Celix a bundle is a library packed in a zip file. A bundle is a top
level build target and can be added using the following macro:</p>
+<div class="codehilite"><pre><span class="n">bundle</span><span
class="p">(</span><span class="o"><</span><span
class="n">bundle_name</span><span class="o">></span>
+ <span class="n">SOURCES</span> <span class="n">source1</span> <span
class="n">source2</span> <span class="p">...</span> <span
class="n">sourceN</span>
+ <span class="p">[</span><span class="n">DIRECTORIES</span> <span
class="n">dir1</span> <span class="n">dir2</span> <span class="p">...</span>
<span class="n">dirN</span><span class="p">]</span>
+ <span class="p">[</span><span class="n">FILES</span> <span
class="n">file1</span> <span class="n">file2</span> <span class="p">...</span>
<span class="n">fileN</span><span class="p">])</span>
+</pre></div>
+
+
+<p>Include directories and link libraries can be defined using the standard
CMake commands.
+The given examples are simplified for basic usage, see the CMake documentation
for more information and advanced options.</p>
+<div class="codehilite"><pre><span class="n">include_directories</span><span
class="p">(</span><span class="n">dir1</span> <span class="n">dir2</span> <span
class="p">...)</span>
+<span class="n">target_link_libraries</span><span class="p">(</span><span
class="o"><</span><span class="n">bundle_name</span><span
class="o">></span> <span class="p">[</span><span class="n">lib1</span> <span
class="p">[</span><span class="n">lib2</span> <span class="p">[...]]])</span>
+</pre></div>
+
+
+<p>To export files (eg a header file describing the service), a package is
created using the "package" command.</p>
+<div class="codehilite"><pre><span class="n">package</span><span
class="p">(</span><span class="o"><</span><span
class="n">bundle_name</span><span class="o">></span>
+ <span class="p">[</span><span class="n">DIRECTORIES</span> <span
class="n">dir1</span> <span class="n">dir2</span> <span class="p">...</span>
<span class="n">dirN</span><span class="p">]</span>
+ <span class="p">[</span><span class="n">FILES</span> <span
class="n">file1</span> <span class="n">file2</span> <span class="p">...</span>
<span class="n">fileN</span><span class="p">])</span>
+</pre></div>
+
+
+<p>This can be used to create a package which contains the bundle and
additional files (headers etc) needed to use the bundle in different
projects.</p>
+<h2 id="targets">Targets</h2>
+<p>A named target is used to deploy a group of bundles and create a default
configuration file.
+To create a target the following command is needed:</p>
+<div class="codehilite"><pre><span class="n">deploy</span><span
class="p">(</span><span class="o"><</span><span
class="n">target_name</span><span class="o">></span> <span
class="n">BUNDLES</span> <span class="n">bundle1</span> <span
class="n">bundle2</span> <span class="p">...</span> <span
class="n">bundleN</span><span class="p">)</span>
+</pre></div>
+
+
+<p>A target is deployed to the build directory where the deploy macro is used.
So if in <root>/examples a deploy macro is used, the deployment can be found in
<root>/<build_root>/examples.</p>
+<h2 id="running">Running</h2>
+<p>After building a target, it can be run. To run a target a launcher is
needed. This launcher is build as part of the standard Celix build, and is
located in build/launcher.
+The launcher is a simple executable requiring a configuration file in which
required bundles are listed.
+If a target is deployed using the "deploy" macro, a configuration file is
created by the build system.
+Finally before the launcher can be executed, the Celix library needs to be
available on the library path. This depends on the OS being used:</p>
+<p>Linux</p>
+<div class="codehilite"><pre><span class="n">export</span> <span
class="n">LD_LIBRARY_PATH</span><span class="p">={</span><span
class="n">build_root</span><span class="p">}</span><span
class="o">/</span><span class="n">celix</span>
+</pre></div>
+
+
+<p>Mac</p>
+<div class="codehilite"><pre><span class="n">export</span> <span
class="n">DYLD_LIBRARY_PATH</span><span class="p">={</span><span
class="n">build_root</span><span class="p">}</span><span
class="o">/</span><span class="n">celix</span>
+</pre></div>
+
+
+<p>If the library path is set, the launcher can be started.</p>
+<p>{build_root}/launcher/launcher</p>
+<p>Note: for the provided examples a "run.sh" script is generated which takes
care of setting up the library path.</p>
+ </div>
+ <div id="homeright">
+
+
+ <div id="download" class="rc">
+ <h2 id="requirements">Requirements</h2>
+<ul>
+<li>CMake (2.8.4 and higher)</li>
+<li>GCC (4.2.1)</li>
+<li>GNU Make (3.81)</li>
+<li>ZLib</li>
+<li>CUnit</li>
+<li>Celix Source</li>
+</ul>
+<h2 id="useful-links">Useful Links</h2>
+<ul>
+<li><a href="http://www.cmake.org/cmake/help/documentation.html">CMake
Documentation</a></li>
+</ul>
+ </div>
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed
under
+ the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the
Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added: websites/staging/celix/trunk/content/documentation/design.html
==============================================================================
--- websites/staging/celix/trunk/content/documentation/design.html (added)
+++ websites/staging/celix/trunk/content/documentation/design.html Tue Jul 29
17:51:21 2014
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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
+
+ http://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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css"
media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css"
media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - Celix Design</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript"
src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth:
1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage"
src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage"
src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service
Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and
Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it
Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Celix Design</h1>
+ <p>Since Celix tries to follow the OSGi specification
as close as possible, most of the design can be found in these
+specifications. Some key aspects of OSGi can not be mapped on C, these
differences are detailed on this page.</p>
+<p>The following important differences are:</p>
+<ul>
+<li><a href="#services_and_service_interfaces">Services and Service
Interfaces</a></li>
+<li><a href="#objects_and_object_state">Objects and Object State</a></li>
+<li><a href="#namespaces">Namespaces</a></li>
+<li><a href="#imported_and_exported_packages">Imported and Exported
Packages</a></li>
+<li><a href="#exception_handling">Exception Handling</a></li>
+</ul>
+<h2 id="services-and-service-interfaces">Services and Service Interfaces</h2>
+<p>OSGi uses Java Interfaces to define a service. Since C does not have
Interfaces as compilable unit, this is not possible
+for Celix. To be able to define a service which hides implementation details,
Celix uses structs with function pointers.
+To register a service, in the activator, the actual functions are assigned to
the pointers of the struct. This struct is
+registered as service implementation.</p>
+<h2 id="object-and-object-state">Object and Object State</h2>
+<p>Most notably is the use of Objects in Java, and the lack of Objects in C.
To solve this and be able to pass instance
+data through the framework, structs are used. Every framework method follows
the signature as defined in the
+specification, with one addition; the first argument is a pointer to a struct
instance. The structure of these structs
+are hidden behind a typedef to be able to control access to, and to
limit/prevent modifications to the struct its data.
+So basically the pointer is merely used as a handle to be able to track
instances.</p>
+<h2 id="namespaces">Namespaces</h2>
+<p>Java uses packages for the namespace of classes, and methods are grouped by
class. In C there is no alternative. To
+prevent name clashes, function names are prefixed with the name of the class
defined in the specification.</p>
+<p>Function in C:</p>
+<div class="codehilite"><pre><span class="n">celix_status_t</span> <span
class="n">bundleContext_registerService</span><span class="p">(</span><span
class="n">BUNDLE_CONTEXT</span> <span class="n">context</span><span
class="p">,</span> <span class="kt">char</span> <span class="o">*</span> <span
class="n">serviceName</span><span class="p">,</span> <span
class="kt">void</span> <span class="o">*</span> <span
class="n">svcObj</span><span class="p">,</span> <span
class="n">HASHTABLE</span> <span class="n">properties</span><span
class="p">,</span> <span class="n">SERVICE_REGISTRATION</span> <span
class="o">*</span><span class="n">registration</span><span class="p">);</span>
+</pre></div>
+
+
+<p>Method in Java:</p>
+<div class="codehilite"><pre><span class="kd">public</span> <span
class="n">ServiceRegistration</span> <span
class="nf">registerService</span><span class="o">(</span><span
class="n">String</span> <span class="n">clazz</span><span class="o">,</span>
<span class="n">Object</span> <span class="n">service</span><span
class="o">,</span> <span class="n">Dictionary</span> <span
class="n">properties</span><span class="o">);</span>
+</pre></div>
+
+
+<p>More details about the mapping from Java to C can be found at <a
href="/celix/documentation/mapping.html">Mapping</a></p>
+<h2 id="imported-and-exported-packages">Imported and Exported Packages</h2>
+<p>The OSGi Specification uses packages for importing and exporting service
interfaces and additional types. As explained
+before, C does not have packages, so it is not possible to export packages.
Instead, services are exported and imported.
+This implies that the service struct has to be available to the using
components.
+There is also no programmatic protection to types used in the service
implementation. If the definition of types are
+available, they can be used.
+So it is up to the implementer of a service to define the struct and public
types separately from the inner types of the
+component. The public definitions can be published in a header file.</p>
+<h2 id="exception-handling">Exception Handling</h2>
+<p>OSGi uses exceptions to report errors and problems. Celix return a status
from every call. This requires that each method
+must return an integer which indicates the state. For returned pointers/values
(OUT) call-by-reference must be used.</p>
+ </div>
+ <div id="homeright">
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed
under
+ the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the
Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added: websites/staging/celix/trunk/content/documentation/examples.html
==============================================================================
--- websites/staging/celix/trunk/content/documentation/examples.html (added)
+++ websites/staging/celix/trunk/content/documentation/examples.html Tue Jul 29
17:51:21 2014
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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
+
+ http://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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css"
media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css"
media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - Examples</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript"
src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth:
1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage"
src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage"
src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service
Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and
Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it
Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Examples</h1>
+ <p>The following examples are available:</p>
+<ul>
+<li><a href="/celix/examples/helloworld.html">Hello World</a></li>
+</ul>
+ </div>
+ <div id="homeright">
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed
under
+ the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the
Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added: websites/staging/celix/trunk/content/documentation/mapping.html
==============================================================================
--- websites/staging/celix/trunk/content/documentation/mapping.html (added)
+++ websites/staging/celix/trunk/content/documentation/mapping.html Tue Jul 29
17:51:21 2014
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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
+
+ http://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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css"
media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css"
media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - Mapping</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript"
src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth:
1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage"
src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage"
src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service
Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and
Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it
Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Mapping</h1>
+ <p>To be able to follow the OSGi specification, a
standard mapping from C to Java is defined. This mapping
+takes care of how instances, parameters, return values and error codes are
used.</p>
+<h2 id="example">Example</h2>
+<p>Before going into detail, here is an example of the mapping from a method
in Java to a function in C:</p>
+<div class="codehilite"><pre><span class="n">celix_status_t</span> <span
class="n">bundleContext_getServiceReferences</span><span
class="p">(</span><span class="n">BUNDLE_CONTEXT</span> <span
class="n">context</span><span class="p">,</span> <span class="k">const</span>
<span class="kt">char</span> <span class="o">*</span> <span
class="n">serviceName</span><span class="p">,</span> <span
class="kt">char</span> <span class="o">*</span> <span
class="n">filter</span><span class="p">,</span> <span
class="n">ARRAY_LIST</span> <span class="o">*</span><span
class="n">service_references</span><span class="p">)</span>
+
+<span class="o">:::</span><span class="n">java</span>
+<span class="n">public</span> <span class="n">ServiceReference</span><span
class="p">[]</span> <span class="n">getServiceReferences</span><span
class="p">(</span><span class="n">String</span> <span
class="n">clazz</span><span class="p">,</span> <span class="n">String</span>
<span class="n">filter</span><span class="p">)</span> <span
class="n">throws</span> <span class="n">InvalidSyntaxException</span>
+</pre></div>
+
+
+<h2 id="template">Template</h2>
+<p>Using the provided example, the following template can be extracted:</p>
+<div class="codehilite"><pre><span class="cm">/**</span>
+<span class="cm"> * celix_status_t: return type of the status code</span>
+<span class="cm"> * </span>
+<span class="cm"> * typeName: name of the object/type this function is part
of</span>
+<span class="cm"> * functionName: the name of the function</span>
+<span class="cm"> * </span>
+<span class="cm"> * typeName_t: The actual instance to "invoke" this
function on</span>
+<span class="cm"> * pool: optional pool on which the output is allocated</span>
+<span class="cm"> * parameters: default function parameters</span>
+<span class="cm"> * output parameters: the output which the caller can
use</span>
+<span class="cm"> */</span>
+<span class="n">celix_status_t</span> <span
class="n">typeName_functionName</span><span class="p">([</span><span
class="n">typeName_t</span> <span class="n">instance</span><span
class="p">,</span> <span class="p">][</span><span class="n">apr_pool_t</span>
<span class="o">*</span><span class="n">pool</span><span class="p">,</span>
<span class="p">][</span><span class="n">parameters</span><span
class="p">,</span> <span class="p">][</span><span class="n">output</span> <span
class="n">parameters</span><span class="p">]);</span>
+</pre></div>
+
+
+<h2 id="details">Details</h2>
+<p>To fully explain the mapping, the following items will be detailed:</p>
+<ul>
+<li>Instance parameter</li>
+<li>Error codes</li>
+<li>Output parameters</li>
+<li>Memory pools</li>
+</ul>
+<h3 id="instances">Instances</h3>
+<p>When using Java, methods are related to an instance of a type. So for
example, when the "getServiceReferences" method is used,
+it is always executed on an instance of BundleContext.
+When using C, functions are not related to any type, and as such, no instance
information is available. To make this possible
+in Celix a pointer to the needed instance is always passed as first argument.
The only exception are the "create" functions, they
+are used to create a new instance.</p>
+<p>Furthermore, the instance typename is used as part of the function name,
see "design.html" for more information.</p>
+<h3 id="error-codes">Error codes</h3>
+<p>The OSGi specification uses Java Exceptions for error handling. Even though
there are Exceptions-like solutions for C, Celix uses
+the simpler approach. Every method in Celix returns an status code
(celix_status_t), this code can be used for error handling.</p>
+<h3 id="output-parameters">Output parameters</h3>
+<p>Since the return value is always used for the status code output parameters
are used to get a possible result from a function.
+Celix uses pass-by-reference for this, the uses has to supply a pointer to the
function to get the results. Using this mechanism it is
+also possible to use multiple output parameters.
+Celix always uses the last parameter(s) for output, and the caller has to
NULL-initialize the result field.</p>
+<h3 id="memory-pools">Memory pools</h3>
+<p>Celix uses APR memory pools for allocation. In the case a functions result
has to be allocated to the caller its own pool, the pool has
+to be supplied as an parameter. Note: Not all of Celix' API have been updated
to use APR (and memory pools), this is a work in progress.</p>
+ </div>
+ <div id="homeright">
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed
under
+ the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the
Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added: websites/staging/celix/trunk/content/documentation/memorypools.html
==============================================================================
--- websites/staging/celix/trunk/content/documentation/memorypools.html (added)
+++ websites/staging/celix/trunk/content/documentation/memorypools.html Tue Jul
29 17:51:21 2014
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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
+
+ http://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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css"
media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css"
media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - Memory Pools</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript"
src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth:
1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage"
src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage"
src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service
Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and
Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it
Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Memory Pools</h1>
+ <p>Celix uses the <a
href="http://apr.apache.org">Apache Portable Runtime</a> (APR) as abstraction
layer for platforms. APR uses memory pools to make memory management easier. To
be able to use memory pools the lifetime of "objects" must be known.</p>
+<p>This page details how Celix user APR memory pools and what the lifetime of
objects within Celix is. This will result in some best practices that should be
followed when using APR.</p>
+<p>Roughly, within Celix, the following object groups can be identified, where
each object has its own memory pool:</p>
+<ul>
+<li>
+<p>The framework </p>
+<p>The framework runs as long as the application and thus has the longest
lifetime (if Celix is not embedded). The memory pool of the framework contains
all objects belonging to the framework, for example the service registry
etc.</p>
+</li>
+<li>
+<p>Installed bundles</p>
+<p>For each bundle that is installed a new memory pool is created. This memory
pool is active until the bundle is uninstalled. On this pool the metadata of
the bundle is allocated, as well as other static aspects.
+The bundle pool is a child pool of the framework pool.</p>
+</li>
+<li>
+<p>Active bundles</p>
+<p>If a bundle is started a new pool is created. This pool is used for all
runtime aspects of the bundle, the bundle context, the loading of the library
etc. A reference to this pool is also kept in the bundle context so that it can
be used in the activator (and component). This pool is cleared and destroyed if
the bundle is stopped.
+The active bundle pool is a child pool of the bundle pool.</p>
+</li>
+<li>
+<p>User invocation</p>
+<p>During the lifetime of a bundle it is often needed to request information
from the framework. If this invocation is only needed once, the pool from the
bundle context can be used, but most likely invocations have to be repeated. To
prevent a growing pool, for each invocation the caller has to supply a memory
pool on which the request has to be allocated.
+It is up the caller to determine the life time of a request, and destroy the
pool if it is no longer needed.
+To be sure all user pools are cleared, the active bundle pool should be used
as parent. This guarantees all user pools will be destroyed if the bundle is
stopped.</p>
+</li>
+</ul>
+<p>The following diagram roughly depicts the state of a bundle and what pool
must be/is used for that state.</p>
+<p><img alt="alt text" src="/celix/images/memory_pools.png" /></p>
+ </div>
+ <div id="homeright">
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed
under
+ the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the
Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>