[424024] [proposal] technology.californium 

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=424024
diff --git a/technology.californium/README.txt b/technology.californium/README.txt
new file mode 100644
index 0000000..13afc4a
--- /dev/null
+++ b/technology.californium/README.txt
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Wayne Beaton (Eclipse Foundation)- initial API and implementation
+ *******************************************************************************/
+
+In this package, you will find several files. From a proposal author 
+point of view, the only file you really need to concern yourself with is
+the proposal.html file. There are comments in that file that will help
+you pull the required pieces together.
+
+If you have the phoenix environment set up on your workstation, you can
+see how the proposal will look "live". However, you should be able to
+work successfully with just the HTML document. Please keep the formatting
+simple, as we will use style sheets to format the public version.
+
+Thank you for taking the time to author an Eclipse Project proposal.
+	
+Direct any questions about this template to emo@eclipse.org
\ No newline at end of file
diff --git a/technology.californium/_projectCommon.php b/technology.californium/_projectCommon.php
new file mode 100644
index 0000000..741b7e0
--- /dev/null
+++ b/technology.californium/_projectCommon.php
@@ -0,0 +1,3 @@
+<?php

+include("../_proposalCommon.php");

+?>

diff --git a/technology.californium/functions.php b/technology.californium/functions.php
new file mode 100755
index 0000000..432bb72
--- /dev/null
+++ b/technology.californium/functions.php
@@ -0,0 +1,55 @@
+<? 
+/*******************************************************************************
+ * Copyright (c) 2007 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Wayne Beaton (Eclipse Foundation)- initial API and implementation
+ *******************************************************************************/
+
+function get_title_from_html_document($file_name) {
+	$header = get_header_from_html_document($file_name);
+	
+	/*
+	 * Break the header up into multiple lines. Handle the
+	 * case where line breaks are lf, crlf, or cr.
+	 */
+	
+	$lines = preg_split("/\r?\n|\r/", $header); 
+	
+	/*
+	 * Merge the lines into a single line so that eregi
+	 * can find the title even if it is split over multiple
+	 * lines
+	 */
+	$one_line = implode(" ", $lines); 
+	
+	/*
+	 * If we can match a title tag, extract it.
+	 */
+	if (eregi("<title>(.*)</title>", $one_line, $title)) {
+    	return $title[1];
+	}
+	
+	return "An Eclipse Proposal";
+}
+
+function get_header_from_html_document(&$file_name) {
+	$handle = @fopen($file_name, "r");
+	$content = "";
+    while (!feof($handle)) {
+        $part = fread($handle, 1024);
+        $content .= $part;
+        
+        /*
+         * Only read up to the part that includes the
+         * end tag for the header area.
+         */
+        if (eregi("</head>", $part)) break;
+    }
+    fclose($handle);
+    return $content;
+}
\ No newline at end of file
diff --git a/technology.californium/index.php b/technology.californium/index.php
new file mode 100644
index 0000000..d4afb48
--- /dev/null
+++ b/technology.californium/index.php
@@ -0,0 +1,32 @@
+<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

+

+require_once("functions.php");

+$proposal_title = get_title_from_html_document("proposal.html");

+

+$pageTitle 		= $proposal_title;

+$pageKeywords	= "Eclipse, proposal";

+$pageAuthor		= "";

+

+

+ob_start();

+?>

+<div id="maincontent">

+	<div id="midcolumn">

+	

+		<h1><?= $proposal_title ?></h1>

+	

+		<?php

+			include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php");

+			generate_header($proposal_title);

+			

+			include("proposal.html");

+		?>

+	</div>

+</div>

+<?php

+$html = ob_get_contents();

+ob_end_clean();

+

+# Generate the web page

+$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);

+?>

