celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From abroekh...@apache.org
Subject svn commit: r1071224 [1/2] - in /incubator/celix/site/trunk/content/celix: ./ community/ community/boardreports/ community/contributing/ css/ documentation/ examples/ images/ js/ js/superfish-1.4.8/ js/superfish-1.4.8/css/ js/superfish-1.4.8/images/ js...
Date Wed, 16 Feb 2011 12:26:42 GMT
Author: abroekhuis
Date: Wed Feb 16 12:26:40 2011
New Revision: 1071224

URL: http://svn.apache.org/viewvc?rev=1071224&view=rev
Log:
Added first version of the website

Added:
    incubator/celix/site/trunk/content/celix/background-links.mdtext
    incubator/celix/site/trunk/content/celix/background.mdtext
    incubator/celix/site/trunk/content/celix/celix-links.mdtext
    incubator/celix/site/trunk/content/celix/celix.mdtext
    incubator/celix/site/trunk/content/celix/community/
    incubator/celix/site/trunk/content/celix/community/boardreports/
    incubator/celix/site/trunk/content/celix/community/boardreports/boardreports.mdtext
    incubator/celix/site/trunk/content/celix/community/boardreports/reports.mdtext
    incubator/celix/site/trunk/content/celix/community/community.mdtext
    incubator/celix/site/trunk/content/celix/community/contributing/
    incubator/celix/site/trunk/content/celix/community/contributing/contributing.mdtext
    incubator/celix/site/trunk/content/celix/community/contributing/links.mdtext
    incubator/celix/site/trunk/content/celix/community/links.mdtext
    incubator/celix/site/trunk/content/celix/css/
    incubator/celix/site/trunk/content/celix/css/Base.css   (with props)
    incubator/celix/site/trunk/content/celix/css/BreadCrumb.css   (with props)
    incubator/celix/site/trunk/content/celix/css/celix.css   (with props)
    incubator/celix/site/trunk/content/celix/css/pygments.css   (with props)
    incubator/celix/site/trunk/content/celix/css/superfish.css   (with props)
    incubator/celix/site/trunk/content/celix/documentation/
    incubator/celix/site/trunk/content/celix/documentation.mdtext
    incubator/celix/site/trunk/content/celix/documentation/buildingandrunning-links.mdtext
    incubator/celix/site/trunk/content/celix/documentation/buildingandrunning.mdtext
    incubator/celix/site/trunk/content/celix/documentation/design.mdtext
    incubator/celix/site/trunk/content/celix/documentation/examples.mdtext
    incubator/celix/site/trunk/content/celix/download-links.mdtext
    incubator/celix/site/trunk/content/celix/download.mdtext
    incubator/celix/site/trunk/content/celix/examples/
    incubator/celix/site/trunk/content/celix/examples/helloworld-links.mdtext
    incubator/celix/site/trunk/content/celix/examples/helloworld.mdtext
    incubator/celix/site/trunk/content/celix/images/
    incubator/celix/site/trunk/content/celix/images/Chevron.gif   (with props)
    incubator/celix/site/trunk/content/celix/images/ChevronOverlay.png   (with props)
    incubator/celix/site/trunk/content/celix/images/IconHome.gif   (with props)
    incubator/celix/site/trunk/content/celix/images/arrows-ffffff.png   (with props)
    incubator/celix/site/trunk/content/celix/images/shadow.png   (with props)
    incubator/celix/site/trunk/content/celix/index.mdtext
    incubator/celix/site/trunk/content/celix/js/
    incubator/celix/site/trunk/content/celix/js/hoverIntent.js   (with props)
    incubator/celix/site/trunk/content/celix/js/jquery.bgiframe.min.js   (with props)
    incubator/celix/site/trunk/content/celix/js/jquery.dimensions.js   (with props)
    incubator/celix/site/trunk/content/celix/js/jquery.easing.1.3.js   (with props)
    incubator/celix/site/trunk/content/celix/js/jquery.gradient.js   (with props)
    incubator/celix/site/trunk/content/celix/js/jquery.hoverIntent.js   (with props)
    incubator/celix/site/trunk/content/celix/js/jquery.jBreadCrumb.1.1.js   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/changelog.txt   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-navbar.css   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish-vertical.css   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/css/superfish.css   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/example.html   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/arrows-ffffff.png   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/images/shadow.png   (with props)
    incubator/celix/site/trunk/content/celix/js/superfish-1.4.8/js/
    incubator/celix/site/trunk/content/celix/js/superfish.js   (with props)
    incubator/celix/site/trunk/content/celix/js/supersubs.js   (with props)
    incubator/celix/site/trunk/content/celix/links.mdtext
    incubator/celix/site/trunk/content/celix/support/
    incubator/celix/site/trunk/content/celix/support/issuetracking.mdtext
    incubator/celix/site/trunk/content/celix/support/links.mdtext
    incubator/celix/site/trunk/content/celix/support/mailinglist.mdtext
    incubator/celix/site/trunk/content/celix/support/support.mdtext

