Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 63E41200D4E for ; Thu, 7 Dec 2017 21:17:49 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 625A1160C0C; Thu, 7 Dec 2017 20:17:49 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 0AC0D160C08 for ; Thu, 7 Dec 2017 21:17:46 +0100 (CET) Received: (qmail 22262 invoked by uid 500); 7 Dec 2017 20:17:46 -0000 Mailing-List: contact commits-help@celix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@celix.apache.org Delivered-To: mailing list commits@celix.apache.org Received: (qmail 22089 invoked by uid 99); 7 Dec 2017 20:17:45 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Dec 2017 20:17:45 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 21EC1E0433; Thu, 7 Dec 2017 20:17:45 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: pnoltes@apache.org To: commits@celix.apache.org Date: Thu, 07 Dec 2017 20:17:53 -0000 Message-Id: In-Reply-To: <045cf3471bdd4385b22edab97e7c8e47@git.apache.org> References: <045cf3471bdd4385b22edab97e7c8e47@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [10/14] celix-site git commit: got rid of useless site/ directory archived-at: Thu, 07 Dec 2017 20:17:49 -0000 got rid of useless site/ directory Project: http://git-wip-us.apache.org/repos/asf/celix-site/repo Commit: http://git-wip-us.apache.org/repos/asf/celix-site/commit/e5fdd625 Tree: http://git-wip-us.apache.org/repos/asf/celix-site/tree/e5fdd625 Diff: http://git-wip-us.apache.org/repos/asf/celix-site/diff/e5fdd625 Branch: refs/heads/asf-site Commit: e5fdd625fa84c5ac6d43919509c661626c0dd24e Parents: 757e797 Author: ESmink Authored: Mon Nov 27 11:01:46 2017 +0100 Committer: ESmink Committed: Mon Nov 27 11:01:46 2017 +0100 ---------------------------------------------------------------------- README.md | 2 +- site/404.html | 2 - site/boardreports.html | 558 --------------------------------- site/community.html | 122 ------- site/contributing.html | 119 ------- site/doc/index.html | 159 ---------- site/doc/one/file_one.html | 262 ---------------- site/doc/two/file_three.html | 125 -------- site/doc/two/file_two.html | 427 ------------------------- site/downloads.html | 138 -------- site/favicon.ico | Bin 2082 -> 0 bytes site/import/friendly.css | 69 ---- site/import/javascript.js | 7 - site/import/style.css | 308 ------------------ site/index.html | 137 -------- site/issuetracking.html | 125 -------- site/mailinglist.html | 133 -------- site/media/Apache_Feather.png | Bin 1994 -> 0 bytes site/media/Apache_Feather.svg | 88 ------ site/media/Apache_PoweredBy.png | Bin 72953 -> 0 bytes site/media/Apache_full.png | Bin 5144 -> 0 bytes site/media/Apache_full.svg | 125 -------- site/media/Chevron.gif | Bin 121 -> 0 bytes site/media/ChevronOverlay.png | Bin 310 -> 0 bytes site/media/IconHome.gif | Bin 549 -> 0 bytes site/media/celix.png | Bin 9225 -> 0 bytes site/media/celix_notext.png | Bin 25443 -> 0 bytes site/media/celix_notext_20px.png | Bin 2082 -> 0 bytes site/media/forkmeongithub.png | Bin 9438 -> 0 bytes site/media/forkmesmall.png | Bin 6982 -> 0 bytes site/media/githubIcon.png | Bin 4701 -> 0 bytes site/media/memory_pools.png | Bin 74273 -> 0 bytes site/media/shadow.png | Bin 1698 -> 0 bytes site/media/shiro_bullet_24x24.png | Bin 1645 -> 0 bytes site/releasing.html | 386 ----------------------- site/support.html | 117 ------- 36 files changed, 1 insertion(+), 3408 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md index 8bad555..119540e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This is the website for [Apache Celix](https://celix.apache.org/), hosted at: This repository contains: 1. `src/`: the source of the site, including markdown files containing the bulk of the content -1. `site/`: html generated from the markdown (which is what is actually hosted on the website) +1. `build.py`: generates `site/` directory, which contains the celix website 1. `celix/`: the celix sourcecode ### Cloning this repo http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/site/404.html ---------------------------------------------------------------------- diff --git a/site/404.html b/site/404.html deleted file mode 100755 index 84a21b3..0000000 --- a/site/404.html +++ /dev/null @@ -1,2 +0,0 @@ -404 :( - http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/site/boardreports.html ---------------------------------------------------------------------- diff --git a/site/boardreports.html b/site/boardreports.html deleted file mode 100644 index 37be753..0000000 --- a/site/boardreports.html +++ /dev/null @@ -1,558 +0,0 @@ - - - - - - - - - -Welcome to Apache Celix - - - - -
- - - Fork me on GitHub - Fork me on GitHub - - - - - -
-

