eclipse-sirius / sirius-emf-json

JSON-based EMF Resource implementation - part of Eclipse Sirius
https://eclipse.dev/sirius/sirius-web.html
Eclipse Public License 2.0
5 stars 10 forks source link

= Eclipse Sirius EMF JSON

This project is part of http://www.eclipse.org/sirius[Eclipse Sirius]. It provides a JSON-based implementation of EMF resources which can be used as a drop-in replacement for the default XMI-based format.

Although it is part of Sirius, this new EMF resource type can actually be used by any EMF-based application as it does not depend on the rest of the Sirius platform (neither Sirius Desktop nor Sirius Web).

== Building

The build uses https://maven.apache.org/[Apache Maven] (version 3.6.3) and http://www.eclipse.org/tycho/[Tycho]. To launch a complete build, issue:

[source,sh]

mvn clean package -f releng/org.eclipse.sirius.emfjson.releng/pom.xml

from the top-level directory.

WARNING: Note that you will need to use Java 11 to run the build. Java 12 and later are currently not supported.

If you are behind a proxy, you may get Maven errors about checkstyle.org not being available. In this case you need to explicitly disable CheckStyle from the build:

[source,sh]

mvn clean package -f releng/org.eclipse.sirius.emfjson.releng/pom.xml -P!checkstyle

The resulting update-site (p2 repository) can be found in repositories/org.eclipse.sirius.emfjson.repository/target/repository.

== Usage

To use EMF JSON resources, simply register the org.eclipse.sirius.emfjson.resource.JsonResourceFactoryImpl resource factory in your resource set or in the global resource factory registry. For example:

[source,java]

Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("json", new JsonResourceFactoryImpl());

If you are running in the context of the Eclipse Platform, the org.eclipse.sirius.emfjson.ide plug-in does this automatically and also registers the corresponding Content-Type.

See the org.eclipse.sirius.emfjson.resource.JsonResource for various options that can be used to control the serialisation/deserialisation process (e.g. whether to pretty-print the JSON).

== License

Eclipse Public License - v 2.0