Added: incubator/celix/site/trunk/content/celix/background-links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/background-links.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/background-links.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/background-links.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,13 @@
+
+## Useful Links
+- [Dynamic Loading](http://en.wikipedia.org/wiki/Dynamic_loading)
+    - [Posix Dynamic Linking](http://www.opengroup.org/onlinepubs/000095399/basedefs/dlfcn.h.html)
+    - [Windows Dynamic Linking](http://msdn.microsoft.com/en-us/library/ms682589%28v=vs.85%29.aspx)
+- [OSGi](http://www.osgi.org/Main/HomePage)
+    - [OSGi Specification](http://www.osgi.org/Specifications/HomePage)
+    - [Apache Felix](http://felix.apache.org/site/index.html)
+- [Apache Incubator](http://incubator.apache.org/)
+    - [Celix Status](http://incubator.apache.org/projects/celix.html)
+    - [Celix Proposal](http://wiki.apache.org/incubator/CelixProposal)
+- [Apache Foundation](http://www.apache.org/)
+    - [How It Works](http://www.apache.org/foundation/how-it-works.html)
\ No newline at end of file

Added: incubator/celix/site/trunk/content/celix/background.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/background.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/background.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/background.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,47 @@
+Title: Background
+Links: background-links.mdtext
+
+Celix started during the summer of 2010 as a simple project to see if it is possible to dynamically load libraries 
+(at runtime) in C. After some initial testing and searching this is supported out of the box using Dynamic Loading.
+
+Since Dynamic Loading only solves how libraries can be loaded and used, a framework has to be made to integrate it in.
+For Java such frameworks exists, with OSGi being one of the leading specifications. OSGi provides guidelines for 
+services, dynamic behavior, bundling, deployment etc. But the OSGi specification is targeted specifically 
+to Java, and can not be used for C.
+
+Celix focuses on adapting and implementing the OSGi specification in C. While the concepts of OSGi can be mapped,
+, relatively easy, on C, it is not possible to plainly implement the specification. Several key aspects rely on Java, 
+and for C alternatives had to be found:
+
+- Service Interfaces
+
+    OSGi uses Java Interfaces to describe and expose a service, without exposing the actual implementation. While in C 
+  it is possible to describe a service in a header file, it is not possible to expose this service. To be able to expose
+  services in C a struct with function pointers is used. An activator is responsible for filling these pointer, after
+  which the struct is registered as a service.
+  
+- Deployment
+
+    OSGi uses bundles (which are actually jar files) to deploy one or more services. Bundles contain the libraries, 
+  resources and additionally a manifest file describing the content of the bundle.
+  In C libraries contain only the Objects compiled out of the source. It is not possible to add resources (and the 
+  manifest). To be able to have useful bundles, a zip file is used in which the library and resources are packed.
+  
+- Exported Packages
+
+    OSGi uses packages to export services and types. Since C doesn't have packages/namespaces
+  it is not possible to export a group of services via a package. Instead, the actual service is exported, and 
+  additional types can be used using the definition of the type.
+  
+After identifying and solving these problems, it was possible to create a framework following most of the OSGi 
+specification. Since there are several Open Source OSGi implementation, it made sense to look at these as either a guide
+or a source for porting generic behavior. As such, Celix is heavily based on Apache Felix, and several parts are even a 
+direct port of existing Felix code.
+
+With a working prototype, discussion started about how to continue developing Celix. As a generic framework,
+providing middleware for any kind of dynamic system, it made sense to Open Source Celix and try to grow a community
+to support and implement Celix. Since Celix is based on Felix, it was a logical choice to choose Apache as home for it.
+
+In September of 2010 the Celix Proposal was written and published to the Apache Incubator. After some discussion a vote 
+was called for, and Celix was accepted as new Incubator Project. Since then work has begun to grow a community, increase
+awereness and implement Celix.

Added: incubator/celix/site/trunk/content/celix/celix-links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/celix-links.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/celix-links.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/celix-links.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,9 @@
+
+## Useful Links
+- [OSGi](http://www.osgi.org/Main/HomePage)
+    - [OSGi Specification](http://www.osgi.org/Specifications/HomePage)
+- [Apache Incubator](http://incubator.apache.org/)
+    - [Celix Status](http://incubator.apache.org/projects/celix.html)
+    - [Celix Proposal](http://wiki.apache.org/incubator/CelixProposal)
+- [Apache Foundation](http://www.apache.org/)
+    - [How It Works](http://www.apache.org/foundation/how-it-works.html)
\ No newline at end of file

Added: incubator/celix/site/trunk/content/celix/celix.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/celix.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/celix.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/celix.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,11 @@
+Title: About Celix
+Links: celix-links.mdtext
+
+Celix is an implementation of the OSGi specification adapted to C. It will follow the API as close as possible, 
+but since the OSGi specification is written primarily for Java, there will be differences (Java is OO, C is procedural). 
+An important aspect of the implementation is interoperability between Java and C. 
+This interoperability is achieved by porting and implementing the Remote Services specification in Celix.
+
+Celix entered incubation in November 2010 and is just getting started.
+
+More information about the history and background of Celix can be read here: [Background](/celix/background.html) 

Added: incubator/celix/site/trunk/content/celix/community/boardreports/boardreports.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/community/boardreports/boardreports.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/community/boardreports/boardreports.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/community/boardreports/boardreports.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,72 @@
+Title: Board Reports
+Links: /community/boardreports/reports.mdtext
+
+To monitor incubator project, the Apache Software Foundation board holds monthly meetings.
+For these meetings a board report must be delivered to the Incubator PMC.
+
+On this page the reports for Celix are shown.
+
+## [2011-02](http://wiki.apache.org/incubator/February2011)
+
+= Celix =
+
+Celix is an implementation of the OSGi Specification in C.
+
+Celix entered incubation on November 2, 2010.
+
+A new structure for the project has been used for the framework. In this structure public and private files are 
+separated. This structure has not yet been applied to all "sub" project in Celix.
+We are also looking at Apache APR for OS abstraction. Using APR would involve replacing all file handing, threading 
+etc with APR functions.
+
+Finally, work is being done for the talk on the EclipseCon.
+
+Most important issues are:
+
+Add more information to the wiki (ongoing process)
+Move all "sub" project to the new structure.
+Use APR for all file handling, threading etc.
+
+Signed off by mentor:
+
+## [2011-01](http://wiki.apache.org/incubator/January2011)
+
+= Celix =
+
+Celix is an implementation of the OSGi Specification in C.
+
+Celix entered incubation on November 2, 2010.
+
+Currently the source tree is being cleaned and correct header information is being added. We are also looking at the 
+project structure and how it can be changed to get a better/simpler overview. Most important aspect is separating the 
+actual framework from the additional bundles.
+
+Additionally, last December a proposal for a Celix talk was sent to, and accepted by the EclipseCon/OSGi DevCon. This 
+provides a great opportunity to increase awareness and build a community.
+
+Most important issues are:
+
+    Add more information to the wiki (ongoing process)
+    Cleanup project, rearrange structure
+    Generate awareness and grow a community!
+
+Signed off by mentor: marrs 
+
+## [2010-12](http://wiki.apache.org/incubator/December2010)
+
+= Celix =
+
+Celix is an implementation of the OSGi Specification in C.
+
+Celix entered incubation on November 2, 2010.
+
+As we are just accepted into the Incubator, startup is in progress. The donated code has been committed to 
+SVN, and the project site is being created.
+
+Most important issues are:
+
+    Get everything (Jira, SVN, Website etc) up and running
+    Cleanup code
+    Generate awareness and grow a community.
+
+Signed off by mentor: marrs

Added: incubator/celix/site/trunk/content/celix/community/boardreports/reports.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/community/boardreports/reports.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/community/boardreports/reports.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/community/boardreports/reports.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,4 @@
+
+## Links
+- [Apache Incubator Wiki](http://wiki.apache.org/incubator/)
+    - [Reporting Schedule](http://wiki.apache.org/incubator/ReportingSchedule)

Added: incubator/celix/site/trunk/content/celix/community/community.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/community/community.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/community/community.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/community/community.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,15 @@
+Title: Celix Community
+Links: /community/links.mdtext
+
+Celix is a community driven project, where everyone is free to download and use it. Besides using Celix we encourage 
+everyone to participate in the development. This can be as simple as providing feedback and reporting bugs but could as 
+well mean bug fixes and code contributions.
+
+- [Contribute](/celix/community/contributing/contributing.html)
+
+Since Celix is still in incubation at the Apache Incubator, the status has to be reported to the Incubator PMC. These
+reports are also available on this site.
+
+- [Board Reports](/celix/community/boardreports/boardreports.html)
+
+

Added: incubator/celix/site/trunk/content/celix/community/contributing/contributing.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/community/contributing/contributing.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/community/contributing/contributing.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/community/contributing/contributing.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,10 @@
+Title: Contributing
+Links: /community/contributing/links.mdtext
+
+The Celix community is open for everyone to participate in. Discussions are done over the 
+[mailing lists](/celix/support/mailinglist.html), and [issues](/celix/support/issuetracking.html) can be created and 
+seen by everyone.
+
+If you would like to join the Celix community, a good start would be to follow the mailing list and participate in the 
+discussions, use Celix and report bugs you find, possibly with patches.
+

Added: incubator/celix/site/trunk/content/celix/community/contributing/links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/community/contributing/links.mdtext?rev=1071224&view=auto
==============================================================================
    (empty)

Added: incubator/celix/site/trunk/content/celix/community/links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/community/links.mdtext?rev=1071224&view=auto
==============================================================================
    (empty)

Added: incubator/celix/site/trunk/content/celix/css/Base.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/css/Base.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/css/Base.css (added)
+++ incubator/celix/site/trunk/content/celix/css/Base.css Wed Feb 16 12:26:40 2011
@@ -0,0 +1,231 @@
+/* Float Clearing
+ ---------------------------------------------------------------------*/
+
+.module:after
+{
+	clear: both;
+	content: ".";
+	display: block;
+	height: 0;
+	visibility: hidden;
+}
+
+/* float clearing for IE6 */
+* html .module
+{
+	height: 1%;
+	overflow: visible;
+}
+
+/* float clearing for IE7 */
+* + html .module
+{
+	min-height: 1%;
+}
+
+
+/* General Typography
+ ---------------------------------------------------------------------*/
+html, body
+{
+	font-size: 12px;
+	line-height: 21px;
+	color: #444;
+	font-family: Arial, Helvetica, sans-serif;
+	font-style: normal;
+	font-variant: normal;
+	font-weight: normal;
+	background:#f3f3f3;
+}
+
+html > body
+{
+	font-size: 12px;
+	line-height: 21px;
+}
+
+
+h1
+{
+	font-weight: bold;
+	color: #007ac3;
+	font-size: 2em;
+	line-height: 1em;
+	margin: 1.25em 0 .75em 0;
+}
+
+h2
+{
+	color: #1371aa;
+	font-weight: bold;
+	font-size: 1.6666em;
+	line-height: 1em;
+	margin: 1.25em 0 .75em 0;
+}
+
+h3
+{
+	color: #1371aa;
+	font-size: 1.41667em;
+	line-height: 1em;
+	font-weight: bold;
+	margin: 1.25em 0 .75em 0;
+}
+
+h4
+{
+	color: #000;
+	font-size: 1.1667em;
+	line-height: 1em;
+	font-weight: bold;
+	margin: 1.25em 0 .5em 0;
+}
+
+h5
+{
+	color: #000;
+	font-size: 1em;
+	line-height: 1em;
+	font-weight: bold;
+	margin: 1.25em 0 .5em 0;
+}
+
+h6
+{
+	color: #000;
+	font-size: 1em;
+	line-height: 1em;
+	font-weight: bold;
+	margin: 1.25em 0 .5em 0;
+}
+
+strong
+{
+	font-weight: bold;
+}
+
+em
+{
+	font-style: italic;
+	line-height: 1.75em;
+}
+
+p
+{
+	font-size: 1em;
+	line-height: 1.75em;
+	margin: .25em 0 1.5em;
+}
+td, td a, th, th a, span
+{
+	line-height: 1.3333em;
+}
+
+blockquote
+{
+	margin: .416em 0 .416em 1.1667em;
+}
+
+a
+{
+	color: #0e82c7;
+	text-decoration: none;
+	font-size: inherit;
+	font-weight: inherit;
+}
+
+a:hover
+{
+	text-decoration: underline;
+}
+
+ul, ol
+{
+	margin: .833em 0;
+	padding-left: 2em;
+}
+ul
+{
+	list-style-type: disc;
+}
+ol
+{
+	list-style-type: decimal;
+}
+ul li, ol li
+{
+	line-height: 1.5em;
+}
+
+dt
+{
+	margin: .416em 0 0 0;
+}
+
+dd
+{
+	margin: .416em 0 .416em 1.1667em;
+}
+
+pre, code, tt
+{
+	font-family: "Andale Mono" , "Lucida Console" , "Courier New" , Courier, monospace;
+	margin: .833em 0;
+}
+sub
+{
+	vertical-align: sub;
+	font-size: smaller;
+	line-height:inherit;
+}
+
+sup
+{
+	vertical-align: super;
+	font-size: smaller;
+	line-height:inherit;
+}
+
+/* Page Specific
+ ---------------------------------------------------------------------*/
+
+#container 
+{
+
+margin:0 auto 10px;
+text-align:left;
+width:1000px;
+}
+.breadCrumbHolder
+{
+	margin:0 0 20px 0;
+}
+pre
+{
+	background:#ddd;
+	border:solid 1px #fff;
+	padding:10px;
+	color:#111;
+}
+.description
+{
+	float:left;
+	width:700px;
+	margin-right:20px;
+}
+.sideBar
+{
+	float:left;
+	background:#fff;
+	border:solid 1px #dedede;
+	padding:20px;
+	width:238px;
+	margin:50px 0 0 0;
+}
+.license p
+{
+	font-size:0.83333em;
+	color:#888;
+}
+
+

Propchange: incubator/celix/site/trunk/content/celix/css/Base.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/css/BreadCrumb.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/css/BreadCrumb.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/css/BreadCrumb.css (added)
+++ incubator/celix/site/trunk/content/celix/css/BreadCrumb.css Wed Feb 16 12:26:40 2011
@@ -0,0 +1,109 @@
+/* Float Clearing
+ ---------------------------------------------------------------------*/
+
+.module:after
+{
+	clear: both;
+	content: ".";
+	display: block;
+	height: 0;
+	visibility: hidden;
+}
+
+/* float clearing for IE6 */
+* html .module
+{
+	height: 1%;
+	overflow: visible;
+}
+
+/* float clearing for IE7 */
+* + html .module
+{
+	min-height: 1%;
+}
+
+/* Breadcrumb Styles
+ ---------------------------------------------------------------------*/
+
+.breadCrumb
+{
+	margin: 0;
+	padding: 0;
+	float: left;
+	display: block;
+	height: 21px;
+	overflow: hidden;
+	width: 990px;
+	padding:5px;
+	border:solid 1px #dedede;
+	background:#fff;
+}
+.breadCrumb ul
+{
+	margin: 0;
+	padding: 0;
+	height: 21px;
+	display: block;
+}
+.breadCrumb ul li
+{
+	display: block;
+	float: left;
+	position: relative;
+	height: 21px;
+	overflow: hidden;
+	line-height: 21px;
+	margin: 0px 6px 0px 0;
+	padding: 0px 10px 0px 0;
+	font-size: .9167em;
+	background: url(../images/Chevron.gif) no-repeat 100% 0;
+}
+.breadCrumb ul li div.chevronOverlay
+{
+	position: absolute;
+	right: 0;
+	top: 0;
+	z-index: 2;
+}
+.breadCrumb ul li span
+{
+	display: block;
+	overflow: hidden;
+}
+.breadCrumb ul li a
+{
+	display: block;
+	position: relative;
+	height: 21px;
+	line-height: 21px;
+	overflow: hidden;
+	float: left;
+}
+.breadCrumb ul li.first a
+{
+	height: 16px !important;
+	text-indent:-1000em;
+	width:16px;
+	padding: 0;
+	margin-top: 2px;
+	overflow: hidden;
+	background:url(../images/IconHome.gif) no-repeat 0 0;
+}
+.breadCrumb ul li.first a:hover
+{
+	background-position: 0 -16px;
+}
+.breadCrumb ul li.last
+{
+	background: none;
+	margin-right: 0;
+	padding-right: 0;
+}
+.chevronOverlay
+{
+	display: none;
+	background: url(../images/ChevronOverlay.png) no-repeat 100% 0;
+	width: 13px;
+	height: 20px;
+}

Propchange: incubator/celix/site/trunk/content/celix/css/BreadCrumb.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/css/celix.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/css/celix.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/css/celix.css (added)
+++ incubator/celix/site/trunk/content/celix/css/celix.css Wed Feb 16 12:26:40 2011
@@ -0,0 +1,259 @@
+/*
+ - 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.
+*/
+pre {
+    white-space: pre-wrap; /* css-3 */
+	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+	white-space: -pre-wrap; /* Opera 4-6 */
+	white-space: -o-pre-wrap; /* Opera 7 */
+	word-wrap: break-word; /* Internet Explorer 5.5+ */
+}
+.codehilitetable {
+    margin-left: 1em;
+    margin-right: 1em;
+}
+.codehilite {
+	margin-left: 1em;
+	padding-left: 5px;
+	padding-right: 5px;
+	padding-top: 5px;
+	border: thin;
+	border-style: dashed;
+}
+.codehilitetable .codehilite {
+	margin-left: 0;
+	margin-right: 0;
+	border: none;
+} 
+#breadCrumbHolder
+{
+    margin:0 0 20px 0;
+}
+.breadCrumb
+{
+    width: 100%;
+}
+html {
+    text-align: left; 
+    overflow-y: scroll; 
+    background-color: transparent; 
+    margin: 0px
+}
+body {
+    text-align: left; 
+    background-color: #f3f3f3;
+    margin: 10px 15% 0px; 
+    font-family: verdana, helvetica, clean, sans-serif, 'sans', serif; 
+    color: #222222;
+}
+h1 {
+    color: #0c588c
+}
+h2 {
+    color: #0c588c
+}
+h3 {
+    color: #0c588c
+}
+h4 {
+    color: #0c588c
+}
+h5 {
+    color: #0c588c
+}
+h6 {
+    color: #0c588c
+}
+h1 {
+    margin-top: 0.5em; font-size: 2em
+}
+h2 {
+    font-size: 1.75em
+}
+h3 {
+    font-size: 1.5em
+}
+h4 {
+    font-size: 1.35em; font-weight: bold
+}
+h5 {
+    font-size: 1.15em; font-weight: bold
+}
+h6 {
+    font-size: 1em; font-weight: bold
+}
+a {
+    color: #1b4085; text-decoration: none
+}
+a:hover {
+    color: #477ddf; text-decoration: underline
+}
+.rc {
+    border-radius: 8px; -webkit-border-radius: 8px; -moz-border-radius: 8px;
+}
+#headerimage {
+    padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; float: left; padding-top: 0.5em
+}
+#navbar div {
+    padding: 0;
+    clear: both;
+}
+#navbar ul:first-child {
+    width: 100%; 
+    background: #2cb9ec;
+    border-radius: 8px; -webkit-border-radius: 8px; -moz-border-radius: 8px;
+}
+.sf-menu a {
+    border-left: none; 
+    padding-bottom: 0.75em; 
+    padding-left: 2em; 
+    padding-right: 2em;
+    padding-top: 0.75em; 
+    border-top: medium none; 
+    font-weight: bold; 
+    text-decoration: none; 
+}
+.sf-menu li li a {
+    font-weight: bold; 
+    color: #f2f1ff
+}
+.sf-menu a {
+	border-left: none;
+    color: #f2f1ff
+}
+.sf-menu a:visited {
+    color: #f2f1ff
+}
+.sf-menu li {
+    background: none transparent;
+}
+.sf-menu li li {
+	font-weight: bold;
+	color: #f2f1ff;
+    background: none transparent scroll repeat 0% 0%;
+}
+.sf-menu li li:first-child {
+    -moz-border-radius-topright: 8px;
+    -webkit-border-top-right-radius: 8px;
+}
+.sf-menu li li:last-child {
+    -moz-border-radius-bottomleft: 8px;
+    -webkit-border-bottom-left-radius: 8px;
+}
+.sf-menu li ul {
+    background: #2cb9ec;
+}
+.sf-menu li li li {
+	font-weight: bold;
+	color: #f2f1ff;
+    background: none transparent scroll repeat 0% 0%;
+}
+.sf-menu li:hover {
+    outline-style: none; outline-color: invert; outline-width: 0px; background: #0c588c;
+    border-radius: 8px; -webkit-border-radius: 8px; -moz-border-radius: 8px;
+}
+.sf-menu li.sfhover {
+    outline-style: none; outline-color: invert; outline-width: 0px; background: #0c588c;
+    border-radius: 8px; -webkit-border-radius: 8px; -moz-border-radius: 8px;
+}
+.sf-menu a:focus {
+    outline-style: none; outline-color: invert; outline-width: 0px; background: none;
+}
+.sf-menu a:hover {
+    outline-style: none; outline-color: invert; outline-width: 0px; background: none
+}
+.sf-menu a:active {
+    outline-style: none; outline-color: invert; outline-width: 0px; background: none
+}
+#center {
+    padding-bottom: 0px; padding-left: 3em; padding-right: 3em; padding-top: 0px
+}
+#main {
+}
+#homecenter {
+    width: 100%
+}
+#homecenter > div {
+}
+#homeleft {
+    margin-top: 0px; width: 70%; float: left;
+}
+#homeleft > h2:first-child {
+    margin-top: 0px
+}
+#homeleft div h3 {
+    margin: 0px 0px 0.4em; 
+    padding-left: 1.5em; 
+    white-space: nowrap; 
+    background: url(../images/shiro_bullet_24x24.png) no-repeat left center
+}
+#homeright {
+    padding-bottom: 0px; padding-left: 0px; width: 28%; padding-right: 0px; float: right; padding-top: 0px;
+    border-left: thin;
+    border-left-color: #0c588c;
+    border-left-style: solid;
+}
+#download {
+    text-align: left; 
+    padding-bottom: 0; 
+    padding-left: 1.5em; 
+    padding-right: 1.5em; 
+    padding-top: 0;
+}
+#download ul {
+	padding: 0;
+	padding-left: 1em;
+	padding-bottom: 1em; 
+	margin: 0;
+}
+#download li {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+}
+#download h2 {
+    padding-bottom: 0.15em; 
+    margin: 0px; 
+    padding-left: 1.5em; 
+    padding-right: 0.15em; 
+    font-size: 1.2em; 
+    font-weight: bold; 
+    padding-top: 0.15em;
+    background: url(../images/celix_notext.png) no-repeat left center;
+    background-size: 20px;
+}
+#footer {
+    text-align: center; 
+    font-size: x-small;
+    font-style: italic;
+    padding-bottom: 10px; 
+    padding-left: 10px; 
+    padding-right: 10px; 
+    padding-top: 10px;
+    clear: both;
+}
+.sf-shadow ul {
+    padding: 0 0 0 0;
+    -moz-border-radius-bottomleft: 8px;
+    -moz-border-radius-bottomright: 8px;
+    -moz-border-radius-topright: 8px;
+    -webkit-border-top-right-radius: 8px;
+    -webkit-border-bottom-left-radius: 8px;
+    -webkit-border-bottom-right-radius: 8px;
+}
+

Propchange: incubator/celix/site/trunk/content/celix/css/celix.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/css/pygments.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/css/pygments.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/css/pygments.css (added)
+++ incubator/celix/site/trunk/content/celix/css/pygments.css Wed Feb 16 12:26:40 2011
@@ -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 */

Propchange: incubator/celix/site/trunk/content/celix/css/pygments.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/css/superfish.css
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/css/superfish.css?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/css/superfish.css (added)
+++ incubator/celix/site/trunk/content/celix/css/superfish.css Wed Feb 16 12:26:40 2011
@@ -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;
+}

Propchange: incubator/celix/site/trunk/content/celix/css/superfish.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/documentation.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/documentation.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/documentation.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/documentation.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,8 @@
+Title: Documentation
+
+Currently the documentation for Celix contains information about building and running Celix, as well as some examples.
+
+- [Building and Running Celix](/celix/documentation/buildingandrunning.html)
+- [Design](/celix/documentation/design.html)
+- [Examples](/celix/documentation/examples.html)
+    - [Hello World Example](/celix/examples/helloworld.html)

Added: incubator/celix/site/trunk/content/celix/documentation/buildingandrunning-links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/documentation/buildingandrunning-links.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/documentation/buildingandrunning-links.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/documentation/buildingandrunning-links.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,11 @@
+
+## Requirements
+- CMake (2.8.1)
+- GCC (4.2.1)
+- GNU Make (3.81)
+- ZLib
+- CUnit
+- Celix Source
+
+## Useful Links
+- [CMake Documentation](http://www.cmake.org/cmake/help/documentation.html)
\ No newline at end of file

Added: incubator/celix/site/trunk/content/celix/documentation/buildingandrunning.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/documentation/buildingandrunning.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/documentation/buildingandrunning.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/documentation/buildingandrunning.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,84 @@
+Title: Building and Running
+Links: documentation/buildingandrunning-links.mdtext
+
+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
+
+To be able to build Celix, the following is needed:
+    
+    :::text
+    CMake (2.8.1)
+    GNU Make (3.81)
+    GCC (4.2.1)
+    ZLib
+    CUnit
+    Celix sources
+
+## Building
+
+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.
+
+    // First extract the sources
+    tar -xvzf celix.tar.gz
+    cd celix
+    
+    // Create and go to the build directory
+    mkdir build
+    cd build
+
+    // Generate the make files in the current directory
+    cmake ..
+
+After generating the make files, the sources can be build. There are several build targets to build the libraries, deploy the bundles and package archives.
+
+    // Build all libraries
+    make
+    // Create all bundles in the "bundles" directory
+    make bundles
+    // Create all targets in the "deploy" directory
+    make deploy
+    // Create archives in the "packages" directory
+    make packages
+
+## Bundles
+
+In Celix a bundle is a library packed in a zip file. Libraries are created using the standard CMake commands (add_library etc).
+The actual bundle is created using the "bundle" command.
+To export files (eg a header file describing the service), a package is created using the "package" command.
+
+    add_library(bundleName SHARED sourcefile1 sourcefile2)
+    include_directories("${PROJECT_SOURCE_DIR}/includeDir")
+    target_link_libraries(bundleName libraryName)
+
+    bundle(bundleName)
+    package(bundleName FILES exportedHeader.h)
+
+## Targets
+
+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:
+
+    deploy("targetName" BUNDLES bundle1 bundle2)
+
+A target is deployed to the build/deploy/{targetName} directory.
+
+## Running
+
+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:
+
+Linux
+
+    export LD_LIBRARY_PATH={build_root}/celix
+
+Mac
+
+    export DYLD_LIBRARY_PATH={build_root}/celix
+
+If the library path is set, the launcher can be started.
+
+\{build_root\}/launcher/launcher
+

Added: incubator/celix/site/trunk/content/celix/documentation/design.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/documentation/design.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/documentation/design.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/documentation/design.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,62 @@
+Title: Celix Design
+
+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.
+
+The following important differences are:
+
+- [Services and Service Interfaces](#services_and_service_interfaces)
+- [Objects and Object State](#objects_and_object_state)
+- [Namespaces](#namespaces)
+- [Imported and Exported Packages](#imported_and_exported_packages)
+- [Exception Handling](#exception_handling)
+
+## Services and Service Interfaces
+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.
+
+## Object and Object State
+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.
+
+## Namespaces
+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.
+
+Function in C:
+
+    :::c
+    SERVICE_REGISTRATION bundleContext_registerService(BUNDLE_CONTEXT context, char * serviceName, void * svcObj, HASHTABLE properties);
+    
+Method in Java:
+
+    :::java
+    public ServiceRegistration registerService(String clazz, Object service, Dictionary properties);
+
+## Imported and Exported Packages
+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.
+
+## Exception Handling
+OSGi uses exceptions to report errors and problems. To be able to handle this in C there are two options:
+
+- Return a status
+
+    This requires that each method must return an integer which indicates the state. For returned pointers/values (OUT) 
+    call-by-reference must be used.
+
+- Use an exception handling interface for C
+  
+    There are several exception handling solutions available for C. They all introduce a try/catch mechanism. This makes 
+    it possible to follow the OSGi spec more closely, without letting each function explicitly return a state. 
+    (for example http://www.nicemice.net/cexcept/)

Added: incubator/celix/site/trunk/content/celix/documentation/examples.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/documentation/examples.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/documentation/examples.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/documentation/examples.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,5 @@
+Title: Examples
+
+The following examples are available:
+
+- [Hello World](/celix/examples/helloworld.html)
\ No newline at end of file

Added: incubator/celix/site/trunk/content/celix/download-links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/download-links.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/download-links.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/download-links.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,7 @@
+
+## Useful Links
+- [Apache Version Control](http://www.apache.org/dev/version-control.html)
+    - [Celix ViewVC](http://svn.apache.org/viewvc/incubator/celix/)
+    - [Celix Repository](https://svn.apache.org/repos/asf/incubator/celix)
+- [Subversion](http://subversion.apache.org/)
+    - [Version Control with Subversion](http://svnbook.red-bean.com/)

Added: incubator/celix/site/trunk/content/celix/download.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/download.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/download.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/download.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,17 @@
+Title: Download Celix
+Links: download-links.mdtext
+
+Since Celix is in early development, there are no releases yet. To take a look at the source code or use Celix, the source needs to be 
+checked out from Subversion.
+
+## Subversion
+Celix source can be browsed via ViewVC:
+<http://svn.apache.org/viewvc/incubator/celix/>
+
+To check out the source, any recent Subversion client can be used. The public repository can be accessed via:
+<http://svn.apache.org/repos/asf/incubator/celix>
+
+For example, checking out Celix using the SVN command line client can be done using:
+
+    :::console
+    svn co http://svn.apache.org/repos/asf/incubator/celix/trunk/ celix

Added: incubator/celix/site/trunk/content/celix/examples/helloworld-links.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/examples/helloworld-links.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/examples/helloworld-links.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/examples/helloworld-links.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,6 @@
+
+## Useful Links
+- [Example Source](https://svn.apache.org/repos/asf/incubator/celix/trunk/hello_world)
+- [Building and Running Celix](/celix/buildingandrunning.html)
+
+- [CMake Documentation](http://www.cmake.org/cmake/help/documentation.html)

Added: incubator/celix/site/trunk/content/celix/examples/helloworld.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/examples/helloworld.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/examples/helloworld.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/examples/helloworld.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,122 @@
+Title: Hello World Example
+Links: examples/helloworld-links.mdtext
+
+The HelloWorld example shows how to create a simple activator that prints a message when starting/stopping the bundle. 
+To show how data can be stored by the activator a data struct is created which is passed to all calls made from the 
+framework to the activator.
+
+## Activator
+To be able to start or stop a bundle an activator is needed. In Celix an activator has to implement the 
+"bundle_activator.h" header. This header contains the following templates:
+
+- bundleActivator_create()
+- bundleActivator_start(void * data, BUNDLE_CONTEXT ctx)
+- bundleActivator_stop(void * data, BUNDLE_CONTEXT ctx)
+
+These functions will be implemented in a file called activator.c:
+
+    #!c
+    #include <stdlib.h>
+    #include <stdio.h>
+
+    #include "bundle_activator.h"
+
+## Create
+The create function is used to create the data object for the activator. In this data object the service registration 
+etc can be stored. It is possible to return NULL.
+The HelloWorld example uses a data struct to store a string which is printed during the start and stop function.
+
+    #!c
+    struct userData {
+        char * word;
+    };
+    
+    void * bundleActivator_create() {
+        struct userData * data = malloc(sizeof(*data));
+        data->word = "World";
+        return data;
+    }
+
+## Start
+The start function is the entry point of the bundle. After installing the bundle, the framework calls the start 
+function to actually start the bundle. In the HelloWorld example it only prints a message using the data from the 
+userData struct.
+
+    #!c
+    void bundleActivator_start(void * userData, BUNDLE_CONTEXT context) {
+        struct userData * data = (struct userData *) userData;
+        printf("Hello %s\n", data->word);
+    
+    }
+
+## Stop
+The stop function is called when the bundle is stopped.
+
+    #!c
+    void bundleActivator_stop(void * userData, BUNDLE_CONTEXT context) {
+        struct userData * data = (struct userData *) userData;
+        printf("Goodbye %s\n", data->word);
+    }
+
+## Manifest
+In Celix manifest files are used to describe a service. For example a symbolic name, the version but also exported (provided) or imported (required) services and the name of the library contained in a bundle. Every bundle requires a manifest file, and this file must be located in the MANIFEST directory and called MANIFEST.MF.
+For the HelloWorld example a simple Manifest file is needed with a symbolic name, version and library name.
+
+    #!c
+    Bundle-SymbolicName: hello_world
+    Bundle-Version: 1.0.0
+    library: hello_world
+
+## Bundle
+Finally, to build the library and create the bundle, a CMake build file is needed. In this build file the library is created from the source code, includes can be given, link libraries can be defined and the bundle is created.
+
+    #!c
+    add_library(hello_world SHARED activator)
+    include_directories("${PROJECT_SOURCE_DIR}/celix")
+    target_link_libraries(hello_world framework)
+    
+    bundle(hello_world)
+
+In the top level CMake file the HelloWorld make file has to be included. This depends on the location of the HelloWorld example.
+Top Level CMakeList.txt
+
+    add_subdirectory(hello_world)
+
+## Target
+To be able to use bundles a configuration is needed. This configuration contains a list of bundles to start. Celix contains a CMake macro to simply the process of create such configuration.
+The target macro can be called with a name and a list of bundles. The build creates the configuration file and copies the bundles to a directory with the same name as the target.
+The HelloWorld bundle is included, as well as a shell. The shell is used to be able to list and stop/start installed bundles.
+Targets are defined in the target.cmake file in the root of the project.
+target.cmake
+
+    deploy("hello_world" BUNDLES hello_world shell shell_tui)
+
+## Building
+After creating the build files, the bundle and target must be build/created. Building and running is explained in detail on Building and Running Celix.
+For the HelloWorld example the following steps need to be executed from the root of the project. It is assumed that the environment is setup properly.
+
+    mkdir build
+    cd build
+    cmake ..
+    make deploy
+    cd deploy/hello_world
+    ../../launcher/launcher
+
+After starting the launcher, "Hello World" is printed and the Celix shell is visible.
+In the shell the "ps" command can be used to print a list of running bundles.
+
+    -> ps
+      ID    State        Name
+      1     Active       hello_world
+      3     Active       shell_tui
+      2     Active       shell
+      0     Active       framework
+
+There is also a stop and start command. Stopping the hello_world bundle will print "Goodbye World", and starting it again "Hello World".
+
+    -> stop 1
+    Goodbye World
+    -> start 1
+    Hello World
+
+The executable can be stopped using "ctrl-c". This will interrupt the process, stop and uninstall all bundles and exit the process.
\ No newline at end of file

Added: incubator/celix/site/trunk/content/celix/images/Chevron.gif
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/images/Chevron.gif?rev=1071224&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/celix/site/trunk/content/celix/images/Chevron.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/celix/site/trunk/content/celix/images/ChevronOverlay.png
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/images/ChevronOverlay.png?rev=1071224&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/celix/site/trunk/content/celix/images/ChevronOverlay.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/celix/site/trunk/content/celix/images/IconHome.gif
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/images/IconHome.gif?rev=1071224&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/celix/site/trunk/content/celix/images/IconHome.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/celix/site/trunk/content/celix/images/arrows-ffffff.png
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/images/arrows-ffffff.png?rev=1071224&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/celix/site/trunk/content/celix/images/arrows-ffffff.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/celix/site/trunk/content/celix/images/shadow.png
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/images/shadow.png?rev=1071224&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/celix/site/trunk/content/celix/images/shadow.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/celix/site/trunk/content/celix/index.mdtext
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/index.mdtext?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/index.mdtext (added)
+++ incubator/celix/site/trunk/content/celix/index.mdtext Wed Feb 16 12:26:40 2011
@@ -0,0 +1,21 @@
+Title: Welcome to Apache Celix (incubating)
+Links: links.mdtext
+
+Celix is an implementation of the OSGi specification adapted to C. It will follow the API as close as possible, 
+but since the OSGi specification is written primarily for Java, there will be differences (Java is OO, C is procedural). 
+An important aspect of the implementation is interoperability between Java and C. 
+This interoperability is achieved by porting and implementing the Remote Services specification in Celix.
+
+
+Celix entered incubation in November 2010 and is just getting started. Short term goals include:
+
+- Working towards a release
+- Generate awareness
+- Grow a community
+
+## Incubation
+Apache Celix is an effort undergoing incubation at The Apache Software Foundation (ASF), 
+sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review 
+indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent
+with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or 
+stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
\ No newline at end of file

Added: incubator/celix/site/trunk/content/celix/js/hoverIntent.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/hoverIntent.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/hoverIntent.js (added)
+++ incubator/celix/site/trunk/content/celix/js/hoverIntent.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,84 @@
+(function($){
+	/* hoverIntent by Brian Cherne */
+	$.fn.hoverIntent = function(f,g) {
+		// default configuration options
+		var cfg = {
+			sensitivity: 7,
+			interval: 100,
+			timeout: 0
+		};
+		// override configuration options with user supplied object
+		cfg = $.extend(cfg, g ? { over: f, out: g } : f );
+
+		// instantiate variables
+		// cX, cY = current X and Y position of mouse, updated by mousemove event
+		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
+		var cX, cY, pX, pY;
+
+		// A private function for getting mouse position
+		var track = function(ev) {
+			cX = ev.pageX;
+			cY = ev.pageY;
+		};
+
+		// A private function for comparing current and previous mouse position
+		var compare = function(ev,ob) {
+			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+			// compare mouse positions to see if they've crossed the threshold
+			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
+				$(ob).unbind("mousemove",track);
+				// set hoverIntent state to true (so mouseOut can be called)
+				ob.hoverIntent_s = 1;
+				return cfg.over.apply(ob,[ev]);
+			} else {
+				// set previous coordinates for next time
+				pX = cX; pY = cY;
+				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
+				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
+			}
+		};
+
+		// A private function for delaying the mouseOut function
+		var delay = function(ev,ob) {
+			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+			ob.hoverIntent_s = 0;
+			return cfg.out.apply(ob,[ev]);
+		};
+
+		// A private function for handling mouse 'hovering'
+		var handleHover = function(e) {
+			// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
+			var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
+			while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
+			if ( p == this ) { return false; }
+
+			// copy objects to be passed into t (required for event object to be passed in IE)
+			var ev = jQuery.extend({},e);
+			var ob = this;
+
+			// cancel hoverIntent timer if it exists
+			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
+
+			// else e.type == "onmouseover"
+			if (e.type == "mouseover") {
+				// set "previous" X and Y position based on initial entry point
+				pX = ev.pageX; pY = ev.pageY;
+				// update "current" X and Y position based on mousemove
+				$(ob).bind("mousemove",track);
+				// start polling interval (self-calling timeout) to compare mouse coordinates over time
+				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
+
+			// else e.type == "onmouseout"
+			} else {
+				// unbind expensive mousemove event
+				$(ob).unbind("mousemove",track);
+				// if hoverIntent state is true, then call the mouseOut function after the specified delay
+				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
+			}
+		};
+
+		// bind the function to the two event listeners
+		return this.mouseover(handleHover).mouseout(handleHover);
+	};
+	
+})(jQuery);
\ No newline at end of file

Propchange: incubator/celix/site/trunk/content/celix/js/hoverIntent.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/js/jquery.bgiframe.min.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/jquery.bgiframe.min.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/jquery.bgiframe.min.js (added)
+++ incubator/celix/site/trunk/content/celix/js/jquery.bgiframe.min.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,10 @@
+/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * $LastChangedDate: 2007-06-19 20:25:28 -0500 (Tue, 19 Jun 2007) $
+ * $Rev: 2111 $
+ *
+ * Version 2.1
+ */
+(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBe
 fore(document.createElement(html),this.firstChild);});}return this;};if(!$.browser.version)$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1];})(jQuery);
\ No newline at end of file

Propchange: incubator/celix/site/trunk/content/celix/js/jquery.bgiframe.min.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/js/jquery.dimensions.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/jquery.dimensions.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/jquery.dimensions.js (added)
+++ incubator/celix/site/trunk/content/celix/js/jquery.dimensions.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,119 @@
+/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * $LastChangedDate: 2007-12-20 08:46:55 -0600 (Thu, 20 Dec 2007) $
+ * $Rev: 4259 $
+ *
+ * Version: 1.2
+ *
+ * Requires: jQuery 1.2+
+ */
+
+(function($){
+	
+$.dimensions = {
+	version: '1.2'
+};
+
+// Create innerHeight, innerWidth, outerHeight and outerWidth methods
+$.each( [ 'Height', 'Width' ], function(i, name){
+	
+	// innerHeight and innerWidth
+	$.fn[ 'inner' + name ] = function() {
+		if (!this[0]) return;
+		
+		var torl = name == 'Height' ? 'Top'    : 'Left',  // top or left
+		    borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
+		
+		return this.is(':visible') ? this[0]['client' + name] : num( this, name.toLowerCase() ) + num(this, 'padding' + torl) + num(this, 'padding' + borr);
+	};
+	
+	// outerHeight and outerWidth
+	$.fn[ 'outer' + name ] = function(options) {
+		if (!this[0]) return;
+		
+		var torl = name == 'Height' ? 'Top'    : 'Left',  // top or left
+		    borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
+		
+		options = $.extend({ margin: false }, options || {});
+		
+		var val = this.is(':visible') ? 
+				this[0]['offset' + name] : 
+				num( this, name.toLowerCase() )
+					+ num(this, 'border' + torl + 'Width') + num(this, 'border' + borr + 'Width')
+					+ num(this, 'padding' + torl) + num(this, 'padding' + borr);
+		
+		return val + (options.margin ? (num(this, 'margin' + torl) + num(this, 'margin' + borr)) : 0);
+	};
+});
+
+// Create scrollLeft and scrollTop methods
+$.each( ['Left', 'Top'], function(i, name) {
+	$.fn[ 'scroll' + name ] = function(val) {
+		if (!this[0]) return;
+		
+		return val != undefined ?
+		
+			// Set the scroll offset
+			this.each(function() {
+				this == window || this == document ?
+					window.scrollTo( 
+						name == 'Left' ? val : $(window)[ 'scrollLeft' ](),
+						name == 'Top'  ? val : $(window)[ 'scrollTop'  ]()
+					) :
+					this[ 'scroll' + name ] = val;
+			}) :
+			
+			// Return the scroll offset
+			this[0] == window || this[0] == document ?
+				self[ (name == 'Left' ? 'pageXOffset' : 'pageYOffset') ] ||
+					$.boxModel && document.documentElement[ 'scroll' + name ] ||
+					document.body[ 'scroll' + name ] :
+				this[0][ 'scroll' + name ];
+	};
+});
+
+$.fn.extend({
+	position: function() {
+		var left = 0, top = 0, elem = this[0], offset, parentOffset, offsetParent, results;
+		
+		if (elem) {
+			// Get *real* offsetParent
+			offsetParent = this.offsetParent();
+			
+			// Get correct offsets
+			offset       = this.offset();
+			parentOffset = offsetParent.offset();
+			
+			// Subtract element margins
+			offset.top  -= num(elem, 'marginTop');
+			offset.left -= num(elem, 'marginLeft');
+			
+			// Add offsetParent borders
+			parentOffset.top  += num(offsetParent, 'borderTopWidth');
+			parentOffset.left += num(offsetParent, 'borderLeftWidth');
+			
+			// Subtract the two offsets
+			results = {
+				top:  offset.top  - parentOffset.top,
+				left: offset.left - parentOffset.left
+			};
+		}
+		
+		return results;
+	},
+	
+	offsetParent: function() {
+		var offsetParent = this[0].offsetParent;
+		while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && $.css(offsetParent, 'position') == 'static') )
+			offsetParent = offsetParent.offsetParent;
+		return $(offsetParent);
+	}
+});
+
+function num(el, prop) {
+	return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;
+};
+
+})(jQuery);
\ No newline at end of file

Propchange: incubator/celix/site/trunk/content/celix/js/jquery.dimensions.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/js/jquery.easing.1.3.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/jquery.easing.1.3.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/jquery.easing.1.3.js (added)
+++ incubator/celix/site/trunk/content/celix/js/jquery.easing.1.3.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,205 @@
+/*
+ * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
+ *
+ * Uses the built in easing capabilities added In jQuery 1.1
+ * to offer multiple easing options
+ *
+ * TERMS OF USE - jQuery Easing
+ * 
+ * Open source under the BSD License. 
+ * 
+ * Copyright © 2008 George McGinley Smith
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modification, 
+ * are permitted provided that the following conditions are met:
+ * 
+ * Redistributions of source code must retain the above copyright notice, this list of 
+ * conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list 
+ * of conditions and the following disclaimer in the documentation and/or other materials 
+ * provided with the distribution.
+ * 
+ * Neither the name of the author nor the names of contributors may be used to endorse 
+ * or promote products derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
+ * OF THE POSSIBILITY OF SUCH DAMAGE. 
+ *
+*/
+
+// t: current time, b: begInnIng value, c: change In value, d: duration
+jQuery.easing['jswing'] = jQuery.easing['swing'];
+
+jQuery.extend( jQuery.easing,
+{
+	def: 'easeOutQuad',
+	swing: function (x, t, b, c, d) {
+		//alert(jQuery.easing.default);
+		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
+	},
+	easeInQuad: function (x, t, b, c, d) {
+		return c*(t/=d)*t + b;
+	},
+	easeOutQuad: function (x, t, b, c, d) {
+		return -c *(t/=d)*(t-2) + b;
+	},
+	easeInOutQuad: function (x, t, b, c, d) {
+		if ((t/=d/2) < 1) return c/2*t*t + b;
+		return -c/2 * ((--t)*(t-2) - 1) + b;
+	},
+	easeInCubic: function (x, t, b, c, d) {
+		return c*(t/=d)*t*t + b;
+	},
+	easeOutCubic: function (x, t, b, c, d) {
+		return c*((t=t/d-1)*t*t + 1) + b;
+	},
+	easeInOutCubic: function (x, t, b, c, d) {
+		if ((t/=d/2) < 1) return c/2*t*t*t + b;
+		return c/2*((t-=2)*t*t + 2) + b;
+	},
+	easeInQuart: function (x, t, b, c, d) {
+		return c*(t/=d)*t*t*t + b;
+	},
+	easeOutQuart: function (x, t, b, c, d) {
+		return -c * ((t=t/d-1)*t*t*t - 1) + b;
+	},
+	easeInOutQuart: function (x, t, b, c, d) {
+		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
+		return -c/2 * ((t-=2)*t*t*t - 2) + b;
+	},
+	easeInQuint: function (x, t, b, c, d) {
+		return c*(t/=d)*t*t*t*t + b;
+	},
+	easeOutQuint: function (x, t, b, c, d) {
+		return c*((t=t/d-1)*t*t*t*t + 1) + b;
+	},
+	easeInOutQuint: function (x, t, b, c, d) {
+		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+		return c/2*((t-=2)*t*t*t*t + 2) + b;
+	},
+	easeInSine: function (x, t, b, c, d) {
+		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
+	},
+	easeOutSine: function (x, t, b, c, d) {
+		return c * Math.sin(t/d * (Math.PI/2)) + b;
+	},
+	easeInOutSine: function (x, t, b, c, d) {
+		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
+	},
+	easeInExpo: function (x, t, b, c, d) {
+		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
+	},
+	easeOutExpo: function (x, t, b, c, d) {
+		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
+	},
+	easeInOutExpo: function (x, t, b, c, d) {
+		if (t==0) return b;
+		if (t==d) return b+c;
+		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
+		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
+	},
+	easeInCirc: function (x, t, b, c, d) {
+		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
+	},
+	easeOutCirc: function (x, t, b, c, d) {
+		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
+	},
+	easeInOutCirc: function (x, t, b, c, d) {
+		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
+		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
+	},
+	easeInElastic: function (x, t, b, c, d) {
+		var s=1.70158;var p=0;var a=c;
+		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
+		if (a < Math.abs(c)) { a=c; var s=p/4; }
+		else var s = p/(2*Math.PI) * Math.asin (c/a);
+		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+	},
+	easeOutElastic: function (x, t, b, c, d) {
+		var s=1.70158;var p=0;var a=c;
+		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
+		if (a < Math.abs(c)) { a=c; var s=p/4; }
+		else var s = p/(2*Math.PI) * Math.asin (c/a);
+		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+	},
+	easeInOutElastic: function (x, t, b, c, d) {
+		var s=1.70158;var p=0;var a=c;
+		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
+		if (a < Math.abs(c)) { a=c; var s=p/4; }
+		else var s = p/(2*Math.PI) * Math.asin (c/a);
+		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
+	},
+	easeInBack: function (x, t, b, c, d, s) {
+		if (s == undefined) s = 1.70158;
+		return c*(t/=d)*t*((s+1)*t - s) + b;
+	},
+	easeOutBack: function (x, t, b, c, d, s) {
+		if (s == undefined) s = 1.70158;
+		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
+	},
+	easeInOutBack: function (x, t, b, c, d, s) {
+		if (s == undefined) s = 1.70158; 
+		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
+		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
+	},
+	easeInBounce: function (x, t, b, c, d) {
+		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
+	},
+	easeOutBounce: function (x, t, b, c, d) {
+		if ((t/=d) < (1/2.75)) {
+			return c*(7.5625*t*t) + b;
+		} else if (t < (2/2.75)) {
+			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
+		} else if (t < (2.5/2.75)) {
+			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
+		} else {
+			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
+		}
+	},
+	easeInOutBounce: function (x, t, b, c, d) {
+		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
+		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
+	}
+});
+
+/*
+ *
+ * TERMS OF USE - EASING EQUATIONS
+ * 
+ * Open source under the BSD License. 
+ * 
+ * Copyright © 2001 Robert Penner
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modification, 
+ * are permitted provided that the following conditions are met:
+ * 
+ * Redistributions of source code must retain the above copyright notice, this list of 
+ * conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list 
+ * of conditions and the following disclaimer in the documentation and/or other materials 
+ * provided with the distribution.
+ * 
+ * Neither the name of the author nor the names of contributors may be used to endorse 
+ * or promote products derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
+ * OF THE POSSIBILITY OF SUCH DAMAGE. 
+ *
+ */
\ No newline at end of file

Propchange: incubator/celix/site/trunk/content/celix/js/jquery.easing.1.3.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/celix/site/trunk/content/celix/js/jquery.gradient.js
URL: http://svn.apache.org/viewvc/incubator/celix/site/trunk/content/celix/js/jquery.gradient.js?rev=1071224&view=auto
==============================================================================
--- incubator/celix/site/trunk/content/celix/js/jquery.gradient.js (added)
+++ incubator/celix/site/trunk/content/celix/js/jquery.gradient.js Wed Feb 16 12:26:40 2011
@@ -0,0 +1,96 @@
+/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * Color functions from Steve's Cross Browser Gradient Backgrounds v1.0 (steve@slayeroffice.com && http://slayeroffice.com/code/gradient/)
+ *
+ * $LastChangedDate: 2007-06-26 19:52:18 -0500 (Tue, 26 Jun 2007) $
+ * $Rev: 2163 $
+ *
+ * Version 1.0
+ */
+(function($) {
+
+/**
+ * Adds a gradient to the background of an element.
+ *
+ * @example $('div').gradient({ from: '000000', to: 'CCCCCC' });
+ *
+ * @param Map options Settings/options to configure the gradient.
+ * @option String from The hex color code to start the gradient with.
+ * 		By default the value is "000000".
+ * @option String to The hex color code to end the gradient with.
+ * 		By default the value is "FFFFFF".
+ * @option String direction This tells the gradient to be horizontal
+ *      or vertical. By default the value is "horizontal".
+ * @option Number length This is used to constrain the gradient to a
+ *      particular width or height (depending on the direction). By default
+ *      the length is set to null, which will use the width or height
+ *      (depending on the direction) of the element.
+ * @option String position This tells the gradient to be positioned
+ *      at the top, bottom, left and/or right within the element. The
+ *      value is just a string that specifices top or bottom and left or right.
+ *      By default the value is 'top left'.
+ *
+ * @name gradient
+ * @type jQuery
+ * @cat Plugins/gradient
+ * @author Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
+ */
+$.fn.gradient = function(options) {
+	options = $.extend({ from: '000000', to: 'ffffff', direction: 'horizontal', position: 'top', length: null }, options || {});
+	var createColorPath = function(startColor, endColor, distance) {
+		var colorPath = [],
+		    colorPercent = 1.0,
+			distance = (distance < 100) ? distance : 100;
+		do {
+			colorPath[colorPath.length] = setColorHue(longHexToDec(startColor), colorPercent, longHexToDec(endColor));	
+			colorPercent -= ((100/distance)*0.01);
+		} while (colorPercent>0);
+		return colorPath;
+	},
+	setColorHue = function(originColor, opacityPercent, maskRGB) {
+		var returnColor = [];
+		for (var i=0; i<originColor.length; i++)
+			returnColor[i] = Math.round(originColor[i]*opacityPercent) + Math.round(maskRGB[i]*(1.0-opacityPercent));
+		return returnColor;
+	},
+	longHexToDec = function(longHex) {
+		return new Array(toDec(longHex.substring(0,2)),toDec(longHex.substring(2,4)),toDec(longHex.substring(4,6)));
+	},
+	toDec = function(hex) {
+		return parseInt(hex,16);
+	};
+	return this.each(function() {
+		var $this = $(this), width = $this.innerWidth(), height = $this.innerHeight(), x = 0, y = 0, w = 1, h = 1, html = [],
+		    length = options.length || (options.direction == 'vertical' ? width : height),
+		    position = (options.position == 'bottom' ? 'bottom:0;' : 'top:0;') + (options.position == 'right' ? 'right:0;' : 'left:0;'), 
+		    colorArray = createColorPath(options.from, options.to, length);
+		
+		if (options.direction == 'horizontal') {
+			h = Math.round(length/colorArray.length) || 1;
+			w = width;
+		} else {
+			w = Math.round(length/colorArray.length) || 1;
+			h = height;
+		}
+		
+		html.push('<div class="gradient" style="position: absolute; ' + position + ' width: ' + (options.direction == 'vertical' ? length+"px" : "100%") +'; height: ' + (options.direction == 'vertical' ? "100%" : length+"px") + '; overflow: hidden; z-index: 0; background-color: #' + (options.position.indexOf('bottom') != -1 ? options.from : options.to) + '">');
+		for(var i=0; i<colorArray.length; i++) {
+			html.push('<div style="position:absolute;z-index:1;top:' + y + 'px;left:' + x + 'px;height:' + (options.direction == 'vertical' ? "100%" : h+"px") + ';width:' + (options.direction == 'vertical' ? w+"px" : "100%") + ';background-color:rgb(' + colorArray[i][0] + ',' + colorArray[i][1] + ',' + colorArray[i][2] + ');"></div>');
+			options.direction == 'vertical' ? x+=w : y+=h;
+			
+			if ( y >= height || x >= width) break;
+		}
+		html.push('</div>');
+		
+		if ( $this.css('position') == 'static' )
+			$this.css('position', 'relative');
+		
+		$this
+			.html('<div style="display:' + $this.css("display") + '; position: relative; z-index: 2;">' + this.innerHTML + '</div>')
+			.prepend(html.join(''));
+	});
+};
+
+})(jQuery);
\ No newline at end of file

Propchange: incubator/celix/site/trunk/content/celix/js/jquery.gradient.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message