Board Reports

- -

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.

- -

2013-10

- -

= Celix =

- -

Celix is an OSGi like implementation in C with a distinct focus on interoperability between Java and C.

- -

Celix has been incubating since 2010-11-02.

- -

Three most important issues to address in the move towards graduation:

- -
    -
  1. Grow the community
  2. -
  3. Find more committers
  4. -
  5. Publish a new release
  6. -
- -

Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
-aware of?

- -

None

- -

How has the community developed since the last report?

- -

Several new people are working on additional code for the project. One person is working on a GSoC project, someone else is working on a new remote services protocol and is actively communicating over the list and using jira to post patches. Overall this is an increase in activity.
-The Native-OSGi project is still progressing, but rather slow. So there isn't anything new on that end. Celix is still the reference implementation, so I still expect this to be a great drive for Celix, for the code as well as the committers.

- -

How has the project developed since the last report?

- -

As mentioned above, a student is working on a GSoC project and has implemented an Event Admin which will be included in Celix. Also a additional Remote Services implementation based on shared memory is being made.
-Work for a new release is still ongoing, the focus is slightly changing, one of the main users has requested a release. Since they don't use Win32, Win32 support can be stripped from the release plan and postponed to a later release.

- -

Date of last release:

- -
    -
  • 16-12-2012
  • -
- -

When were the last committers or PMC members elected?

- -
    -
  • 2013-01-07 Roman Shaposhnik joins as a mentor.
  • -
  • 2012-03-20 Pepijn elected as committer.
  • -
- -

2013-07

- -

= Celix =

- -

Celix is an OSGi like implementation in C with a distinct focus on interoperability between Java and C.

- -

Celix has been incubating since 2010-11-02.

- -

Three most important issues to address in the move towards graduation:

- -
    -
  1. Grow the community
  2. -
  3. Find more committers
  4. -
  5. ...
  6. -
- -

Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be aware of?
-None.

- -

How has the community developed since the last report?
-Activity on the mailing list is still a bit slow, but there is still progress. But more importantly, the Native-OSGi effort has taken a few big steps. The most important one is the publication of an RFP at the OSGi Alliance [ 1 ]. The purpose of this RFP is to standardise OSGi for native (C and C++) languages. After the RFP is finalised work will be started on a RFC, this will be done in conjunction with writing a reference implementation. For this purpose Apache Celix will be used. This also means that C++ will be introduced in the Celix project. Most likely large parts of C++ code will be donated by 2 participants of the Native-OSGi project. This gives us a great opportunity to add extra committers and increase the diversity of Celix.

- -

How has the project developed since the last report?
-As mentioned above, to be able to write a reference implementation for Native-OSGi the scope of Celix will be extended to also include C++. Details of this extension still need to be worked out. But for continuity the current (C) code base will (for now) remain the same. So any work related to Native-OSGi will (for now) be done independently from the current implementation.
-Also work is underway to make a second release. Whereas the first release focused primarily on the releasing itself, this second release will focus on the actual implementation. Important points are:

