In JRadius, known attributes are represented by Java classes. The source for these classes is generated based on FreeRADIUS style dictionary files.
Included in the binary distributions is a script called build_dictionary.sh. It looks something like:
#!/bin/sh cd `dirname $0` pwd=$(pwd) classpath=".:$pwd/lib" # pickup jradius-core into classpath for jar in $pwd/lib/*jradius-core*.jar; do classpath="$classpath:$jar" done # generate source CLASSPATH="$classpath" java net.jradius.freeradius.RadiusDictionary net.jradius.dictionary share tmp-dictionary # compile and jar (cd tmp-dictionary find . -name \*.java -print > file.list echo "Compiling $(wc -l file.list) classes" CLASSPATH="$classpath" javac @file.list echo "Creating jar jradius-dictionary.jar" find . -name \*.class -print > class.list jar cf ../jradius-dictionary.jar @class.list )
<build>
<sourceDirectory>target/dictionary-src</sourceDirectory>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<java fork="false" classname="net.jradius.freeradius.RadiusDictionary"
maxmemory="800m" failonerror="true">
<classpath>
<path refid="maven.compile.classpath" />
</classpath>
<arg value="net.jradius.dictionary" />
<arg value="${basedir}/../freeradius/dict" />
<arg value="${basedir}/target/dictionary-src" />
</java>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>Put the above in your project pom.xml