An open source Eclipse marketplace server based on the marketplace client REST API.
This server implementation differs from the Eclipse Foundation's server in some key areas:
- The Equinox p2 repositores along with all other data are hosted on the server.
- User accounts are optionally integrated with GitHub, Twitter or Google accounts.
- Feature metadata can be edited and published using a form from within Eclipse.
- Publishing also builds the feature using PDE build.
- Designed as a lightweight solution for organizations that require an in-house service for distributing Eclipse features.
- This code is open source and released under the Eclipse Public License.
This server is built on Spring Boot, Eclipse EMF, HyperSQL DB, Hibernate and Eclipse Teneo. It is self-contained, so there is no need to install anything for deployment except for Java 8. While it is created for serving DAWN plug-ins, it can be used for distributing plug-ins for any Eclipse based product as it is compatible with the Eclipse Marketplace client.
Starting the server
When running the standalone server you need to start it from the command
java -jar org.dawnsci.marketplace.server-1.0-SNAPSHOT.war.
See the notes for the server for more details.
Using the marketplace client
Start Eclipse with required parameters for connecting to the server, e.g.
/Eclipse.app/Contents/MacOS/eclipse -vmargs -Dorg.eclipse.epp.internal.mpc.core.service.DefaultMarketplaceService.url=http://localhost:8080/mpc -Dorg.eclipse.epp.internal.mpc.core.service.DefaultCatalogService.url=http://localhost:8080/mpc
Replace http://localhost:8080 with whatever you have the server running on.
Development and Building
When doing development on this code, you should start the server from within Eclipse. That will allow you to do normal debugging. Make sure the Spring tool suite is installed and launch the org.dawnsci.marketplace.server project as a Spring Boot App.
The server is built using Maven so it is sufficient to execute
mvn clean install from the project root.
If you want to build the client for integration with an Eclipse RCP application
you must specify to use the client profile,
mvn -Pclient clean install.