- -
    -
  • API consistency
  • -
  • Win32 support
  • -
  • APR usage
  • -
- -

More details can be found in [ 2 ]

- -

A (Mini) Hackathon for Apache Celix was organised at June the 30th. There where 4 people present on the hackathon (2 committers) and focus for the hackathon was the remote services implementation. The hackathon was received well and we like to do this more often to encourage community growth of Apache Celix.

- -

Apache Celix is now also involved the Google Summer of Code for 2013. Erik Jansman is doing a project on the Event Admin for Apache Celix and Pepijn Noltes is mentoring him. The idea is to discuss the result on the mailing list. This is a new experience for Apache Celix and we hope that helps the community and also provide technical progress.

- -

Date of last release:
-16-12-2012

- -

[ 1 ] https://www.osgi.org/bugzilla/show_bug.cgi?id=165

- -

[ 2 ] http://incubator.markmail.org/thread/fza43iypjutcw2rm

- -

2013-04

- -

= Celix =

- -

Celix is an OSGi like implementation in C with a distinct focus on interoperability between Java and C.

- -

Celix has been incubating since 2010-11-02.

- -

Three most important issues to address in the move towards graduation:

- -
    -
  1. Grow a community
  2. -
  3. Find more committers
  4. -
  5. ..
  6. -
- -

Celix is maintained by 2 committers and a small group of users. Questions to the mailing list are (most of the time) answered quickly. We are also trying to give talks on Celix or related stuff on conferences.
-We see and recognise the problem of the small community, but are also confident that Celix and its community will grow.

- -

Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be aware of?
-None.

- -

How has the community developed since the last report?
-There is no active growth, but there is currently one students doing his intership with Apache Celix and we are trying hoping to get some projects in the Google Summer of Code 2013. We hope that this will lead in more activity on the mailing-list and hopefully to extra committers.

- -

How has the project developed since the last report?
-Technically progress has been slow the last months. There was a hackaton organized for remote services in Java [ 1 ], which although not directly related to Apache Celix, should eventually work together with the Apache Celix and as result the committers of Apache Celix where present. We also expect an increase in contributions the coming months because of the student intership / GSoC activities.

- -

[ 1 ] http://lists.amdatu.org/pipermail/dev/2013-March/000020.html

- -

2013-01

- -

= Celix =

- -

Celix is an OSGi like implementation in C with a distinct focus on interoperability between Java and C.

- -

Celix has been incubating since 2010-11-02.

- -

Three most important issues to address in the move towards graduation:

- -
    -
  1. Grow a community
  2. -
  3. Find more committers
  4. -
  5. ..
  6. -
- -

Celix is maintained by 2 committers and a small group of users. Questions to the mailing list are (most of the time) answered quickly. We are also trying to give talks on Celix or related stuff on conferences.
-We see and recognise the problem of the small community, but are also confident that Celix and its community will grow. Especially the Native-OSGi work might be important for this (see below).

- -

Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be aware of?
-None.

- -

How has the community developed since the last report?

- -

There is no active growth, but in the past few months talks have been given on Native-OSGi. Native-OSGi is an effort to standardise C/C++ implementations of OSGi. The goal of this is to be able to reuse bundles from other OSGi like implementations. Also working together might attract more users/committers. The talks are attended by a good group of people, and reactions are positive.

- -

How has the project developed since the last report?

- -

A first release has been made. After struggling with several problems, consensus has been reached to solve these in a next release.
-On a technical note, Celix now also compiles and runs on Win32 platforms.

- -

2012-10

- -

= Celix =

- -

Celix is an implementation of the OSGi Specification in C.

- -

Celix entered incubation on November 2, 2010.

- -

Over the last months we have focused on creating a first release for Celix.
-As is mentioned in the graduation plan [1] we hope that a release will create
-more community.
-We have prepared the code base and website for release and we are very close to making a release.

