How to compile TR-069 Java client Modus-TR-069 on Ubuntu Linux ?

Modus is a Java/OSGi implementation of a generic client for CWMP protocol, i.e. TR-069 standard from Broadband Forum.

You can download the code as mentioned at sourceforge website.

$ svn checkout https://svn.code.sf.net/p/modus-tr-069/code/trunk modus-tr-069-code

and you can compile the code as,

$ cd modus-tr-069-code/ClientTR69
$ mvn clean install

This will compile the client and generate the binaries as,

[INFO] Installing modus-tr-069-code/ClientTR69/SetParameterValuesBundle/target/SetParameterValuesBundle-1.1.0-SNAPSHOT.jar to ~/.m2/repository/com/francetelecom/acse/modus/SetParameterValuesBundle/1.1.0-SNAPSHOT/SetParameterValuesBundle-1.1.0-SNAPSHOT.jar
[INFO] Installing modus-tr-069-code/ClientTR69/SetParameterValuesBundle/pom.xml to ~/.m2/repository/com/francetelecom/acse/modus/SetParameterValuesBundle/1.1.0-SNAPSHOT/SetParameterValuesBundle-1.1.0-SNAPSHOT.pom
[INFO] Creating Checksums...
[INFO] Creating Checksums...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for modus-clientTR69 1.1.0-SNAPSHOT:
[INFO] 
[INFO] modus-clientTR69 ................................... SUCCESS [ 13.540 s]
[INFO] IPersistBundle ..................................... SUCCESS [16:16 min]
[INFO] TR69ClientAPI ...................................... SUCCESS [ 12.985 s]
[INFO] FilePersistBundle .................................. SUCCESS [  1.454 s]
[INFO] DataModelBundle .................................... SUCCESS [01:47 min]
[INFO] ServerComBundle .................................... SUCCESS [04:23 min]
[INFO] DownloadBundle ..................................... SUCCESS [  1.147 s]
[INFO] ApplyBundle ........................................ SUCCESS [  0.724 s]
[INFO] OSGIBundle ......................................... SUCCESS [  0.813 s]
[INFO] OSGiApplyBundle .................................... SUCCESS [  0.264 s]
[INFO] AddObjectBundle .................................... SUCCESS [  0.750 s]
[INFO] DeleteObjectBundle ................................. SUCCESS [  0.653 s]
[INFO] GetParameterAttributesBundle ....................... SUCCESS [  0.656 s]
[INFO] GetParameterNamesBundle ............................ SUCCESS [  0.721 s]
[INFO] GetParameterValuesBundle ........................... SUCCESS [  0.726 s]
[INFO] GetRPCMethodsBundle ................................ SUCCESS [  0.654 s]
[INFO] RebootBundle ....................................... SUCCESS [  0.455 s]
[INFO] SetParameterAttributesBundle ....................... SUCCESS [  0.983 s]
[INFO] SetParameterValuesBundle ........................... SUCCESS [  0.782 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  23:48 min

Now, we will create the final script to run the code as,

$ mvn assembly:assembly

This will create the binaries zip as,

[INFO] Reading assembly descriptor: src/assemble/bin.xml
[INFO] Build modus-tr-069-code/ClientTR69/target/modus-clientTR69-1.1.0-SNAPSHOT-distrib.zip
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for modus-clientTR69 1.1.0-SNAPSHOT:
[INFO] 
[INFO] modus-clientTR69 ................................... SUCCESS [02:35 min]
[INFO] IPersistBundle ..................................... SKIPPED
[INFO] TR69ClientAPI ...................................... SKIPPED
[INFO] FilePersistBundle .................................. SKIPPED
[INFO] DataModelBundle .................................... SKIPPED
[INFO] ServerComBundle .................................... SKIPPED
[INFO] DownloadBundle ..................................... SKIPPED
[INFO] ApplyBundle ........................................ SKIPPED
[INFO] OSGIBundle ......................................... SKIPPED
[INFO] OSGiApplyBundle .................................... SKIPPED
[INFO] AddObjectBundle .................................... SKIPPED
[INFO] DeleteObjectBundle ................................. SKIPPED
[INFO] GetParameterAttributesBundle ....................... SKIPPED
[INFO] GetParameterNamesBundle ............................ SKIPPED
[INFO] GetParameterValuesBundle ........................... SKIPPED
[INFO] GetRPCMethodsBundle ................................ SKIPPED
[INFO] RebootBundle ....................................... SKIPPED
[INFO] SetParameterAttributesBundle ....................... SKIPPED
[INFO] SetParameterValuesBundle ........................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:39 min

This generated the build at modus-tr-069-code/ClientTR69/target/modus-clientTR69-1.1.0-SNAPSHOT-distrib.zip which can be extracted as,

$ unzip modus-clientTR69-1.1.0-SNAPSHOT-distrib.zip
$ cd modus-clientTR69-1.1.0-SNAPSHOT

This you can see generated the final build as,

$ tree
.
├── ClientTR69.sh
├── data
│   ├── config.cfg
│   ├── data.sav
│   └── usine.txt
├── defineFile.cfg
├── fwdir
│   ├── bs
│   ├── data
│   │   ├── 1
│   │   ├── 11
│   │   │   └── Events.data
│   │   ├── 14
│   │   ├── 16
│   │   └── 2
│   │       └── cm_store
│   └── startlevel
│       └── currentlevel
├── init.xargs
└── lib
    ├── AddObjectBundle.jar
    ├── ApplyBundle.jar
    ├── cm_all-2.0.1.jar
    ├── component_all-2.0.0.jar
    ├── console_all-2.0.1.jar
    ├── consoletty-2.0.1.jar
    ├── DataModelBundle.jar
    ├── DeleteObjectBundle.jar
    ├── DownloadBundle.jar
    ├── event_all-2.0.4.jar
    ├── FilePersistBundle.jar
    ├── frameworkcommands-2.0.5.jar
    ├── framework.jar
    ├── GetParameterAttributesBundle.jar
    ├── GetParameterNamesBundle.jar
    ├── GetParameterValuesBundle.jar
    ├── GetRPCMethodsBundle.jar
    ├── IPersistBundle.jar
    ├── kxml-2.3.0.kf3.jar
    ├── log_all-2.0.2.jar
    ├── org.teleal.cling.osgi.basedriver.1.0-SNAPSHOT.jar
    ├── OSGiApplyBundle.jar
    ├── OSGIBundle.jar
    ├── prefs_all-2.0.3.jar
    ├── RebootBundle.jar
    ├── ServerComBundle.jar
    ├── SetParameterAttributesBundle.jar
    ├── SetParameterValuesBundle.jar
    ├── shell-1.0.0.RC2.jar
    ├── TR69ClientAPI.jar
    └── upnp_api-3.0.0.jar

in above you can see all libraries are compiled in lib directory.

Leave a Comment