Leshan is a OMA Lightweight M2M server and client java implementation.
What is OMA LWM2M ?
The specification.
Introduction to LWM2M.
Leshan provides libraries which help people to develop their own Lightweight M2M server and client. The project also provides a Lightweight M2M standalone server as an example of the Leshan Server API and for testing purpose.
Join the project mailing list : subscribe.
Mail address: leshan-dev@eclipse.org.
Access to leshan-dev archives.
You can try live our server demo instance on: http://leshan.eclipse.org/
(Automatic deployment of master branch)
Get and run the last binary of our demo server :
wget https://hudson.eclipse.org/leshan/job/leshan/lastSuccessfulBuild/artifact/leshan-standalone.jar
java -jar ./leshan-standalone.jar
mvn install
cd leshan-standalone
mvn assembly:assembly -DdescriptorId=jar-with-dependencies
Run:
java -jar target/leshan-standalone-*-SNAPSHOT-jar-with-dependencies.jar
Connect on Leshan demo UI: http://localhost:8080
Leshan provides a very simple UI to get the list of connected clients and interact with clients resources.
Now you can register a LWM2M client.
You could try the LeshanDevice example, the Eclipse Wakaama test client or script samples of its lua binding [lualwm2m] (https://github.com/sbernard31/lualwm2m).
To build the LeshanDevice example, first compile:
mvn install
cd leshan-client-example
mvn assembly:assembly -DdescriptorId=jar-with-dependencies
Then run, setting the hostname and port of the server:
java -jar target/leshan-client-example-*-SNAPSHOT-jar-with-dependencies.jar localhost 5683
The list of the registered clients: http://localhost:8080/api/clients
You need to add the M2_REPO to your java classpath variables. To do that you can execute the following command:
mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo
An eclipse restart is needed (if you already have it open).
You can also do that inside eclipse: From the menu bar, select Window > Preferences. Select the Java > Build Path > Classpath Variables page.
Now, you need to eclipsify leshan java projects,so run:
mvn eclipse:eclipse
Leshan-core
: commons elements.
Leshan-server-core
: server lwm2m logic.
Leshan-server-cf
: server implementation based on californium.
Leshan-client-core
: client lwm2m logic.
Leshan-client-cf
: client implementation based on californium.
Leshan-all
: every previous modules in 1 jar.
Leshan-client-example
: a sample of client API.
Leshan-standalone
: a demo server with a web UI.
Leshan-bs-server
: a bootstarp demo server.
Leshan-integration-tests
: integration automatic tests.