- -

The previous report [2] mentioned that we are working on a "Native-OSGi", which could attract more community.
-This discussion continued in Juli on the mailling, but got quiet after that. There will be a talk about Native-OSGi for ApacheCon EU and EclipseCon EU and we expect that this will create attention for Celix.

- -
    -
  • Most important issues to address before we can graduate:
    -Make a first release, growing the community and attracting more committers.

  • -
  • Any issues the Incubator PMC or ASF board need to be aware of:
    -None at this time

  • -
  • How has the community developed since the last report:
    -There has been a small decrease on activity on the mailing list, hopefully this is a temporary decrease due to the holidays. We did receive patches from a contributor.

  • -
  • How has the project developed since the last report:
    -We are still working towards a first release. The code base has been prepared for release and the website got some attention
    -based on the shepherd's view from last report.

  • -
- -

Signed off by mentor: marrs

- -

2012-07

- -

= Celix =

- -

Celix is an implementation of the OSGi Specification in C.

- -

Celix entered incubation on November 2, 2010.

- -

Over the last months we have started working on "Native-OSGi" which is an effort to make a specification for a C and C++ bases OSGi implementation. As detailed in the graduation plan [1] in the previous report we hope to attract more community members with this move.
-Details for Native-OSGi can be found at [2].

- -

Also the donation of the Device Access code has been finished and committed to the SVN repository. This has been a good experience from both a technical and a process point of view.

- -

Furthermore there has been a slight increase on the mailing list, hopefully this is a trend that will continue in the coming months.

- -
    -
  • Most important issues to address before we can graduate

    - -

    Make a first release and grow a larger community. It is also needed to attract some more committers, there are currently 2. We are in the process of cleaning up the code and project structure so a first release can be made.

  • -
  • Any issues the Incubator PMC or ASF board not te be aware of

    - -

    None at this time

  • -
  • How has the community developed since the last report

    - -

    There has been an increase on the mailing list, furthermore with the start of the Native-OSGi project we hope this will increase in the coming months.

  • -
  • How has the project developed since the last report

    - -

    From a technical point of view, we are working towards a first release. The build files have been updated to support a more modular project structure.
    -Since the implementation is moving forward (al be it slowly), the community growth is the biggest concern for Celix.

  • -
- -

Signed off by mentor:

- -

Shepherd: Matt Franklin

- -

2012-04

- -

= Celix =

- -

Celix is an implementation of the OSGi Specification in C.

- -

Celix entered incubation on November 2, 2010.

- -

The last month we received or first large code donation, the code still has to be added to the project. This code is an implementation of the OSGi Device Access specification for Celix and has been made by Thales Netherlands. Together with this donation a new committer (Pepijn Noltes) is accepted. Pepijn has developed and will maintain the Device Access code.

- -

We have also been working on a graduation plan which is included below.

- -

Most important issues are:

- -
Improve robustness (APR, error handling etc), resulting in a first release
-Update/Implement remote services for interoperability with Java OSGi (Apache Felix)
-Generate awareness and grow a community!
-
- -

Graduation Plan

- -

Celix is in incubation since November 2010. During the first one and a half year talks where given at several conferences (EclipseCon, ApacheCon, OSGi User Group meetings, etc).
-Even though there seems to be an interest in the project, two important questions keep coming up:

- -
    -
  • What is the state of the project?
  • -
  • Why no support for C++?
  • -
- -

Trying to answer/solve these two questions might make it able to attract more community members. So this plan will focus mostly on these two items.

- -

= State of the project

- -

== Releases

- -

