GitHub

Project is hosted in the Eclipse organization at GitHub.

Eclipse Project for Servlet

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter.

Scope

Eclipse Project for Servlet provides the API and TCK for Java Servlet Specification starting from the specification defined by JSR-369.

Description

Java Servlets is a standard technology for interacting with the web on the Jakarta EE platform. 

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter. This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.

Source Repository Type

Eclipse Project for JACC

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter.

Scope

Eclipse Project for JACC provides the API and TCK for Java Authorization Contract for Containers, starting from the specification defined by JSR-115.

Description

The Java Authorization Contract for Containers (JACC) defines a contract between a Jakarta EE application server and an authorization policy provider.

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter. This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.

Source Repository Type

Eclipse Project for EJB

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter.

Scope

Eclipse Project for EJB provides the API and TCK for Enterprise JavaBeans, starting from the specification defined by JSR-345.

Description

Enterprise JavaBeans is an architecture for the development and deployment of component-based business applications.

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter. This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.

Source Repository Type

Eclipse Project for JCA

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter.

Scope

Eclipse Project for JCA provides the API and TCK for Jakarta EE Connector Architecture, starting from the specification defined by JSR-322.

Description

The Jakarta EE Connector Architecture defines a standard architecture for Jakarta EE application components to connect to Enterprise Information Systems.

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter. This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.

Source Repository Type

Eclipse Project for Interceptors

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter).

Scope

Eclipse Project for Interceptors provides the API and TCK for Interceptors, starting from the specification defined by JSR-318.

Description

Interceptors are used to interpose on business method invocations and specific events such as lifecycle events and timeout events that occur on instances of Jakarta EE components and other managed classes.

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter). This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.

Source Repository Type

Eclipse GlassFish

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter).

Scope

Eclipse GlassFish provides a complete application server which serves as the reference implementation for the Jakarta EE specification. Eclipse GlassFish includes a complete administration console, clustering support, and other developer and production focused tools and features.

Description

Eclipse GlassFish is a complete application server that implements the Jakarta EE specification. GlassFish includes implementations of all required and optional Jakarta EE APIs, and passes all Jakarta EE TCKs. GlassFish also includes a complete administration console, clustering support, and other developer and production focused tools and features.

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter). This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.

Initial Contribution

The following Java EE repositories:

  • batchlab
  • command-security-maven-plugin
  • copyright-maven-plugin
  • fighterfish
  • findbugs-tools
  • firstcup
  • firstcup-examples
  • glassfish
  • glassfish-cdi-porting-tck
  • glassfish-docs
  • glassfish-ha-api
  • glassfish-license-tool
  • glassfish-maven-plugin-legacy
  • glassfish-samples
  • glassfishbuild-maven-plugin
  • hk2
  • hk2-extra
  • hudson-plugins
  • j1-hol
  • javaee.github.io
  • javaee7-samples
  • jsftemplating
  • logging-annotation-processor
  • maven-antrun-extended-plugin
  • maven-embedded-glassfish-plugin
Source Repository Type

Eclipse Project for Stable Jakarta EE APIs

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter).

Scope

Eclipse Project for Stable Jakarta EE APIs provides a home for stable (legacy) Jakarta APIs, RIs and TCKs which are no longer actively developed.

Description

This project contains stable (legacy) APIs, RIs and TCKs which won't be developed in future.

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter). This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.

Eclipse Hawk

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 community. Please login and add your feedback in the comments section.
Project
Parent Project
Proposal State
Created
Background

As modelling has become more prevalent, the inherent scalability issues in the "simple" approach of storing a model in a single file have become more apparent. The two most common approaches are breaking up the model into multiple "fragment" files, or storing it in a database. The first approach is simpler to implement than the second one: with Eclipse technologies, the first approach is well-supported with cross-file containment, whereas the second approach requires the complex task of integrating a new persistence framework (such as Eclipse CDO). The first approach also interoperates nicely with existing version control systems (e.g. Git), which scale better as models are broken up into more fine-grained fragments.

However, this first approach has traditionally suffered with scalability issues when we try to run a query that might touch upon all fragments. If we are not careful, these global queries on fragmented file-based models may require having the entire model loaded in memory at once, therefore limiting the maximum size of the model that we may handle.

Scope

Eclipse Hawk is intended to cover all aspects necessary to index, query and visualize collections of models in a more efficient manner than working with standard file-based persistence through the use of various database stores, in a transparent manner that does not require replacing the existing persistence mechanism for those models.

Description

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. You can mirror EMF, UML or Modelio models (among others) into a Neo4j or OrientDB graph, which you can query with their native languages, or (preferably) through the languages provided by Hawk. Hawk will watch over those models and update the graph whenever they change, in an incremental manner.

Current versions of Hawk integrate extended versions of the Epsilon Object Language and the Epsilon Pattern Language (part of the Eclipse Epsilon project). The advantage of using these languages is that you can reuse the same query across backends - it will work the same across Neo4j, OrientDB or Greycat.

Hawk also includes tools to make life easier with it: exposing Hawk queries as EMF models, or a web service API for querying remote Hawk indexes over the network.

Why Here?

