java2cdif

Einige interessate Links:

CodeCrawler Swiki
CodeCrawler Homepage
Informationen zu FAMIX
Projektseiten java2cdif

Infos

java2cdif ist ein Tool zum Erzeugen von CDIF-Dateien aus Java-Bytecode. Das Metamodell für die CDIF-Dateien ist FAMIX. Die so ereugten Dateien können anschließend in den CodeCrawler importiert werden. Damit kann man endlich auch Javaprogramme mit dem CodeCrawler untersuchen.
Derzeit unterstützt java2cdiff die FAMIX-Versionen 2.0 und 2.2.
Zur Analyse des Bytecodes können zwei verschiedene Bibliotheken eingesetzt werden:

Realisiert ist java2cdif als Ant-Task.

Für alle, die den Quellcode übersetzen möchten, jedoch nicht CFParse haben/wollen, gibt es eine Dummy-Implementierung, mit der zwar das Übersetzen funktioniert, die aber nix tut als NPE zu produzieren.

If You dont want to use CFParse, but want to compile java2cdif yourself, You can use this Dummy-Implementation.

Beispielhafte Verwendung:

Beispielskript überspringen

<?xml version="1.0"?>
<project name="xyz" default="default" basedir=".">
  <target name="default" depends="j2c"/>
  <path id="path.build.lib">
    <fileset dir="./lib">
      <include name="**/*.jar"/> <!-- bcel-5.1.jar -->
    </fileset>
  </path>
  <taskdef name="java2cdif" classname="ant.famix.JAVA2FAMIX">
    <classpath location="./java2cdif.jar" />
    <classpath refid="path.build.lib"  />
  </taskdef>
  <target name="j2c">
    <java2cdif dirname="./classes" outputfile="xyzabc.cdif" libname="BCEL" famixversion="22" level="4">
    </java2cdif>
  </target>
</project>

[Beispielskript]

Dies liefert z.B. folgede Ausgabe:
Beispielausgabe überspringen

Buildfile: build.xml

j2c:
[java2cdif] Dirname:./classes
[java2cdif] OutputFile:D:\xyz\abc\xyzabc.cdif
[java2cdif] start
[java2cdif] Anzahl Packages:         10
[java2cdif] Anzahl Klassen:          86
[java2cdif] Anzahl Methoden:         420
[java2cdif] Anzahl Felder:           176
[java2cdif] Anzahl Aufrufe:          2034
[java2cdif] Anzahl Vererbungen:      82
[java2cdif] Anzahl Zugriffe:         509
[java2cdif] Anzahl lokale Variablen: 209

BUILD SUCCESSFUL
Total time: 3 seconds

[Beispielausgabe]

Howto:

<?xml version="1.0"?>
<project name="xyz" default="default" basedir=".">
  <target name="default" depends="j2c"/>
  <path id="path.build.lib">
    <fileset dir="./lib">
      <include name="**/*.jar"/> <!-- bcel-5.1.jar -->
    </fileset>
  </path>
  <taskdef name="java2cdif" classname="ant.famix.JAVA2FAMIX">
    <classpath location="./java2cdif_0.5.0.jar" />
    <classpath refid="path.build.lib"  />
  </taskdef>
  <target name="j2c">
    <java2cdif dirname="./classes" outputfile="xyzabc.cdif" libname="BCEL" famixversion="22" level="4">
    </java2cdif>
  </target>
</project>

It will produce something like:

Buildfile: build.xml

j2c:
[java2cdif] Dirname:./classes
[java2cdif] OutputFile:/test/xyzabc.cdif
[java2cdif] start
[java2cdif] Anzahl Packages:         9
[java2cdif] Anzahl Klassen:          86
[java2cdif] Anzahl Methoden:         418
[java2cdif] Anzahl Felder:           176
[java2cdif] Anzahl Aufrufe:          1975
[java2cdif] Anzahl Vererbungen:      100
[java2cdif] Anzahl Zugriffe:         509
[java2cdif] Anzahl lokale Variablen: 240

default:

BUILD SUCCESSFUL
Total time: 4 seconds

and a file called 'xyzabc.cdif'. It should look like xyzabc.cdif

Todo


Valid HTML 4.01! SourceForge.net Logo