Celix entered incubation in its early stage. There was only a proof of concept, but no complete implementation.
-This is an important reason for people to hold back and not yet use/improve Celix, on the other hand, being hesitant also keeps Celix from growing towards a more stable/robust solution.
-To be able to use Celix the implementation has to reach, at least, a more stable state. Over the past year lots of effort has been put into this.
-Within the next half year a release has to be made of the core component of Celix. Hopefully this will attract more users/testers (and potentially committers).
-Since a formal release takes quite some effort, it might also make sense to provide snapshots (with documentation) to be able to reach more people.

- -

== Committers

- -

During the last months there has been an interest from Thales Netherlands to use Celix in its middleware. In a research project they are working on an implementation of the Device Access specification. This implementation is donated to Celix, and the main developer has expressed the intention to maintain the code base. Via this path a new committer has been added to Celix 1.
-But to be able to have a diverse community more committers are needed.
-Having a release makes it easier for people to use and improve Celix. This is one step towards more committers.

- -

== Technical state

- -

One of the important aspects of Celix is interoperability with Java OSGi through remote services. Currently Celix has basic support for Celix to Celix remote services, following the Remote Service Admin specification of OSGi. This implementation has to be improved and extended to comply better to the specification. Also a Java OSGi implementation has to be made which can interact with the Celix implementation. Some existing opensource solutions are available, but are either to large for our intended target platforms or rely on to many other libraries (for example XML handling etc). To be able to have an implementation which fits the environment ((de)serialization and protocol) it makes sense to implement a simple solution ourselves.
-Having functional remote services makes it easier to use Celix in a mixed Java/C environment. This solution can also be positioned as an alternative to JNI with the benefit that the Java and C components are separate processes. If either one crashes the other part is kept running, resulting in a more robust solution.

- -

= C++ Support

- -

== Technical Scope

- -

Currently Celix is limited to C only. This was a deliberate choice since Celix tries to target embedded/constrained platforms. But during talks people also seem to be interested in C++ support. Extending the technical scope of the project might attract more users and committers.
-Over the next half year we will work out a plan how C++ support can be added without impacting the current supported platforms. A start with the discussions has been made on the mailinglist, see [2] for more information.

- -

== Cooperate with existing C++ OSGi like implementations

- -

In [3] a list of similar projects is mentioned. Reaching out to these projects and trying to find a common ground on requirements/API etc could benefit Celix (and those projects as well).
-To see if there is a common ground we need to contact those projects and plan a meeting.

- -

Signed off by mentor:

- -

2012-01

- -

= Celix =

- -

Celix is an implementation of the OSGi Specification in C.

- -

Celix entered incubation on November 2, 2010.

- -

Over the last few months lots of work has been put into integrating APR and updating the Celix code base to the proposed code style. This code style has partially been documented on [1]. Also some effort has been put into updating the source for Visual Studio, even though not yet finished some interesting and helpful patches where submitted and applied.

- -

In Oktober an event was held to create more awareness for services, OSGi and Celix in the Dutch embedded community. The attendance was great, and a follow-up will be planned. Also, in November a talk was given at the ApacheCon.

- -

As listed below, one of the most important issues is the slow growth of the Celix community. With the current discussion about poddlings and how long a poddling is in the incubator, we are discussing a plan how we can move to a more diverse community and be able to graduate. This plan will be included in the next board report.

- -

Most important issues are:

- -
Improve robustness (APR, error handling etc), resulting in a first release
-Generate awareness and grow a community!
-
- -

Signed off by mentor: marrs

- -

2011-10

- -

= Celix =

- -

Celix is an implementation of the OSGi Specification in C.

- -

Celix entered incubation on November 2, 2010.

- -

In the code not much has changed during the past few months, mostly due to vacations. Some (reported) bugs have been fixed, and some interesting examples have been added. These example where donated by a user, and follow the OSGi in Action book. This makes them a great addition to Celix.
-Furthermore, some work has been done to make testing from CMake easier, and we are also looking into a method for mocking services to be able to test only one service without all its dependencies.

- -