Hawk covers a gap in the Eclipse MDT project, which includes solutions for storing models into databases (e.g. CDO) but lacks a solution for simply making queries over existing file-based models faster. Hawk could also be used as an alternative to custom-developed indices in various Eclipse projects.

We would like to leverage the Eclipse community to reach more potential users and increase the awareness of Hawk as a solution to a common problem in the modeling community, and to benefit from a more formal governance model for the long term sustainability of the project. We would also benefit from the legal stewardship of the Eclipse Legal team, especially with regards to the integration of newer backends, which tend to have their own unique licensing challenges. We believe that by having this stewardship, we will make it simpler for companies to integrate the technology behind Hawk by having the legal issues cleared in advance.

Project Scheduling

The initial contribution is already available, and builds are also ready to be tested. For the general scheduling of the project, we intend to release a new version roughly every year, integrating the latest developments in our research. We have already released versions 1.0, 1.1 and 1.1.1 in this manner by using the GitHub "Releases" functionality. These versions have focused on stability and performance, especially from the less mature OrientDB backend.

Future Work

Regarding functionality, our main areas of activity at the moment are:

  • Full history indexing: we want Hawk to index the full history of the models rather than only the latest version. For that end, we have recently added a Greycat backend. Greycat implements a many-worlds temporal graph, which should make it possible to have this full history after further improvements on the current indexing components.
  • Revamped UI: the current UI is serviceable, but it is not component-based. It is not possible to use plug-ins to expand its capabilities, which hurts usability in places (e.g. the UI is the same whether we want to index a local folder or a remote SVN repository).
  • Clustering: Hawk has support for the multi-master mode of OrientDB, but in general it cannot respond to queries while it is updating, and it cannot distribute indexing work between multiple machines. In the medium-to-long-term, we want to expand the horizontal scalability of Hawk by adding coordination capabilities between multiple Hawk servers. Within a Hawk cluster, at least one node will always be available to answer queries, while the others may be indexing the latest version of the model.
  • Revamped storage: preferences for Hawk indexes are currently scattered over the Eclipse preferences store and multiple XML files. We intend to introduce a simple DSL for describing the configuration of a Hawk index, in a way that is friendly when using Hawk from inside and from outside the Eclipse IDE.
  • Further improvements in the usability, performance and stability of existing backends, model support plug-ins and model location plug-ins.

We intend to participate in academic and industrial events to promote participation in our project, running tutorials in relevant conferences and demo'ing Hawk at various industrial events throughout the world.

Project Leads
Mentors
Interested Parties
  • The SOFTEAM Group has expressed their interest in the project to move to Eclipse. SOFTEAM has had multiple successful experiences integrating Hawk. Within the MONDO EU project, SOFTEAM used Hawk within their Constellation collaboration server to provide querying / searching over their Modelio models. As part of the ITEA3 MEASURE project, SOFTEAM and Aston University jointly supervised a MSc project which added Hawk-as-a-service to the integrated MEASURE metrics platform.
  • Rolls-Royce plc has also expressed their interest in using Hawk for indexing their models.

 

Initial Contribution

The code for version 1.1.1 (latest stable release) and the 1.2 interim releases is currently hosted on GitHub, and it is fully functional:

https://github.com/mondo-project/mondo-hawk/

It includes a full implementation of the indexing framework, the query languages, and three backends based on Neo4j [1] 2.0.5, OrientDB [2] 2.2.30 and Greycat [3] V10. The query language is based on the latest Eclipse Epsilon 1.5 interim releases [4]. The Hawk server is based on Eclipse Jetty [5], and it uses Apache Thrift [6] and Apache Artemis [7] for RPC-style and server-to-client notifications, respectively. Hawk follows the Eclipse plugin-based architecture, and some of the plugins introduce additional dependencies:

  • The BPMN model support integrates the Eclipse BPMN metamodel [8].
  • The EMF model support integrates the Eclipse Modelling Framework.
  • The HTTP location support integrates Apache HTTPClient 4.3.6 [9].
  • The local folder location support and the server user database integrate the Apache-licensed MapDB database (needed for locations with a very large number of files) [10].
  • The UML model support is based on Eclipse MDT UML2.
  • The workspace location support is based on core Eclipse APIs.
  • The security layer of the RCP-based Hawk server depends on Apache Shiro 1.2.4 [11].

Internally, Hawk is implemented as a set of Eclipse plugin projects and it can be built through Tycho or (partly) through plain Maven. The Travis CI system is used to build interim releases over the master branch [12], which are made available as an Eclipse update site.

Copyright is mostly shared between the University of York (Konstantinos Barmpis and Dimitris Kolovos) and Aston University (Antonio Garcia-Dominguez), with some minor contributions from third parties (a MSc student - Orjuwan Al-wadaei - and several collaborators in a European research project - Gabor Szárnyas and Abel Gómez).

As for the community, during the MONDO EU FP7 project multiple companies across Europe used it: SOFTEAM integrated Hawk into their Constellation collaborative modelling platform [13], and recently started to use it as well within their MEASURE metrics platform. UNINOVA from Portugal used it to speed up queries over building information models, and SOFT-MAINT used it to query large models produced by reverse-engineering code. We are also driving further use of Hawk within local companies in the UK, and the backing of the Eclipse Foundation in legal matters would help with attracting new developers into the project, and giving companies peace of mind about integrating it into their solutions.