diff --git a/technology.californium/proposal.html b/technology.californium/proposal.html
new file mode 100644
index 0000000..2e7c393
--- /dev/null
+++ b/technology.californium/proposal.html
@@ -0,0 +1,307 @@
+<!-- 
+	This document is provided as a template along with some guidance for creating
+	your project proposal. This is just a template. Feel free to change it as
+	you see fit (add sections, remove section). We feel, however, that the
+	suggestions represented in this document represent the reasonable minimum
+	amount of information to move forward.
+	
+	Please keep the formatting in this document simple. Please do not edit 
+	this document in Microsoft Word as it adds huge piles of markup that make
+	it difficult to restyle.
+	
+	More information is available here:
+	
+	http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
+	
+	Direct any questions about this template to emo@eclipse.org
+ -->
+
+<html>
+<head>
+
+<!-- 
+	Include the title here. We will parse it out of here and include it on the
+	rendered webpage. Do not duplicate the title within the text of your page.
+ -->
+
+<title>Californium (Cf) CoAP Framework</title>
+</head>
+
+<!-- 
+	We make use of the 'classic' HTML Definition List (dl) tag to specify
+	committers. I know... you haven't seen this tag in a long while...
+ -->
+ 
+<style>
+dt {
+display: list-item;
+list-style-position:outside;
+list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
+margin-left:16px;
+}
+dd {
+margin-left:25px;
+margin-bottom:5px;
+}
+</style>
+
+<body>
+<p>The Californium (Cf) CoAP framework project is a proposed open source project
+under the <a href="http://projects.eclipse.org/projects/technology">Eclipse Technology Project</a>.</p>
+
+<!-- 
+	The communication channel must be specified. Typically, this is the
+	"Proposals" forum. In general, you don't need to change this.
+ -->
+<p>This proposal is in the Project Proposal Phase (as defined in the
+Eclipse Development Process) and is written to declare its intent and
+scope. We solicit additional participation and input from the Eclipse
+community. Please send all feedback to the 
+<a href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse Proposals</a>
+Forum.</p>
+
+<h2>Background</h2>
+
+<p>In July 2013, the Internet Engineering Task Force (IETF) accepted a new Web
+protocol for machine-to-machine (M2M) communication as Proposed Standard: the
+Constrained Application Protocol (CoAP). It is designed within the Constrained
+RESTful Environments (CoRE) working group. Implementing the REST architectural
+style, it can be transparently mapped to HTTP. However, CoAP also provides
+features that go beyond HTTP such as native push notifications and group
+communication.</p>
+
+<p>This makes CoAP an excellent choice for M2M applications. Thus, it is part of
+several M2M standards such as OneM2M and OMA Lightweight M2M. The Eclipse M2M
+Industry Working Group already encompasses several framework and protocol
+projects, but is still missing an implementation of CoAP, which currently
+gains more and more attention.</p>
+
+<h2>Scope</h2>
+
+Californium (Cf) provides an implementation of the Constrained Application
+Protocol (CoAP) standard. The scope of this project can be summarized as follows:
+
+<ul>
+	<li>Maintain the base implementation of CoAP by providing bug-fixes,
+		optimizations, and necessary documentation.</li>
+	<li>Continue implementing complementary specifications by the IETF CoRE
+		working group.</li>
+	<li>Maintain the included Web resource framework for M2M and Internet of
+		Things applications.</li>
+	<li>Provide seamless integration with M2M projects for OMA Lightweight M2M
+		and OneM2M such as the <a
+		href="http://eclipse.org/proposals/technology.om2m/">OM2M proposal</a>.
+		</li>
+	<li>Implement a security API that allows for authentication and
+		authorization as defined by IETF, OMA, and OneM2M activities.
+		Californium (Cf) comes with the <a
+		href="https://github.com/mkovatsc/Scandium">Scandium (Sc)</a> project
+		as DTLS implementation.</li>
+	<li>Maintain the <a href="https://github.com/mkovatsc/Actinium">Actinium
+		(Ac)</a> App-server for Californium with its server-side JavaScript
+		support for lightweight M2M and Internet of Things applications.</li>
+	<li>Extend Android support of the CoAP base implementation.</li>
+</ul>
+
+<h2>Description</h2>
+
+<p>Californium (Cf) is an open source implementation of the Constrained
+Application Protocol (CoAP). It is written in Java and targets unconstrained
+environments such as back-end service infrastructures (e.g., proxies, resource
+directories, or management services) and less constrained environments such as
+embedded devices running Linux (e.g., smart home controllers or vehicle
+sensors). Californium (Cf) has been running code for the IETF standardization of
+CoAP and was recently reimplemented to straighten changed design decisions, but
+also to improve its performance with focus on scalability. The new
+implementation was successfully tested at the ETSI CoAP#3 and OMA LWM2M
+Plugtests in November 2013.</p>
+
+<p>The CoAP framework already provides the following features:</p>
+
+<ul>
+	<li>Implementation of the Proposed Standard of CoAP
+		(<a
+		href="http://tools.ietf.org/html/draft-ietf-core-coap-18">
+		draft-ietf-core-coap-18</a>)</li>
+	<li>Implementation of the Observe draft
+		(<a
+		href="http://tools.ietf.org/html/draft-ietf-core-observe-11">
+		draft-ietf-core-observe-11</a>)</li>
+	<li>Implementation of the Blockwise Transfers draft
+		(<a
+		href="http://tools.ietf.org/html/draft-ietf-core-block-14">
+		draft-ietf-core-block-14</a>)</li>
+	<li>Implementation of the Resource Directory draft
+		(<a
+		href="http://tools.ietf.org/html/draft-ietf-core-resource-directory-00">
+		draft-ietf-core-resource-directory-00</a>)</li>
+	<li>CoAP-HTTP cross-proxy support through httpcore-nio and guava</li>
+	<li>Web resource framework with an advanced concurrency model for the
+		implementation of Internet of Things applications</li>
+	<li>Basic DTLS 1.2 support through <a
+		href="https://github.com/mkovatsc/Scandium">Scandium (Sc)</a></li>
+	<li>Wrapper for OSGi</li>
+	<li>Benchmark tool for measuring the performance of CoAP servers</li>
+</ul>
+
+<p>Additional work is currently carried out on the following topics:</p>
+
+<ul>
+	<li>Group communication through IP multicast and management through
+		<a href="http://tools.ietf.org/html/draft-ietf-core-groupcomm-17">
+		draft-ietf-core-groupcomm-17</a></li>
+	<li>Advanced congestion control</li>
+	<li>Upgrade of the Actinium (Ac) JavaScript application server to the
+		new version of Californium (Cf)</li>
+</ul>
+ 
+<h2>Why Eclipse?</h2> 
+
+The Eclipse foundation can provide a long-term home for the project. With the
+M2M Industry Working Group, it can produce more attention to the Californium
+(Cf) project to attract more contributors to improve the support. In the other
+direction, the M2M Industry Working Group can gain from the CoAP support, which
+is currently missing for corresponding M2M projects.
+
+<h2>Initial Contribution</h2>
+
+<p>The Californium (Cf) project will be provided with an initial contribution
+from ETH Zurich:</p>
+
+<ul>
+	<li>The <a href="https://github.com/mkovatsc/Californium">Californium
+		(Cf)</a> CoAP framework in Java</li>
+	<li>The <a href="https://github.com/mkovatsc/Scandium">Scandium (Sc)</a>
+		DTLS 1.2 implementation</li>
+	<li>The <a href="https://github.com/mkovatsc/Actinium">Actinium (Ac)</a>
+		application server implementation</li>
+	<li>The <a href="https://github.com/mkovatsc/element-connector">element-connector</a>
+		module, which allows modularization of the project for different
+		platforms and use cases.</li>
+</ul>
+ 
+<h2>Legal Issues</h2>
+
+<p>Californium will be dual-licensed under the Eclipse Public License (EPL) 1.0
+and the Eclipse Distribution License (EDL).</p>
+
+<p>Matthias Kovatsch and ETH Zurich own the full copyright of the initial
+contribution, which was published under 3-clause BSD license.</p>
+
+<p>Californium (Cf) currently includes the following third party libraries
+via Maven for the optional HTTP-CoAP cross-proxy support:
+<ul>
+	<li>Apache HttpCore NIO 4.2.1, ASL 2.0</li>
+	<li>Apache HttpClient 4.2.1, ASL 2.0</li>
+	<li>Guava, ASL 2.0</li>
+</ul>
+</p>
+
+<p>The optional Actinium (Ac) extension currently includes the following
+third party libraries via Maven:
+<ul>
+	<li>Mozilla Rhino 1.7R3, MPL 2.0</li>
+	<li>E4XUtils 1.0 by Anthony Elder, permission to use and distribute</li>
+</ul>
+</p>
+ 
+<h2>Committers</h2>
+
+<!-- 
+	List any initial committers that should be provisioned along with the
+	new project. Include affiliation, but do not include email addresses at
+	this point.
+ -->
+
+<p>The following individuals are proposed as initial committers to the project:</p>
+
+<dl>
+	<dt>Matthias Kovatsch, ETH Zurich</dt>
+	<dd>Matthias Kovatsch is the creator and main architect of the Californium
+		(Cf), Scandium (Sc), and Actinium (Ac) projects and will be project
+		(co-)lead.</dd>
+	<dt>Martin Lanter, ETH Zurich</dt>
+	<dd>Martin Lanter is the main developer of the initial Californium (Cf)
+		and Actinium (Ac) projects and will contribute to the base
+		implementations of CoAP.</dd>
+	<dt>Julien Vermillard, Sierra Wireless</dt>
+	<dd>Julien Vermillard is the author of the Leshan OMA Lightweight M2M server
+		implementation. He will contribute LWM2M functionality in this new
+		project.
+	</dd>
+</dl>
+
+<p>We welcome additional committers and contributions.</p>
+
+<!-- 
+	Describe any initial contributions of code that will be brought to the 
+	project. If there is no existing code, just remove this section.
+ -->
+
+<h2>Mentors</h2>
+
+<!-- 
+	New Eclipse projects require a minimum of two mentors from the Architecture
+	Council. You need to identify two mentors before the project is created. The
+	proposal can be posted before this section is filled in (it's a little easier
+	to find a mentor when the proposal itself is public).
+ -->
+
+<p>The following Architecture Council members will mentor this
+project:</p>
+
+<ul>
+	<li>Mentor 1</li>
+	<li>Mentor 2</li>
+</ul>
+
+<h2>Interested Parties</h2>
+
+<!-- 
+	Provide a list of individuals, organisations, companies, and other Eclipse
+	projects that are interested in this project. This list will provide some
+	insight into who your project's community will ultimately include. Where
+	possible, include affiliations. Do not include email addresses.
+ -->
+
+<p>The following individuals, organisations, companies and projects have 
+expressed interest in this project:</p>
+
+<ul>
+	<li>Sierra Wireless</li>
+	<li>Thierry Monteil and Mahdi Ben Alaya, LAAS-CNRS (France)</li>
+</ul>
+
+<h2>Project Scheduling</h2>
+
+The initial contribution is already available on GitHub with automated Travis-CI
+builds and a Maven repository.
+
+<h2>Changes to this Document</h2>
+
+<!-- 
+	List any changes that have occurred in the document here.
+	You only need to document changes that have occurred after the document
+	has been posted live for the community to view and comment.
+ -->
+
+<table>
+	<tr>
+		<th>Date</th>
+		<th>Change</th>
+	</tr>
+	<tr>
+		<td>10-December-2013</td>
+		<td>Added Martin Lanter as committer and Android under scope</td>
+	</tr>
+	<tr>
+		<td>04-December-2013</td>
+		<td>Added Sierra Wireless and LAAS-CNRS as interested party</td>
+	</tr>
+	<tr>
+		<td>29-November-2013</td>
+		<td>Document created</td>
+	</tr>
+</table>
+</body>
+</html>
\ No newline at end of file