On the community site, Luminis and Thales are organizing an event (in Dutch) to introduce embedded/distributed companies to OSGi. During this event OSGi will be explained, Celix and PojoSR will be introduced. Also a small introduction in Apache and the "Apache Way" will be given, with the goal to invite people to use/join Celix.
-Also, in november a talk and demo will be given at the ApacheCon.

- -

Most important issues are:

- -
Improve robustness (APR, error handling etc)
-Generate awareness and grow a community!
-
- -

Signed off by mentor:

- -

2011-07

- -

= Celix =

- -

Celix is an implementation of the OSGi Specification in C.

- -

Celix entered incubation on November 2, 2010.

- -

Over the past few months work has been done on integration and usage of the Apache Portable Runtim (APR) in Celix.
-The work has mostly focusses on stability and robustness of the codebase, but some new features were added:

- -
Log Service and Writer: for logging and reading the log
-Service Factories: needed for the log service
-
- -

Also, in March, a talk was given to the OSGi User Group France. There is a lot interest in the project, but people seem to be waiting for a more stable version.
-For community building it might be interesting to work towards a release later this year to make it easier to download and use Celix.
-A talk on Celix has also been accepted for the ApacheCon in November, which is a good opportunity to show Celix to the world.
-Also parts of Celix have been ported to Windows. Mostly the utils used by the framework, and not yet the framework itself. This is a lengthy job because Celix is using C99, and Windows (Visual Studio) only support C89/C90.

- -

Most important issues are:

- -
Improve robustness (APR, error handling etc)
-Generate awareness and grow a community!
-
- -

Signed off by mentor:

- -

2011-04

- -

= Celix =

- -

Celix is an implementation of the OSGi Specification in C.

- -

Celix entered incubation on November 2, 2010.

- -

During the EclipseCon a talk was given over Celix, also spoke with several OSGi
-people who are interested in the progress, especially related to Universal OSGi
-(which details specification and requirements for OSGi in other languages).
-During the last few weeks work has been done to get rid of memory leaks and null
-pointers.
-Currently we are looking at the requirements/details for bundle deployment and
-updating, possibly in combination with Apache Ace.

- -

Most important issues are:

- -
Define a status overview of what is and isn't working.
-Move all "sub" project to the new structure.
-Use APR for all file handling, threading etc.
-Generate awareness and grow a community
-
- -

Signed off by mentor:

- -

2011-02

- -

= 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

- -

= 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

- -

= 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

-
- http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/site/community.html ---------------------------------------------------------------------- diff --git a/site/community.html b/site/community.html deleted file mode 100644 index f57e917..0000000 --- a/site/community.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - -Welcome to Apache Celix - - - - -
- - - Fork me on GitHub - Fork me on GitHub - - - - - -
-

Celix Community

- -

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.

- - - -

While Celix was in incubation at the Apache Incubator, the status had to be reported to the Incubator PMC. These
-reports are also available on this site.

- - -
- http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/site/contributing.html ---------------------------------------------------------------------- diff --git a/site/contributing.html b/site/contributing.html deleted file mode 100644 index 8468cc8..0000000 --- a/site/contributing.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - -Welcome to Apache Celix - - - - -
- - - Fork me on GitHub - Fork me on GitHub - - - - - -
-


-

- -

Contributing

- -

The Celix community is open for everyone to participate in. Discussions are done over the
-mailing lists, and issues 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.

-
- http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/site/doc/index.html ---------------------------------------------------------------------- diff --git a/site/doc/index.html b/site/doc/index.html deleted file mode 100644 index e61bd84..0000000 --- a/site/doc/index.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - -Welcome to Apache Celix - - - - -
- - - Fork me on GitHub - Fork me on GitHub - - - - - -
-
- - - - - - -
one
main
file one
two
file two
file three
-
-

Apache Celix website

- -

This is the website for Apache Celix, hosted at:

- -
https://celix.apache.org/
-
- -

Repository Structure

- -

This repository contains:

- -
    -
  1. src/: the source of the site, including markdown files containing the bulk of the content
  2. -
  3. site/: html generated from the markdown (which is what is actually hosted on the website)
  4. -
  5. celix/: the celix sourcecode
  6. -
- -

Cloning this repo

- -

This repository can be cloned as usual. Because the website is using the offical celix repository as submodule, some extra commands need to be executed. Run this after cloning and the 'celix' directory will be initialized:

- -
$ git submodule init
-$ git submodule update
-
- -

More about submodules can be found here

- -

Server build instructions

- -

building

- -
cd path/to/build.py
-./build.py
-
- -

A test-server will run on localhost:8000

- -

installing

- -
    -
  1. install python (tested versions: 2.7.10)
  2. -
  3. install markdown2
  4. -
- -
- http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/site/doc/one/file_one.html ---------------------------------------------------------------------- diff --git a/site/doc/one/file_one.html b/site/doc/one/file_one.html deleted file mode 100644 index a9b9f4e..0000000 --- a/site/doc/one/file_one.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - - -Welcome to Apache Celix - - - - -
- - - Fork me on GitHub - Fork me on GitHub - - - - - -
-
- - - - - - -
one
main
file one
two
file two
file three
-
-

Apache Celix Introduction

- -

What is Apache Celix

- -

Apache Celix is an implementation of the OSGi specification adapted to C and C++. It is a provides a framework to develop (dynamic) modular software applications using component and/or service-oriented programming.

- -

Apache Celix is primarily developed in C and adds an additional abstraction, in the form of a library, to support for C++.

- -

C and Objects

- -

C is a procedural programming language and as result has no direct support for the notion of a object.
-To be able to follow the OSGi specification, a standard mapping from C to Java is used. This mapping takes care of how instances, parameters, return values and exceptions (error codes) work in Apache Celix.

- -

Example

- -

Before going into detail, here is an example of the mapping from a method in Java to a function in C:

- -
//Java signature
-public interface BundleContext {
-    public ServiceReference[] getServiceReferences(String clazz, String filter) throws InvalidSyntaxException;
-}
-
- -
//bundle_context.h
-
-//C prototype
-celix_status_t bundleContext_getServiceReferences(bundle_context_pt context, const char* serviceName, const char* filter, array_list_pt* service_references);
-
- -

Object methods

- -

Using the provided example, the following templates can be extracted for mapping a object method to a C function:

- -
/**
- * 1st template
- * celix_status_t: return type of the status code
- * 
- * typeName: name of the object/type this function is part of
- * functionName: the name of the function
- * 
- * typeName_t: The actual instance to "invoke" this function on
- * parameters: default function parameters
- * output parameter: the output which the caller can use
- */
-celix_status_t <typeName>_<functionName>(<typeName>_t* self [,parameters, ] [, output parameter]);
-
-//OR
-
-/**
-* 2nd template
- * celix_status_t: return type of the status code
- * 
- * typeName: name of the object/type this function is part of
- * functionName: the name of the function
- * 
- * typeName_t: The actual instance to "invoke" this function on
- * parameters: default function parameters
- * output parameter: the output which the caller can use
- */
-celix_status_t <typeName>_<functionName>(<typeName>_pt self [,parameters, ] [, output parameter]);
-
- -

Note that although the first template is preferred, Apache Celix still uses the second template.

- -

Unless stated otherwise, the caller is owner of the output and should destroy/deallocate the result.
-An exception is a const output parameters, this indicates the callee is still owner.

- -

Creating and destroying Objects

- -

Objects in Apache Celix can generally be created and destroyed using a create and destroy functions.
-For example:

- -
celix_status_t bundleContext_create(framework_pt framework, framework_logger_pt, bundle_pt bundle, bundle_context_pt *bundle_context);
-celix_status_t bundleContext_destroy(bundle_context_pt context);
-
- -

