<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<meta content="text/html; charset=UTF-8" http-equiv="content-type">
		<title>2019 Annual Eclipse Community Report</title>
	</head>
	<body lang="EN-US">
		<div id="maincontent">
            <div id="midcolumn">
                <h1 id="2019AnnualEclipse Foundation Community Report">
                2019 Annual Eclipse Foundation Community Report </h1>
                <p>Published June 2019</p>
                <p>Welcome to the eighth annual Eclipse Foundation Community Report. Comments and feedback on the style and content would be appreciated at <a href="mailto:emo@eclipse.org">emo@eclipse.org</a>. </p>
                <p>Except where noted this report will cover the period April 1, 2018 to March 31, 2019.</p>
                <ul class="list-no-bullets">
                    <li><a href="#2019AnnualEclipseFoundationCommunityReport">2019 Annual Eclipse Foundation Community Report</a></li>
                    <ul class="list-no-bullets">
                        <li><a href="#whoWeAre">Who We Are</a></li>
                        <li><a href="#strategy">Strategy</a></li>
                        <li><a href="#someKeyDecisions">Some Key Decisions</a></li>
                        <li><a href="#membership">Membership</a></li>
                        <li><a href="#workingGroups">Working Groups</a></li>
                        <ul class="list-no-bullets">
                            <li><a href="#jakartaEE">Jakarta EE</a></li>
                            <li><a href="#internetofThings">Internet of Things (IoT)</a></li>
                            <li><a href="#openMDM">openMDM</a></li>
                            <li><a href="#openPASS">openPASS</a></li>
                            <li><a href="#locationTech">LocationTech</a></li>
                            <li><a href="#science">Science</a></li>
                            <li><a href="#polarSys">PolarSys</a></li>
                            <li><a href="#eclipseLTSWorkingGroup">Eclipse Long-term Support Working Group</a></li>
                        </ul>
                        <li><a href="#conferencesEvents">Conferences and Events</a></li>
                        <li><a href="#financials">Financials</a></li>
                        <li><a href="#marketingBrandManagement">Marketing and Brand Management</a></li>
                        <li><a href="#intellectualPropertyManagement">Intellectual Property Management</a></li>
                        <li><a href="#innovation">Innovation</a></li>
                        <ul class="list-no-bullets">
                            <li><a href="#simultaneousRelease">Simultaneous Release</a></li>
                            <li><a href="#committersProjects">Committers and Projects</a></li>
                        </ul>
                            <li><a href="#research">Research</a></li>
                        <li><a href="#infrastructureCommunitySupport">Infrastructure and Community Support</a></li>
                        <ul class="list-no-bullets">
                            <li><a href="#serversInfrastructure">Servers and Infrastructure</a></li>
                            <li><a href="#commonBuildInfrastructure">Common Build Infrastructure</a></li>
                            <li><a href="#gitHubThirdPartySiteIntegration">GitHub and third-party site integration</a></li>
                            <li><a href="#developersDevelopersDevelopers">Developers, Developers, Developers</a></li>
                        </ul>
                    </ul>
                </ul>
                <h2 id="whoWeAre">
                Who We Are </h2>
                <p>The Eclipse Foundation's mission is summarized as follows:</p>
                <blockquote>The Eclipse Foundation's purpose is to advance our open source software projects and to cultivate their communities and business ecosystems. </blockquote>
                <p>This makes the Eclipse community a unique open source community. Not only are we interested in building open source code and community, but we are equally committed to creating a commercially successful ecosystem around that code. This combination of interests has been a key part of Eclipse&#39;s success. </p>
                <p>In short, our vision for the Eclipse community is:</p>
                <blockquote>To be the leading community for individuals and organizations to collaborate on commercially-friendly open source.</blockquote>
                <h2 id="strategy">
                Strategy </h2>
                <p>The following are the strategic goals of the Eclipse Foundation for 2019, as established by the Board of Directors. It is worth noting these are consistent with the goals established for 2018, and represent a continued drive towards meeting our vision for the Eclipse community.  </p>
                <ol start="1">
                    <li>Be a leading open source community for runtimes and tools. Although the Eclipse Foundation has been shipping runtimes for its entire history, with projects such as Eclipse Hono, Eclipse Vert.x, Eclipse GlassFish, and Jakarta EE, this has substantially grown over the last couple of years. It is our intent to increase our portfolio of runtimes and infrastructure projects. The Eclipse Foundation is a leader in defining development platforms that are freely licensed and open source, and that provide support for the full breadth of the application lifecycle. The Eclipse community is best known for its desktop IDEs such as the Eclipse Java development tools (JDT) and the C/C++ development tools (CDT), and these continue to flourish. However, under the leadership of the Eclipse Cloud Development top-level project, the Eclipse Che, Eclipse Dirigible, Eclipse Orion, and just recently Eclipse Theia projects are working on new tooling platforms for cloud-based and web development.  </li>
                    <li>Attract and foster projects and communities in emerging technologies. This has been one of the continuous objectives of the Foundation for a number of years. The Eclipse Foundation staff and leading members of our community seek to attract and cultivate projects and members in emerging technology domains. In 2019, we are expecting to see a number of new working groups established to support many of these new projects to better enable collaboration among key stakeholders in these technology domains.  </li>
                    <li>Cultivate the growth of our projects, communities, and ecosystems. The creation of a large community of commercial and open source organizations that rely on and/or complement Eclipse technology continues to be a major factor in the success of Eclipse, and a key differentiator in the marketplace. Each time Eclipse technology is used in the development of a product, service, or application, the Eclipse community is strengthened. Our goal in 2019 is to continue to focus our attention on the success of our working groups and on new Eclipse projects that focus on particular industry segments such as cloud native Java, IoT, edge, distributed ledger, web development, mobile, automotive, and science, and to continue to support and assist our broad set of Eclipse projects in the growth and vibrancy of their communities. 2019 will also see the Foundation implement the newly instituted Eclipse Foundation Specification Process, which is of interest to a number of different communities, notably the Jakarta EE working group. </li>
                    <li>Create value for all its membership classes. The Eclipse Foundation serves many members whose primary interest is leveraging Eclipse technologies in proprietary offerings such as products and services. The Eclipse Foundation continues to focus its energies to ensure that commercial opportunity exists within the Eclipse ecosystem. Committers are also members of the Eclipse Foundation and are in many ways its backbone. Over the past year, improvements to the common build infrastructure (CBI) have been undertaken to provide a more robust and extensible build infrastructure to the projects, and to the benefit of our members. Improvements and enhancements have also been made to our development and intellectual management processes; in particular, the Foundation's Architecture Council completed in 2018 a major overhaul of the Eclipse Development Process, which is the cornerstone process used by all our projects. </li>
                    <li>Increase our revenue. Aligned with the four strategic goals listed above is an explicit goal to increase our revenue, particularly from membership and working groups. Specifically, the goal is to both increase the number of new members as well as to increase the revenues from existing members by demonstrating to members the value to them of increasing their level of membership and/or having them participate in additional working groups. There is also a renewed effort to engage more enterprise organizations as members. Related to membership, the Foundation introduced in late 2017 <a href="https://www.eclipse.org/org/workinggroups/mfi_program.php">Member Funded Initiatives</a> as a means for members, either directly or in collaboration with other members, to engage with the Foundation to fulfill specific objectives of importance to the member(s). It is expected that these MFIs will continue to grow as a source of funding in alignment with the Foundation's stated objectives. </li>
                </ol>
                <h2 id="someKeyDecisions">
                Some Key Decisions </h2>
                <p>Over the past year, the Board has made a number of strategic decisions that will impact how Eclipse evolves in the future. A brief summary of these is listed below. More details can be found in the <a href="http://www.eclipse.org/org/foundation/minutes.php#board">minutes of the Board</a>, found on our website. </p>
                <ul>
                    <li>Introduce Specification Projects. Specification projects are new way to support industry collaboration at the Eclipse Foundation. To support the work of the Jakarta EE Working Group the Foundation introduced a new process to support the creation and maintenance of open specifications. For Jakarta EE this process allows for the continued evolution of the Java EE specifications. These were formerly at the JCP, and are now at Eclipse as Jakarta EE specifications. The new specification process adopts a code-first development approach that enables experimentation in code prior to a specification being completed, and for the specifications to follow based on the experiences gained through that experimentation. The new specification process also addresses intellectual property flows to ensure that contributions, particularly patent rights associated with those contributions, are properly captured by the process and those rights are granted to compatible implementations. There are already additional working groups getting underway, such as Sparkplug, that will also make use of our specification process.  </li>
                    <li>Increase the Executive Director's discretion on project licensing: The Eclipse Foundation has its own license - the Eclipse Public License - that is sometimes referred to as a &ldquo;weak copyleft&rdquo; license. The EPL was refreshed in 2017. Under our Bylaws, use of any license other than the EPL requires unanimous approval of the Board. However, there are often good reasons for the Eclipse community to host projects using permissive licenses, and the Board and community have become increasingly comfortable with this over the years. As such, in May 2018 the Board delegated to the Executive Director the ability to approve projects using either the Apache License v2.0 or the BSD 3 Clause license.  </li>
                    <li>Overhaul our Committer and Contributor Agreements: The Eclipse Foundation documents the originator of all contributions to its projects. Contributors are required to complete the Eclipse Contributor Agreement, which basically states that contributors understand that their contributions are being made under the respective project's license. Committers have to enter into a similar type of agreement, either with an individual agreement, or covered by an agreement with their employer if their employer is a member of the Eclipse Foundation and enters into a separate agreement enabling this coverage. All of the documents related to these contributions were updated in the fall of 2018 in order to both more clearly identify their GDPR compliance, and to add language that explicitly captures the intellectual property flows for contributions to specification projects. </li>
                </ul>
                <h2 id="membership">
                Membership </h2>
                <p>As of March 31, 2019, the Eclipse Foundation has ten (10) strategic members, including CA Technologies, CEA List, Fujitsu, IBM, Obeo, Oracle, Red Hat, Robert Bosch GmBH, SAP, and Tomitribe.  </p>
                <p>Of note, the Eclipse Foundation also counts over 1,586 committers. Committers are entitled to membership in the Foundation, and play a valuable role in the Eclipse Foundation governance, including representation on the Eclipse Board and many working group steering committees.  </p>
                <p>As of March 31, 2019, the Foundation counts a total of 273 organizations as members. A total of 28 new companies joined as new members of the Foundation from April 1, 2018 through March 31, 2019, including </p>
                <p>Advantest Europe GmbH, Baloise Holding AG, Cirrus Link, Cloud Native Computing, Cloud To Go, Inc., Cloudreach Europe Limited, Codescoop, Edgeworx, Inc., Fraunhofer IESE, Fujitsu Limited, iJUG, iMotion Automotive Technology (Suzhou) Co. Ltd, Inductive Automation LLC, Istanbul JUG, Izmir JUG, Karakun AG, K-Teq Srls, Kuehn & Wey Software, Liferay, Mettenmeier GmbH, Mizuho International, OpenDevise Inc, RTD Embedded Technologies Inc., Toyota Europe, Tradista, TU Dresden, Tu Graz, and Useopen Middleware. </p>
                <h2 id="workingGroups">
                Working Groups </h2>
                <p>The recruitment of new projects and members has been greatly assisted by the strategy of creating <a href="https://www.eclipse.org/org/workinggroups/">Eclipse working groups</a>. As participation in working groups grows, our membership has grown and diversified into different industries such as automotive, aerospace, geospatial, edge computing and the Internet of Things.  </p>
                <h4 id="jakartaEE">
                Jakarta EE </h4>
                <p>The Jakarta EE Working Group comprises six (6) Strategic and fifteen (15) Participant members, and over 100 committers. It was formed in 2018 as part of the contribution of Java EE to Eclipse, which was announced by Oracle in the fall of 2017. The working group, and the corresponding Eclipse Enterprise for Java (EE4J) top-level project, is an open source initiative intended to create technical specifications, implementations of those APIs, and technology compatibility kits for Java runtimes that enable development, deployment, and management of server-side and cloud-native applications. EE4J is based on the Java&trade; Platform, Enterprise Edition (Java EE) standards, and uses Java EE 8 as the baseline for creating new specifications and implementations. Since it was formed, the Jakarta EE Working Group has focused on the move of Java EE technologies to the Eclipse Foundation where they will evolve under the Jakarta EE brand, with the goal of accelerating business application development for a cloud-native world. The working group's strategic members are the world's Java ecosystem leaders, including Fujitsu, IBM, Microsoft, Oracle, Red Hat, Payara, and Tomitribe.  </p>
                <p>Specifically, the Jakarta EE Working Group purpose is to:</p>
                <ul>
                    <li>Define and promote the &quot;Jakarta EE&quot; brand and its value in the marketplace </li>
                    <li>Provide vendor neutral marketing and other services to the Jakarta EE ecosystem </li>
                    <li>Define and manage a specification process to formalize the specifications that are defined within the scope of this working group </li>
                    <li>Define compatibility rules and a compatibility and branding process for implementations of these specifications to ensure application portability </li>
                    <li>Define licensing and intellectual property flows that encourage community participation, protect community members, and encourage usage </li>
                    <li>Manage the overall technical and business strategies for EE4J and related projects </li>
                    <li>Establish and drive a funding model that enables this working group and its community to operate on a sustainable basis </li>
                </ul>
                <p>Jakarta EE Working Group achievements through March, 2019 include the following: </p>
                <ul>
                    <li>Publishing the 2018 <a href="https://jakarta.ee/documents/insights/2018-jakarta-ee-developer-survey.pdf">Jakarta EE Developer Survey findings</a>
                    </li>
                    <li><a href="https://projects.eclipse.org/projects/ee4j.glassfish/downloads">Eclipse Glassfish 5.1 </a>release on Jan. 29, 2019 and certified as Java EE 8 compatible </li>
                    <li><a href="https://www.eclipse.org/projects/efsp/">Eclipse Foundation Specification Process (EFSP) v1.1 </a>
                    </li>
                    <li><a href="https://jakarta.ee/about/jesp/">Jakarta EE Specification Process (JESP) v1.0 </a>
                    </li>
                    <li>Participating at numerous conferences </li>
                    <li><a href="https://www.meetup.com/jakartatechtalks_/">Jakarta Tech Talks</a>
                    </li>
                    <li>Establishing a high-level delivery plan for Jakarta EE 8 under development within the working group  </li>
                    <li>Gathering data for the 2019 Jakarta EE Developer Survey </li>
                </ul>
                <h4 id="internetofThings">
                Internet of Things (IoT) </h4>
                <p>The Eclipse IoT Working Group is a community of organizations and individuals building open source technology that is used to build IoT solutions. Eclipse IoT has 34 different open source projects and 44 working group members. The technology portfolio includes technology for embedded constrained devices, IoT gateways, and IoT cloud platforms. </p>
                <p>New members of the Eclipse IoT Working Group in the past 12 months include BREDEX, Calypso Networks Association, Cirrus Link Solutions, Compex Commerce, Edgeworx, the Engineering Group, Fondazione Bruno Kessler, Inductive Automation, and Kynetics. </p>
                <p>The IoT Working Group has actively supported the efforts of the Eclipse Foundation as it works with the respective members engaged in establishing the new Edge, Sparkplug, and Tangle EE working groups. It is expected that some of the members of the IoT WG will join those emerging working groups as they get formally established, since they are tightly coupled to the Internet of Things. </p>
                <p>A number of new projects joined the Eclipse IoT community in the past year, including:</p>
                <ul>
                    <li>Eclipse Keyple, a set of libraries allowing developers to easily implement fast and secure off-line contactless transactions based on the Calypso standard  </li>
                    <li>Eclipse MRAA, a low-level library written in the C/C++ language which abstracts the basic I/O capabilities of popular IoT platforms and boards and presents a single, concise API </li>
                    <li>Eclipse Tahu, a set of client libraries implementing the Sparkplug specification; the intent and purpose of the Sparkplug specification is to define an MQTT topic namespace, payload, and session state management that can be applied generically to the overall IIoT market sector  </li>
                    <li>Eclipse UPM, a user space collection of sensor and actuator libraries written in the C/C++ language </li>
                    <li>Eclipse VOLTTRON, a Linux-based energy monitoring platform capable of running on small, single-board computers as well as in the cloud </li>
                    <li>Eclipse Yasham, a modular cloud native platform that interconnects a wide range of consumer IoT & smart home services via extensible software adapters  </li>
                </ul>
                <p>The Eclipse IoT Working Group continues to undertake a number of community outreach and development programs. </p>
                <ul>
                    <li>Eclipse IoT Days were hosted in Grenoble, France; Ludwigsburg, Germany; San Jose, USA; and Singapore. </li>
                    <li>In April 2018, the WG published the results of the fourth developer survey. The WG also organized the <a href="https://www.slideshare.net/Eclipse-IoT/iot-developer-survey-2019-report">fifth IoT Developer Survey</a>, which saw the number of respondents grow by 240% from the previous year. The results of the fifth survey were published on April 17, 2019. As in previous years, the survey is often referenced and quoted in the industry.  </li>
                    <li>Eclipse IoT supported and promoted its members through participation at several trade shows, including IoT Solutions World Congress, Red Hat Summit, IoT World, Bosch Connected World, and others. </li>
                    <li>The Working Group organized 15 webinars under the banner of its <a href="https://www.meetup.com/Virtual-IoT/">Virtual IoT Meetup</a>. Total attendance in the meetups was a little over 2,400 members as of March 31, 2019. </li>
                    <li>A new <a href="https://iot.eclipse.org/resources/case-studies/Eclipse%2520IoT%2520Success%2520Story%2520-%2520Bosch.pdf">case study</a> has been published, showcasing what companies are building with Eclipse IoT Technology. </li>
                    <li>A working group marketing committee was established in January 2019 and started to meet the following month. It brings together marketing experts from the member organizations to align strategies, amplify messaging, share best practices, and create a net positive impact. </li>
                </ul>
                <h4 id="openMDM">
                openMDM </h4>
                <p>The Eclipse openMDM (measured data management) Working Group aims to foster and support an open and innovative ecosystem providing tools and systems, qualification kits, and adapters for standardized and vendor independent management of measurement data in accordance with the ASAM ODS standard. </p>
                <p>Since May 2017, the <a href="https://www.openmdm.org/">openMDM working group</a> has changed its development effort. The Eclipse Foundation has been tasked to contract a product manager as well as a standing development team funded by the working group. Since then, development of technology in the related project <a href="https://projects.eclipse.org/projects/technology.mdmbl/">Eclipse mdmbl</a> has made excellent progress. In 2018, the project completed its IP review, adopted the Eclipse Public License 2.0, and completed its first release. </p>
                <p>This project release has enabled the founders and driver members of the openMDM working group to move forward with building in-house solutions and products on top of it, thus creating new opportunities for the consulting and product companies in the openMDM ecosystem. On the technology side, the current focus is on in-sourcing external contributions from Daimler and BMW into the open-source project. </p>
                <p>openMDM technology is expected to become part of the <a href="https://wiki.eclipse.org/OpenADx">Eclipse OpenADx</a> initiative. </p>
                <h4 id="openPASS">
                openPASS </h4>
                <p>The Eclipse openPASS Working Group was initiated in August 2017 by three German car manufacturers: BMW, Daimler, and Volkswagen. In 2018, the German T&Uuml;V S&uuml;d, Toyota Europe, and Robert Bosch joined the openPASS Working Group. </p>
                <p>The rise of advanced driver assistance systems and partially automated driving functions leads to the need of virtual simulation to assess these systems and their effects. This especially refers to, but is not limited to, safety effects in traffic. There are various methods and tools for prospective evaluation of safety systems with respect to traffic safety. Implementing the methodology by creating and maintaining the SIM@openPASS platform will support reliability and transparency of results obtained by simulation. The growing number, complexity, and variety of those vehicle functions make simulation an essential part in research, development, testing, public rating, and homologation, and is thus, directly or indirectly, required by all stakeholders in vehicle safety, including manufacturers, suppliers, insurance companies, legislators, consumer advocates, and academia. </p>
                <p>The <a href="https://wiki.eclipse.org/OpenPASS-WG">Eclipse openPASS Working Group</a> is the driving force behind related development of core frameworks and modules. The Eclipse openPASS WG endeavors to make sure that openPASS-related Eclipse projects are in line with external important developments. The goal is a broad availability of different modules. </p>
                <p>Work on the related <a href="https://projects.eclipse.org/proposals/simopenpass">Eclipse simopenpass project</a> started immediately after the creation of the working group and was mostly executed by the fourth founding member, the Munich-based company ITK Engineering GmbH (now a member of the Robert Bosch Group). In 2018, the code base was stabilized and is now usable. A full release is planned for 2019.  </p>
                <p>For the future, we expect code consolidation and growth of the related ecosystem. </p>
                <p>openPASS technology is expected to become part of the <a href="https://wiki.eclipse.org/OpenADx">Eclipse openADx</a>
                    initiative. </p>
                <h4 id="locationTech">
                LocationTech </h4>
                <p>Location Tech is a working group developing technologies with spatial awareness. Now in its sixth year, <a href="https://www.locationtech.org/">LocationTech</a>
                    includes 13 members and 13 projects. LocationTech had its second simultaneous release of projects in 2018. </p>
                <p>Strategic members of the LocationTech working group include IBM, Oracle, and Red Hat. Participant solutions members include Astraea, Azavea, CCRi, OGC, and RadiantSolutions. </p>
                <p>LocationTech, in conjunction with Eclipse Foundation, was host and organizer of FOSS4G-NA 2018 in St. Louis in May, 2018. This represented the third time LocationTech played this role. The conference, as was the case in 2015 and 2016 when it was hosted, was a great success, bringing together more than 500 people interested in geospatial technologies. </p>
                <p>Also of note, in addition to the projects already hosted as part of LocationTech, is the Eclipse ImageN project. This project is long awaited by many in the geospatial arena as it provides an extensible, on-demand image processing library with no artificial restrictions on raster size or number of bands.  </p>
                <h4 id="science">
                Science </h4>
                <p>The Science Working Group (SWG) works to solve the problems of making science software interoperable and interchangeable. It was founded in June 2014. The <a href="https://science.eclipse.org/">Science working group</a> consists of 10 members and 11 projects. This report covers the period from March 2018 to March 2019. </p>
                <p>The group has the following members: </p>
                <ul>
                    <li>Steering Committee members: Itema, Oak Ridge National Laboratory, and the Eclipse Foundation </li>
                    <li>Participating members: Airbus, Clemson University, IFP Energies Nouvelles, iSencia Belgium, Lablicate, Open Analytics, Soleil Synchrotron, TECH'Advantage Group, The Facility for Rare Isotope Beams, and Uppsala University </li>
                </ul>
                <p>In its fifth year, the following projects were active in the working group: </p>
                <ul>
                    <li>Eclipse ICE, EAVP, TeXlipse, January, Triquetrum, Chemclipse, SWTChart, StatET, DAWNSci, XACC, and Rich Beans </li>
                    <li>No new projects were added to the portfolio in this reporting period. </li>
                </ul>
                <p>At EclipseCon Europe in October 2018, the Eclipse Science working group hosted a session on the community day. </p>
                <p>Also in October 2018, the group coordinated their annual common release for some of its projects. The aim was to make the working group more visible and ensure that some of the projects depending on each other were synchronized. </p>
                <p>The most recent <a href="https://www.eclipse.org/community/eclipse_newsletter/2019/april/">Eclipse Science Newsletter</a>
                    was published in April 2019. </p>
                <p>The Steering Committee has also worked with Eclipse Foundation leadership to address key initiatives for 2019, including holding a physical conference, updating membership and group information on the website, and recruiting new members. </p>
                <h4
                    id="polarSys">
                PolarSys </h4>
                <p>The PolarSys Working Group focused on providing open source development solutions for Software and Systems Engineering. In 2018, the PolarSys Steering Committee took the formal decision to terminate the PolarSys Working Group, effective December 31, 2018. All of the projects related to the PolarSys Working Group remain active. </p>
                <p>For its six years of operations, the PolarSys Working Group served the Systems Engineering community of the Eclipse Foundation well, not only by supporting its two main open source solutions, Papyrus and Capella, but also by fostering research and innovation in the domain with several projects like PolarSys CHESS (an extension of Papyrus dedicated to the development of high-integrity systems) and PolarSys OpenCert (a tool to support the safety and security assessment and certification of safety-critical systems). </p>
                <p>In order to ensure sustainability of all the investments done with PolarSys, the open source projects continue to operate as regular Eclipse projects under the PolarSys top-level Eclipse project. The migration of the separated PolarSys Infrastructure with the global Eclipse infrastructure is still handled by the EMO. </p>
                <p>During the past 12 months, the PolarSys members participated in several events in order to promote PolarSys and the Industry consortia: <a href="https://www.erts2018.org">ERTS 2018</a>, <a href="https://www.incose.org/symp2018/home">Incose Symposium</a>, two regional Incose events, <a href="https://www.incose.org/emeasec2018/home">Incose EMEASEC</a>
                    and <a href="https://www.eventbrite.com/e/incose-western-states-regional-conference-wsrc-tickets-41859421657%23">Incose Western States</a>, and <a href="https://modelsconf2018.github.io/">Models 2018</a>. </p>
                <p>During the year, PolarSys members launched several development activities. </p>
                <ul>
                    <li>With Eclipse Source and ZeligSoft respectively for the development and the documentation of a simplified version of Papyrus that targets users of UML with a focus on ease of use: <a href="https://wiki.eclipse.org/Papyrus_UMLLight">Papyrus UML Light</a>. </li>
                    <li>A PolarSys release train, with a focus on the scope of Capella and related projects, to enable medium-term support (~3years) for Capella. </li>
                </ul>
                <p>During Q1 2019, the EMO worked with the Capella and Papyrus active supporters to study the opportunity to create dedicated working groups around those projects. In both cases, the conclusion was that for the moment, the Capella and Papyrus Eclipse projects provide the right framework for collaboration and that Eclipse Working Groups will be created in the future if needed to coordinate closer collaboration. </p>
                <h4
                    id="eclipseLTSWorkingGroup">
                Eclipse Long-term Support Working Group </h4>
                <p>As was planned, the Eclipse Long-Term-Support Working Group had become inactive and was terminated in the second quarter of 2018. </p>
                <h2
                    id="conferencesEvents">
                Conferences and Events </h2>
                <p>The EclipseCon conferences, Eclipse Days, and DemoCamps are the primary events that the Eclipse Foundation supports to help foster the strong personal relationships in the community that only face-to-face contact can create. In addition, the Foundation was engaged in organizing a number of events in support of its working groups and projects, including FOSS4G-NA, Eclipse IoT Days, and the Eclipse VOLTTRON Days. All Eclipse community members are encouraged to participate and/or organize events, as this remains one of the most effective ways to develop community for projects. </p>
                <p>Of note, the thirteenth annual EclipseCon Europe was held in October 2018. As has been the case for many years, this event was co-located with the OSGi Community Event, and included a great collection of technical sessions, BoFs, the IoT Playground, and was highlighted by an engaging talk by Harish Pillay of Red Hat, laying out his set of &ldquo;Lessons on Open Source from a 25-Year-Old Company.&rdquo; The conference also hosted a number of dedicated events, including the IoT Day, the CDT Summit, and Project Quality Day, and for the first time a track on Cloud Native Java. Feedback from the conference from both attendees and sponsors continues to be very strong. </p>
                <p>EclipseCon France was held in June 2018. The conference returned to its original format as a full two-day event. The keynote delivered by Simon Phipps on &ldquo;The Third Decade of Open Source: Why It Worked and What&#39;s Next&rdquo; was engaging and inspiring. The Unconference was held this year at the Hotel Pullman, which was a great improvement over previous years, and the feedback on the event was extremely positive. It was decided based on feedback to pause EclipseCon France in 2019, with the plan of returning in 2020. </p>
                <h2
                    id="financials">
                Financials </h2>
                <p>The Eclipse Foundation's fiscal year end is December 31. Our auditors are the firm Deloitte & Touche, LLP. The Eclipse Foundation is incorporated in the State of Delaware, USA as a 501(c)6 not-for-profit. Our headquarters are located in Ottawa, Canada. The Eclipse Foundation also has a wholly-owned German subsidiary, Eclipse Foundation Europe GmbH. Membership renewals remained strong, and working group revenue and website advertising were both steady compared to 2017. The organization continues to be on a solid financial footing, and the migration of Java EE to the Eclipse Foundation, initiatives in the automotive space, and the continued evolution of IoT and related initiatives, collectively represent opportunities for new membership growth. The financial impact of strategic membership is always significant to the Foundation. We were pleased to have Fujitsu, Payara Services, and Tomitribe all join as strategic members in 2018, largely due to their participation in the new Jakarta EE working group. Both Payara and Tomitribe will step back from Strategic membership in 2019, as the requirement for Strategic members of Jakarta to be Strategic members of the Foundation were relaxed by the Jakarta EE Steering Committee in 2018. </p>
                <p>Of note, the Strategic members of the Jakarta EE working group each committed to a minimum of three (3) years of funding to the working group. This is a first for working groups at Eclipse, and enables both the working group, and the Foundation in support of it, to make a significant investment in the working group's objectives. </p>
                <p>Looking forward to 2019, the Board has approved a budget forecasting a $0.3M loss on total revenues of $6.3M. </p>
                <table class="table">
                    <thead>
                        <tr>
                            <th colspan="1" rowspan="1">
                                In US $ millions 
                            </th>
                            <th colspan="1" rowspan="1">
                                2015 
                            </th>
                            <th colspan="1" rowspan="1">
                                2016 
                            </th>
                            <th colspan="1" rowspan="1">
                                2017 
                            </th>
                            <th colspan="1" rowspan="1">
                                2018 
                            </th>
                            <th colspan="1" rowspan="1">
                                2019 Budget 
                            </th>
                            <th colspan="1" rowspan="1">
                            </th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td colspan="1" rowspan="1">
                                <p>Revenue </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>4.9 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>5.4 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>5.6 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>5.9 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>6.3 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                            </td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">
                                <p>Expenses </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>4.0 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>5.6 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>5.7 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>6.2 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>6.6 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                            </td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">
                                <p>Net Income </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>0.0 </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>(0.2) </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>(0.1) </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>(0.3) </p>
                            </td>
                            <td colspan="1" rowspan="1">
                                <p>(0.3) </p>
                            </td>
                            <td colspan="1" rowspan="1">
                            </td>
                        </tr>
                    </tbody>
                </table>
                <h2 id="marketingBrandManagement">Marketing and Brand Management </h2>
                <p>Eclipse Foundation Brand Evolution </p>
                <ul>
                    <li>The new Eclipse Foundation logo was unveiled in April 2018. The new logo was produced to create a visual identity for the Foundation as a platform and environment for developers and organizations to collaborate. </li>
                </ul>
                <p><img class="img-responsive center-block padding-20"   src="/images/reports/2019_eclipse_foundation_logo.png" title="" />
                </p>
                <ul>
                    <li>Coincidental with the unveiling of the new logo, a redesigned www.eclipse.org website was launched in April 2018. The site features an updated look and feel (codenamed Quicksilver). Major updates were made to the About Us and Working Group set of pages to reflect the new brand promise. A Business Value section of the site was created to deliver business value messaging. </li>
                    <li>As part of the Foundation's brand strategy development and execution, a draft of the Eclipse Foundation's brand platform was presented at the June Board meeting in Toulouse. </li>
                    <li>The Eclipse Foundation conducted a community brand perception survey in Q4 2018. The goal was to test the perceived meaning of the Eclipse brand within our community and the greater developer community. Over 2,000 individuals participated in the survey. The results were presented to the Board. </li>
                    <li>Brand guidelines were developed to outline usage standards and to ensure that the Eclipse Foundation logo is instantly and consistently recognizable however and wherever it is used by Foundation members and the community. The style guide is posted on the Guidelines for Eclipse Logos & Trademarks page of eclipse.org. </li>
                    <li>A membership prospectus was developed to enable prospective members to learn about Eclipse Foundation membership, our unique value proposition, and the process to become a member. It is posted on the eclipse.org Membership page. </li>
                    <li>A corporate overview presentation was developed to reflect our updated brand and strategic focus areas. It is available for the use of Foundation members and posted on the Eclipse Membership page. It will be updated on an ongoing basis as needed. </li>
                </ul>
                <p>Jakarta EE </p>
                <ul>
                    <li>The Foundation and Jakarta EE working group developed and executed a major press and analyst relations campaign to promote the Jakarta EE brand including a new Jakarta EE logo, the formation of the Jakarta EE working group, and the results of an enterprise Java developer survey conducted by the Foundation. The Foundation engaged Flak 42, an expert press and analyst firm, to assist in the campaign. </li>
                </ul>
                <p><img class="img-responsive center-block padding-20"   src="/images/reports/2019_jakarta_ee_logo.png" width="250" />
                </p>
                <ul>
                    <li>The <a href="http://www.jakarta.ee">jakarta.ee</a>
                        website was launched on April 24, 2018, and serves as the primary site for all activities related to the Jakarta EE community, as well as the working group. </li>
                    <li>Announcements were posted on the<a href="http://www.jakarta.ee/">jakarta.ee</a> website about the<a href="https://eclipse-foundation.blog/2018/10/16/jakarta-spec-process/"> Eclipse Foundation Specification Process (EFSP)</a> and <a href="https://blogs.eclipse.org/post/tanja-obradovic/announcing-eclipse-glassfish-510-rc1-release">the Eclipse GlassFish 5.1.0-RC1 release</a>. </li>
                </ul>
                <p>Media Coverage </p>
                <ul>
                    <li>The Eclipse Foundation was covered in 166 press articles in 2018, which is a 56% YoY improvement over 2017 (106 articles). Factors driving the growth in coverage include media and analyst interest in Jakarta EE, Eclipse Photon, and Eclipse IoT, as well as active collaboration with members to amplify messaging, and a concerted PR/AR strategy executed with our outside agency (Flak 42). </li>
                </ul>
                <p>Photon Launch </p>
                <ul>
                    <li>In June 2018, a new Eclipse Photon landing page was created to promote the 13th annual simultaneous release from the Eclipse community: <a href="https://www.eclipse.org/photon/">https://www.eclipse.org/photon/</a>. As of the end of March 2019, the landing page received over 59,000 views. </li>
                    <li>A <a href="https://www.globenewswire.com/news-release/2018/06/27/1530116/0/en/New-Photon-Release-of-Eclipse-IDE-Ships-With-Full-Rust-Support.html">press release </a>was issued. The Photon release was covered in nine press articles. </li>
                    <li>As part of the June 2018 launch, nine webinars were produced and recorded to promote some of the projects included in the Photon release. The series was well received with over 12,000 YouTube views from the launch in June 2018 to March 2019. </li>
                    <li>The Photon promotional effort included the production of four testimonial videos from noted Eclipse community members. These videos were posted on the Photon landing page. As of the end of March 2019, the testimonial videos had been viewed over 10,000 times. </li>
                </ul>
                <p>Eclipse IDE Branding </p>
                <ul>
                    <li>Support was provided by the EMO to the Planning Council with choosing a name for the products delivered by the Eclipse Packaging and Eclipse top level projects. The product name selected by the Planning Council is Eclipse IDE xxxx-xx (e.g. Eclipse IDE 2019-03). </li>
                </ul>
                <p>Eclipse IDE Quarterly Simultaneous Releases </p>
                <ul>
                    <li>The Eclipse IDE 2018-12 and 2019-03 quarterly simultaneous releases of Eclipse projects were promoted on <a href="http://www.eclipse.org">www.eclipse.org</a>
                        and via social media channels. A new dedicated webpage for <a href="https://www.eclipse.org/eclipseide/">quarterly simultaneous releases</a> was created and launched. A process for future releases was agreed to with Planning Council. </li>
                </ul>
                <p>MicroProfile eBook Published </p>
                <ul>
                    <li>The Eclipse MicroProfile project published an eBook titled &ldquo;Eclipse MicroProfile: Accelerating Cloud-Native Application Development with Java Microservices.&rdquo; The eBook was produced by the Foundation and funded by Red Hat under the auspices of the Member Funded Initiative program. The publication was accompanied by a<a href="https://www.globenewswire.com/news-release/2018/11/05/1644913/0/en/Eclipse-Foundation-Publishes-MicroProfile-eBook.html">
                        press release</a>
                        issued on November 5, 2018. </li>
                </ul>
                <p>Eclipse Foundation Year End Momentum Announcement </p>
                <ul>
                    <li>A momentum <a href="https://www.globenewswire.com/news-release/2018/12/18/1668576/0/en/Eclipse-Foundation-Drives-9-Billion-in-Open-Source-Innovation.html">press release</a>
                        was issued on December 18, 2018, highlighting the progress of the Foundation. Key community metrics cited included our oversight of more than 360 projects and 1,550+ code committers who have contributed more than 162 million lines of code to date with an estimated software value of approximately $9 billion. </li>
                </ul>
                <p>Bosch Case Study Launched </p>
                <ul>
                    <li>The Foundation published a <a href="https://iot.eclipse.org/resources/case-studies/Eclipse%20IoT%20Success%20Story%20-%20Bosch.pdf">case study</a>
                        detailing how Bosch's leadership in the Eclipse IoT community has helped position the company as a leader in the IoT industry. </li>
                </ul>
                <p>Ongoing Marketing Research </p>
                <ul>
                    <li>The Marketing team has been working to engage the community on behalf of our member organizations to find out insights on the marketplace. </li>
                    <li>Now in its second year, the Jakarta EE Developer Survey yielded almost 1,800 responses. The goal of the survey was to help Java ecosystem stakeholders better understand the requirements, priorities, and perceptions of enterprise Java developer communities. Among the key findings, cloud native is critically important today and its importance will only increase over time. The top three community priorities for Jakarta EE are better support for microservices, native integration with Kubernetes, and production quality reference implementations. </li>
                    <li>The fifth annual <a href="https://iot.eclipse.org/resources/iot-developer-survey/iot-developer-survey-2019.pdf">IoT developer survey</a>
                        was conducted. Over 1,700 individuals (more than three times the previous year's respondents) took the survey between February and March 2019. The survey has proven to be an influential assessment of the IoT market as viewed fromthe development front lines. </li>
                </ul>
                <p>Webinars </p>
                <ul>
                    <li>The <a href="https://www.meetup.com/Virtual-Eclipse-Community-MeetUp/">Virtual Eclipse Community Meetup</a>
                        (vECM) series continued to be well received. The vECM recordings received over 15,500 views from April 2018 to March 2019. </li>
                </ul>
                <p>Social Media </p>
                <ul>
                    <li>Our <a href="https://www.youtube.com/channel/UCej18QqbZDxuYxyERPgs2Fw">YouTube channel</a>
                        experienced continued growth with total views up by 47% from April 2018 to March 2019. During the same period, YouTube subscribers grew by 15%. </li>
                    <li>The Foundation's followers on Twitter grew by 12% over the year. </li>
                </ul>
                <p>Eclipse Community Newsletter </p>
                <ul>
                    <li>The ever-popular <a href="https://www.eclipse.org/community/eclipse_newsletter/">Eclipse Community Newsletter</a>
                        experienced strong growth. The total number of subscribers increased by 29% year over year to reach over 300,000 total subscribers in March 2019. </li>
                </ul>
                <h2 id="intellectualPropertyManagement">Intellectual Property Management </h2>
                <p>During the time period spanning April 1, 2018 to March 31, 2019, the Eclipse Foundation received 3,402 requests for intellectual property review and completed 3,042 reviews. This represents continuing growth in the demands made on the Eclipse IP Team. </p>
                <p>Note that the effort to bring Jakarta EE over to the Eclipse Foundation accounts for 597 (~15%) of the 3,402 intellectual property review requests received during that time period. </p>
                <p><img class="img-responsive center-block padding-20"   src="/images/reports/2019_ip_cq_by_year.png"
                    title="Chart" />
                </p>
                <p>There's not enough data to definitively state that we will continue on the somewhat linear trend up that we've experienced over the past few years, but there's no denying that engagement with the Eclipse Intellectual Property Due Diligence Process and the IP Team has been steadily increasing. We added a new member to the team, Shawn Kilpatrick, in mid-2018 to help address the increase in demand, but this increase in staffing capacity has been coupled by an increase in the diversity of the tasks performed by the IP Team. </p>
                <p>For example: </p>
                <ul>
                    <li>The IP Team has implemented the roll out of updates to the Committer and Contributor Legal Agreements and has worked with the webdev team to completely revise our committer paperwork workflow (leveraging electronic forms). </li>
                    <li>We are spending considerably more effort on managing our portfolio of trademarks than we have in previous years. </li>
                    <li>With the expansion of the sorts of technologies leveraged by Eclipse projects, the IP team has had to invest considerable effort in revision processes to meet the new demands. </li>
                    <li>We have started to work on an update to the Eclipse IP Policy, processes, and practices. </li>
                </ul>
                <p>No matter how you slice it, the Eclipse Intellectual Property Team continues to work at a pace that is challenging to sustain. With this in mind, we have started a project to review and revise the Eclipse IP Policy and associated practices that we hope to roll out by the end of 2019. We believe that we can lower the burden on both the committers and the Eclipse IP Team while maintaining the industry-leading high quality that the community has come to expect from Eclipse projects. </p>
                <p>Leverage of license validation and certification (the IP Policy refers to this as &ldquo;Type A&rdquo; due diligence) of third party content continues to be popular with our projects. By way of background, our license certification due diligence process validates that the license of third party content is on our <a href="https://www.eclipse.org/legal/licenses.php%23approved">white list</a>
                    of approved licenses and generally conforms to the licensing scheme employed by the respective project. Project teams appear to be enthusiastically taking advantage of this new type of due diligence. The rate at which requests for the more traditional types of IP reviews arrive appears to have dropped somewhat over the last few reporting periods, but still remains very strong while the adoption of license certification is on an upward trend. </p>
                <p><img class="img-responsive center-block padding-20"   src="/images/reports/2019_type-a_type-b.png"
                    title="" />
                </p>
                <p>Project Code and Third party review requests (CQs) created by quarter. </p>
                <p>As of the end of March 2019, we have 101 projects using license certification IP Due Diligence. A great diversity of project types and technology are leveraging this form of third party content due diligence. In past years, license certification was more likely leveraged by projects nested under particular top-level projects, but that no longer appears to be the case. </p>
                <p><img class="img-responsive center-block padding-20" src="/images/reports/2019_cq_created_by_project.png"
                    title="" />
                </p>
                <p>Top users of Licence Certification Third Party Due Diligence (Apr 2018 to Mar 2019) </p>
                <h2 id="innovation">
                Innovation </h2>
                <h3 id="simultaneousRelease">Simultaneous Release </h3>
                <p>In June 2018, the Eclipse community shipped Eclipse Photon, its thirteenth annual simultaneous release. Including previous releases of the Eclipse Platform, this was the fifteenth release that was shipped on time, to the day. A total of 85 projects participated in the Photon simultaneous release. The release comprises 73 million lines of code produced by 246 committers from 41 member companies, with contributions from 374 non-committer contributors. </p>
                <p>Following the June 2018 release, the Eclipse Planning Council switched to a quarterly release cadence. Along with this switch, the tradition of naming each release has been dropped in favor of a &ldquo;year/month&rdquo; date-based naming approach. The first quarterly release, &ldquo;Eclipse IDE 2018-09&rdquo; was made available in September 2018. With this change in cadence, we've adapted our usual metrics chart to show a quarterly view. </p>
                <p><img class="img-responsive center-block padding-20"   src="/images/reports/2019_simultaneous_release.png"
                    title="Chart" />
                </p>
                <p>Simultaneous Release Metrics by Quarter </p>
                <p>This predictable release schedule has been a key part of the Eclipse Community&#39;s success over the years, and is an important part of the success of the Eclipse ecosystem. </p>
                <h3 id="committersProjects">Committers and Projects </h3>
                <p>Our number of committers grew to over 1,550 in early 2019. </p>
                <p><img class="img-responsive center-block padding-20"   src="/images/reports/2019_community.png"
                    title="" />
                </p>
                <p>The number of proposals for new Eclipse Projects that we receive year-after-year is on an upward trend. The spike in 2018 includes a large number of projects that are part of the Jakarta EE effort. </p>
                <p><img class="img-responsive center-block padding-20" src="/images/reports/2019_project_proposals_by_year.png"
                    title="Chart" />
                </p>
                <p>New Project Proposals by Year </p>
                <p>The following projects were proposed at the Eclipse Foundation in 2018: </p>
                <ul>
                    <li>Eclipse Agile UML supports the agile specification of systems in UML and OCL and the automated generation of code from these specifications. </li>
                    <li>Eclipse Autonomous Driving provides the necessary tools to easily model algorithms and hardware components (such as sensors and actuators) for autonomous driving. </li>
                    <li>Eclipse Corrosion provides development tools for Rust and Cargo inside the Eclipse IDE. </li>
                    <li>Eclipse fog05 provides a fog computing platform that provides the equivalent of cloud IaaS along with some foundational PaaS services. </li>
                    <li>Eclipse Glassfish provides a complete application server which serves as the reference implementation for the Jakarta EE specification. </li>
                    <li>Eclipse Hawk is a heterogeneous model indexing framework: it indexes collections of models transparently and incrementally into a NoSQL database, which can be queried in a more efficient and convenient manner. </li>
                    <li>Eclipse HIP (Hierarchical IOT Protocol) is a communication protocol designed to increase the scalability and interoperability of large scale IOT deployments and includes specifications for both Platform Side (e.g. SaaS solution) and Deployment Side (e.g. sensors and actuators in a &quot;smart building&quot;) messaging. </li>
                    <li>Eclipse Implementation of JAXB contains the source code, documentation, and tests for JAXB reference implementation. </li>
                    <li>Eclipse IOTA Trinity is a toolkit to support the cross-platform development of frontend applications on the IOTA network, based on the popular Trinity IOTA wallet. </li>
                    <li>Eclipse Jakarta EE Platform provides the Jakarta EE platform specification and related materials. </li>
                    <li>Eclipse Jakarta EE TCK provides the CTS tests suite for implementations of the various Jakarta EE specifications. </li>
                    <li>Eclipse Jemo provides a multi-cloud FaaS programming model for JVM based languages which can run across multiple cloud service providers and on-premise networks. </li>
                    <li>Eclipse Keyple provides generic libraries for simplifying the development of contactless applications based on the Calypso standard, and for facilitating integration with the secure elements typically involved in a secure contactless solution. </li>
                    <li>Eclipse Linux Package Tools offers a set of core functionality to work with RPM and Debian package files in plain Java. This functionality is offered in simple JAR variant to create your own solutions, or in ready-to-run tools like an Apache Maven plugin. </li>
                    <li>Eclipse Metro contains the source code, documentation, and tests for JAX-WS, SAAJ, Web Services Interoperability Technologies (WSIT) and StAX extensions implementations. </li>
                    <li>Eclipse MRAA is a low-level library written in the C/C++ language that abstracts the details associated with accessing and manipulating the basic I/O capabilities of popular IoT platforms and boards and presents a single, concise API. </li>
                    <li>Eclipse openK User Modules provides various custom &quot;user&quot; modules based on the Eclipse openK Platform. </li>
                    <li>Eclipse ORB is a runtime component that can be used for distributed computing using IIOP communication. </li>
                    <li>Eclipse Oscano provides a complete software composition analysis solution, focused on compliance and security, that can be installed on cloud, local server, or workstation environment. </li>
                    <li>Eclipse Passage provides rich and easily adoptable capabilities to define and control licensing constraints. </li>
                    <li>Eclipse PlanPro Toolbox provides essential components of the tool chain to manage initialization, testing, validation and visualization of the object model for the railway interlocking signalling technology. </li>
                    <li>Eclipse Project for Common Annotations provides the API and TCK for Common Annotations for the Jakarta Platform,. </li>
                    <li>Eclipse Project for Concurrency Utilities provides the API, reference implementation and TCK for Concurrency Utilities for Java EE. </li>
                    <li>Eclipse Project for Eclipse Enterprise Security provides the API and TCK for the EE Security API. </li>
                    <li>Eclipse Project for EJB provides the API and TCK for Enterprise JavaBeans. </li>
                    <li>Eclipse Project for Expression Language provides the API, reference implementation and TCK for Java Expression Language. </li>
                    <li>Eclipse Project for Interceptors provides the API and TCK for Interceptors </li>
                    <li>Eclipse Project for JACC provides the API and TCK for Java Authorization Contract for Containers. </li>
                    <li>Eclipse Project for JAF provides the API, reference implementation and TCK for JavaBeans Activation Framework. </li>
                    <li>Eclipse Project for JASPIC provides the API and TCK for Java Authentication Service Provider Interface for Containers. </li>
                    <li>Eclipse Project for Java Batch provides the API and TCK for Java Batch, starting from the specification defined by JSR-352. </li>
                    <li>Eclipse Project for JavaMail provides the API, reference implementation and TCK for JavaMail. </li>
                    <li>Eclipse Project for JAX-WS provides the API, reference implementation and TCK for API for XML-Based Web Services (JAX-WS). </li>
                    <li>Eclipse Project for JAXB provides the API, reference implementation and TCK for the Java Architecture for XML Binding (JAXB). </li>
                    <li>Eclipse Project for JCA provides the API and TCK for Jakarta EE Connector Architecture. </li>
                    <li>Eclipse Project for JPA provides the API and TCK for Java Persistence. </li>
                    <li>Eclipse Project for JSON-B provides the API and TCK for Java API for JSON Binding. </li>
                    <li>Eclipse Project for JSP provides the API and TCK for JavaServer Pages. </li>
                    <li>Eclipse Project for JSTL provides the API and TCK for JavaServer Pages Standard Tag Library. </li>
                    <li>Eclipse Project for JTA provides provides the API and TCK for Java Transaction API. </li>
                    <li>Eclipse Project for Servlet provides the API and TCK for Java Servlet Specification. </li>
                    <li>Eclipse Project for Stable Jakarta EE APIs provides a home for stable (legacy) Jakarta APIs, RIs and TCKs which are no longer actively developed. </li>
                    <li>Eclipse Soteria provides the reference implementation for Eclipse Project for Enterprise Security (EE Security API). </li>
                    <li>Eclipse Sprotty is a next-generation, open-source, web-based diagramming framework. </li>
                    <li>Eclipse SW360antenna provides tooling to generate compliance related artifacts (disclosure document, source code bundle, written offer, etc.) directly within a build process. </li>
                    <li>Eclipse SWTChart provides the means to create rich, flexible and interactive data visualizations natively in SWT. </li>
                    <li>Eclipse Tahu defines and implements the Sparkplug specification which provides the definition of Topic Namespace, session management, payload definition, and state management required to make MQTT applicable for real-time, mission critical SCADA systems. </li>
                    <li>Eclipse Theia produces an extensible platform for developing browser and desktop IDEs. </li>
                    <li>Eclipse UPM project abstracts implementation details for reading sensor data and writing actuator commands through the use of consistent APIs and function names. </li>
                    <li>Eclipse VOLTTRON provides secure, extensible, and modular integration middleware for the Internet of Things. </li>
                    <li>Eclipse Wild Web Developer provides a rich development experience for Web development in Eclipse IDE, including editing assistance, debugging, and other features that ease development of web applications. </li>
                    <li>Eclipse Yasham is a highly modular cloud native platform that interconnects a wide range of consumer IoT and smart home services via extensible cloud software adapters to abstract away the specific communication protocols and requirements of cloud-based services by a simplified and generic integration model towards the Eclipse Yasham consumer IoT platform. </li>
                    <li>Jakarta NoSQL defines an API for common behavior to facilitate integration between Java&trade; applications and NoSQL databases. </li>
                    <li>LocationTech RasterFrames brings the power of Spark DataFrames to geospatial raster data, empowered by the map algebra and tile layer operations of GeoTrellis. </li>
                </ul>
                <h2 id="research">
                Research </h2>
                <p>Since 2013, the Foundation increased its collaboration with academics, researchers, and industries by participating in several European funded research projects. The Foundation's main objective in these projects is to help the consortium engaged in each project build an open source platform and community around their respective EU research project. </p>
                <p>The positive side effects include:</p>
                <ul>
                    <li>Eclipse Foundation's recognition as an expert in building open source communities </li>
                    <li>The opportunity to bring new academic and industrial members to the Foundation </li>
                    <li>The opportunity to promote and disseminate existing Eclipse projects into such international consortia </li>
                </ul>
                <p>As of March 2019, Eclipse Foundation Europe is a <a href="https://www.eclipse.org/org/research/">research partner</a>
                    in six large European research projects. </p>
                <ol start="1">
                    <li><a href="http://www.basys40.de/">BaSys 4.0</a>: Started in fall 2016. The goal of BaSys 4.0 is the creation of an Industry 4.0 base system for factories to ensure efficient transformations in the production processes. </li>
                    <li><a href="https://www.crossminer.org/">Crossminer</a>: Started in January 2017. CROSSMINER enables the monitoring, in-depth analysis, and evidence-based selection of open source components, and facilitates knowledge extraction from large open-source software repositories. </li>
                    <li><a href="http://robmosys.eu/">RobMoSys</a>: Started in January 2017. RobMoSys envisions an integrated approach built on top of the current code-centric robotic platforms, by applying model-driven methods and tools. </li>
                    <li><a href="https://itea3.org/project/appstacle.html">Appstacle</a>: Started in April 2017. APPSTACLE stands for open standard APplication Platform for carS and TrAnsportation vehiCLEs. Appstacle aims to establish a standard car-to-cloud connection, open for external applications and the use of open source software wherever possible without compromising safety and security. </li>
                    <li>ArrowHead Tools: Starting in May 2019. The project will provide engineering processes, integration platform, tools and tool chains for the cost-efficient development of digitalisation, connectivity and automation system solutions in various fields of application. </li>
                    <li>Panorama: Starting in May 2019. Aims to research model-based methods and tools to master development of heterogeneous embedded hardware/software systems in collaboration with diverse and heterogeneous parties by providing best practice, novel analysis approaches, and guidance for development. </li>
                </ol>
                <p>Eclipse Foundation Europe participated in three additional large European research projects in 2018. </p>
                <ol start="1">
                    <li><a href="http://www.amalthea-project.org/">Amalthea4Public</a>: Started in fall 2013 and finished in fall 2018. This project implemented an Open Platform for Embedded Multicore Systems. </li>
                    <li><a href="http://agile-iot.eu/">AGILE-IoT</a>: Started in January 2016 and finished in December 2018. This implementation built an Adaptive & Modular Gateway for the Internet of Things (IoT). </li>
                    <li><a href="http://www.amass-ecsel.eu/">AMASS</a>: Started in April 2016 and finished in March 2019. This project is created open tool platform, ecosystem, and self-sustainable community for assurance and certification of Cyber-Physical Systems (CPS) in the largest industrial vertical markets including automotive, railway, aerospace, space, energy. </li>
                </ol>
                <h2 id="infrastructureCommunitySupport">
                Infrastructure and Community Support </h2>
                <p>The EMO is committed to providing a robust and dependable server and software infrastructure, including professional support staff to assist projects and working groups in achieving their goals effectively and efficiently, as well as steadily improving services to the Eclipse committers and the projects they work on. Here is a sampling of some infrastructure metrics, plus some improvements we&#39;ve put into place over the past year. </p>
                <h4 id="serversInfrastructure">
                Servers and Infrastructure </h4>
                <p>Core service availability (Git/Gerrit, www.eclipse.org, and Bugzilla) for 2018 was 99.992%, up from 99.958% in 2017. </p>
                <p><img class="img-responsive center-block padding-20" src="/images/reports/2019_uptime_by_year.png" title="" />
                </p>
                <p>With modern multi-gigabit load balancers based on NGINX, we're now capable of dealing with sudden, massive (10x and more) traffic spikes that plagued us in 2017-2018. Our obsolete Cisco firewalls are next on the upgrade list. </p>
                <p><img class="img-responsive center-block padding-20" src="/images/reports/2019_uptime_spike_sample.png" title="" />
                </p>
                <p>A sudden traffic spike on a Tuesday night at 10:00pm EDT. </p>
                <hr>
                <h4 id="commonBuildInfrastructure">
                Common Build Infrastructure </h4>
                <p>In 2018 we implemented a modest Kubernetes cluster based on Red Hat OpenShift, and began migrating standalone Jenkins instances (JIPP) to Cloudbees Jenkins Enterprise. There were important roadblocks and regressions that prevented us from mass migration to CJE, and as the regressions were not being resolved to meet our requirements, we've developed an in-house mechanism for Jenkins Instances running on OpenShift, named Jiro. JIPP to Jiro migrations are successful; we've halted new migrations to CJE, and our Kubernetes cluster has grown to 24 servers, 1.5TB RAM, and over 325 processor units with much more to come. </p>
                <h4 id="gitHubThirdPartySiteIntegration">
                GitHub and Third-Party Site Integration </h4>
                <p>We've addressed many issues with our GitHub integration, which had been plagued with problems for years and was generally unreliable. Most of the underlying code was re-written to take advantage of modern frameworks and GitHub apps, and now provides a robust and reliable experience for our committers and contributors. The effort has helped spawn plans for rethinking the communication mechanisms employed by the Eclipse Infra software stack, towards a modern microservices architecture. Our goals are to reduce complexity, facilitate interacting with third-party software and sites, and enabling more robust and de-coupled communications mechanisms. </p>
                <h4 id="developersDevelopersDevelopers">
                Developers, Developers, Developers </h4>
                
                <p>Eclipse's account database now sits at 450,000 accounts, with an average growth rate of over 2,000 new accounts each month. Better captcha and SPAM protection mechanisms help us ensure new account creation rates are based on human activity. </p>
            </div>
		</div>
	</body>
</html>
