Skip to content

Code generator that can be used to generate java interfaces from a Hydra-based JSON-LD document.

Notifications You must be signed in to change notification settings

cemelo/hydra2java

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hydra2java

Code generator that can be used to generate java interfaces from a Hydra-based JSON-LD document.

Getting Started

  • $ easy_install PyLD rdflib rdflib-jsonld rdfextras

  • $ chmod +x hydra2java-rdf.py

  • To test: $ curl http://www.markus-lanthaler.com/hydra/api-demo/vocab | ./hydra2java-rdf.py

  • To test with Jersey:

$ cd <scr-path>

$ mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.17

$ cd <hydra2java-path>

$ curl http://www.markus-lanthaler.com/hydra/api-demo/vocab | \
./hydra2java-rdf.py -t class -p com.example \
-d <src-path>/simple-service/src/main/java/com/example

$ cd serializer

$ mvn clean install

Add the following to the generated pom.xml, and also enable json support:

<dependency>
    <groupId>de.escalon.hypermedia</groupId>
    <artifactId>hydra-jsonld</artifactId>
    <version>0.2.0-beta3-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>io.hydra2java</groupId>
    <artifactId>serializer</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

In Main.java, startServer method, add the following after instantiation of ResourceConfig:

rc.register(io.hydra2java.JsonLdProvider.class);

Add code to some generated classes, and proceed:

$ cd <scr-path>/simple-service

$ mvn clean test

$ mvn exec:java

(send some requests)

About

Code generator that can be used to generate java interfaces from a Hydra-based JSON-LD document.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 64.4%
  • Java 35.6%