For some types a separate allocate and init and a separate deallocate and deinit are also available.
-This gives a user the option the initialize and deinitialize a object on the stack. the hashmapiterator uses this:

- -
hash_map_iterator_pt hashMapIterator_create(hash_map_pt map);
-void hashMapIterator_destroy(hash_map_iterator_pt iterator);
-
-hash_map_iterator_pt hashMapIterator_alloc(void);
-void hashMapIterator_dealloc(hash_map_iterator_pt iterator);
-
-void hashMapIterator_init(hash_map_pt map, hash_map_iterator_pt iterator);
-void hashMapIterator_deinit(hash_map_iterator_pt iterator);
-
- -

OSGi documentation and Apache Celix

- -

Apache Celix follows the OSGi 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).
-Taking into account those differences and mapping explained before the OSGi javadoc can be used for a more in depth description of what the Apache Celix API offers.

- - - -

What is a OSGi service?

- -

A OSGi service is a Java object register to the OSGi framework under a certain set of properties.
-OSGi services are generally registered as a well known interface (using the objectClass property).

- -

Consumers can dynamically lookup the services providing a filter to specify what kind of services their are interested in.

- -

C services in Apache Celix

- -

As mentioned 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.

- -

See Apache Celix Best Practices for a more in depth look at services and service usage.

- -

Impact of dynamic services

- -

Services in Apache Celix are dynamic, meaning that they can come and go at any moment.
-How to cope with this dynamic behaviour is very critical for creating a stable solution.

- -

For Java OSGi this is already a challenge to program correctly, but less critical because generally speaking the garbage collector will arrange that objects still exists even if the providing bundle is deinstalled.
-Taking into account that C has no garbage collection handling the dynamic behaviour correctly is even more critical; If a bundle providing a certain services is removed the code segment / memory allocated for the service will be removed / deallocated.

- -

Apache Celix offers different solutions how to cope with this dynamic behaviour:

- -
    -
  • Bundle Context & Service References - This (low level) API exists to be compatible with the OSGi standard. This should not be used in production code, because no locking/syncing mechanisms are available.
  • -
  • Service Listener - This (log level) API can be used to retrieve event when services are being removed or are added. Combined with locking this can be used to safely monitor and use services.
  • -
  • Service Tracker - This API can be used to register callbacks function when services are being removed or are added. Combined with locking this can be used to safely use services.
  • -
  • Dependency Manager - This library can be used to add service dependency is a declarative way. A locking or syncing mechanism can be selected to safely use services. Note that this is not part of the OSGi standard.
  • -
- -

Even though the dependency manager is not part of the OSGi specification, this is the preferred way because it uses a higher abstraction and removes a lot boilerplate code.

- -

C++ Support

- -

One of the reasons why C was chosen as implementation language is that C can act as a common denominator for (service oriented) interoperability between a range of languages.
-C++ support is added with the use of a C++ Dependency Manager.
-The Dependency Manager is arguably the most convenient way to interact with services, confers most uses cases and eliminates the necessity to port the rest of the (large) API to C++.

- -

Documentation

- -

For more information see:

- - - -
- http://git-wip-us.apache.org/repos/asf/celix-site/blob/e5fdd625/site/doc/two/file_three.html ---------------------------------------------------------------------- diff --git a/site/doc/two/file_three.html b/site/doc/two/file_three.html deleted file mode 100644 index f04da1c..0000000 --- a/site/doc/two/file_three.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - -Welcome to Apache Celix - - - - -
- - - Fork me on GitHub - Fork me on GitHub - - - - - -
-
- - - - - - -
one
main
file one
two
file two
file three
-
-

Apache Celix - Getting Started Guide

- -

Guides

- -

There are several guide to help you get started. The first guide is Getting Started: Creating a simple bundle
-and this should get you started for your first C and/or C++ bundle.

- -

After that you can extend the example by providing and use services using the
-guide Getting Started: Using Services with C or Getting Started: Using Services with C++.

- -
-