[1]: https://neo4j.com/

[2]: https://orientdb.com/

[3]: https://greycat.ai/

[4]: https://www.eclipse.org/epsilon/

[5]: https://www.eclipse.org/jetty/

[6]: https://thrift.apache.org/

[7]: https://activemq.apache.org/artemis/

[8]: https://www.eclipse.org/modeling/mdt/?project=bpmn2

[9]: https://hc.apache.org/httpcomponents-client-ga/index.html

[10]: http://www.mapdb.org/

[11]: http://shiro.apache.org/

[12]: https://travis-ci.org/mondo-project/mondo-hawk/

[13]: https://research.aston.ac.uk/portal/en/researchoutput/integration-of-a-graphbased-model-indexer-in-commercial-modelling-tools(8d7bbefd-b6e8-4417-a0d5-cb1fd52e5efd).html

Source Repository Type

Eclipse SW360antenna

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Open Source has arrived in day-to-day software development of all kinds of organizations. However, to use Open Source software in legally compliant and save way, various precautions have to be taken and obligations have to be fulfilled. E.g. many open source licenses require to ship the license text with a software or list the copyright holders. Doing that in a manual way is tedious and error prone. Hence, tools like Eclipse SW360 are created.

Today's software development is on a high pace with almost fully automated build pipelines and continuous deployment scenarios. To properly provide software development projects with compliance related artifacts it is required to provide those artifacts in an automated way.

Scope

The Eclipse SW360antenna project provides tooling to generate compliance related artifacts (disclosure document, source code bundle, written offer etc) directly within a build process. It relies on data that is provided by different sources such as an SW360 instance.

Description

Eclipse SW360antenna is a tool to automate your open source license compliance processes as much as possible. In the end that is

  •  collecting all compliance relevant data,
  •  process that data and warn if there might be any license compliance related issues, and
  •  generating a set of compliance artifacts (source code bundle, disclosure document, report)

for your project.

To reflect those three different types of tasks SW360antenna is built around a workflow engine, which allows to orchestrate a set of analyzers to gather required information, processors to arrange, adjust and evaluate that data, and a set of generators to produce a set of compliance related artifacts. Since licensing issues can deeply affect the success of your project it is required to be notified about any issues as early as possible in the development process. It is therefore useful to generate that information directly within your build. SW360antenna can directly be integrated into the build process. This is realized with several so called frontends to build systems, which allow to invoke the tool and provide it with necessary configuration. 

The SW360antenna project is set up in a way that allows to easily create a custom configuration with a preconfigured set of shipped and custom analyzers, processors and generators to fit the needs of your internal compliance processes. E.g. You might use a commercial tool to analyze your dependencies and do not rely on the results of the maven dependency plugin. In that case you can provide a custom analyzer implementation, provide a custom configuration and bundle that as the tool, which can be used by your development teams to scan their projects.

Why Here?

Creating a project like SW360antenna to supplement Eclipse SW360 is the natural next step. SW360 is capable of collecting component information and making it available at a central place. The natural next step is to provide tooling to actually use that information in a build and by that further automate the compliance processes in organizations.

Project Scheduling

Q2/2018

  • provide initial contribution
  • legal check of initial contribution
  • setup public build infrastructure

Q3/2018

  • setup project page
  • first milestone release

Q4/2018

  • further feature implementation
Future Work

Next steps

  • Provide Gradle frontend
  • Enhance SW360 connector
  • Improve documentation and supporting material

Community work

  • Present project at conferences (EC France, BITKOM, ...)
  • Setup mailing list
  • Communicate availability in already established network around Open Source Compliance Tooling

 

Project Leads
Committers
Maximilian Huber
Johannes Kristan
Mentors
Interested Parties

Bosch Software Innovations GmbH

Siemens AG

Endocode AG

 

 

Initial Contribution

The initial contribution will be the publicly releasable part of an internal tool (TINA Tool) that is already in productive use for quite a while at Bosch Software Innovations GmbH. It consists of roughly 20 KLOC and is a Maven multi-module project.

Source Repository Type

Eclipse Project for JAX-WS

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 community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

This project is created as part of the process of transitioning Oracle Java EE 8 and GlassFish technologies to the Eclipse Foundation as described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter).

Scope

Eclipse Project for JAX-WS provides the API and TCK for

  • Java API for XML-Based Web Services (JAX-WS) 2.0 (starting from the specification defined by JSR-224)
  • Java APIs for XML Messaging (starting from the specification defined by JSR-67)
  • Web Services Metadata for the Java Platform (starting from the specification defined by JSR-181)
Description

The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs. It is part of the Java EE platform.

Why Here?

The top level EE4J project was created consistent with the direction described in The Eclipse Enterprise for Java Project Top Level Project Charter (https://projects.eclipse.org/projects/ee4j/charter).   This project is created under the top level EE4J project as one of Oracle Java EE 8 and GlassFish technologies being transitioned to the Eclipse Foundation.