org.clyze:jphantom

A tool for Java program complementation

Лицензия

Лицензия

Категории

Категории

Ant Компиляция и сборка
Группа

Группа

org.clyze
Идентификатор

Идентификатор

jphantom
Последняя версия

Последняя версия

1.3
Дата

Дата

Тип

Тип

jar
Описание

Описание

org.clyze:jphantom
A tool for Java program complementation
Ссылка на сайт

Ссылка на сайт

https://github.com/gbalats/jphantom
Система контроля версий

Система контроля версий

https://github.com/gbalats/jphantom.git

Скачать jphantom

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.clyze/jphantom/ -->
<dependency>
    <groupId>org.clyze</groupId>
    <artifactId>jphantom</artifactId>
    <version>1.3</version>
</dependency>
// https://jarcasting.com/artifacts/org.clyze/jphantom/
implementation 'org.clyze:jphantom:1.3'
// https://jarcasting.com/artifacts/org.clyze/jphantom/
implementation ("org.clyze:jphantom:1.3")
'org.clyze:jphantom:jar:1.3'
<dependency org="org.clyze" name="jphantom" rev="1.3">
  <artifact name="jphantom" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.clyze', module='jphantom', version='1.3')
)
libraryDependencies += "org.clyze" % "jphantom" % "1.3"
[org.clyze/jphantom "1.3"]

Зависимости

compile (13)

Идентификатор библиотеки Тип Версия
org.ow2.asm : asm jar 8.0.1
org.ow2.asm : asm-tree jar 8.0.1
org.ow2.asm : asm-util jar 8.0.1
org.ow2.asm : asm-commons jar 8.0.1
org.ow2.asm : asm-analysis jar 8.0.1
com.google.guava : guava jar 29.0-jre
args4j : args4j jar 2.33
ch.qos.logback : logback-classic jar 1.2.3
ch.qos.logback : logback-core jar 1.2.3
org.slf4j : slf4j-api jar 1.7.30
net.sf.jgrapht : jgrapht jar 0.8.3
org.apache.commons : commons-lang3 jar 3.11
com.google.code.findbugs : annotations jar 3.0.1

Модули Проекта

Данный проект не имеет модулей.

JPhantom

A tool for Java program complementation. It takes a single jar as its main argument and complements it by creating a new jar that adds dummy implementations for every phantom class detected in the original one. (A phantom class is a class that is referenced somewhere but its definition is missing.)

The phantom classes in the produced jar will contain every missing field and method that was referenced and used in the original jar, as well as a supertype that respects every type constraint that was found (e.g., if phantom class B was used in a place where known class A was expected, and a widening reference conversion took place, then we must conclude that class A is a supertype of B).

You can read more about the underlying problem of class hierarchy complementation in the OOPSLA '13 paper (or the presentation slides).

Release

To list JPhantom as a dependency using Maven, add the following to your pom.xml:

<dependency>
  <groupId>org.clyze</groupId>
  <artifactId>jphantom</artifactId>
  <version>1.3</version>
</dependency>

To add a dependency using Gradle:

dependencies {
  compile 'org.clyze:jphantom:1.3'
}

Usage

java -jar <jphantom>  <injar> [--debug] [--help] [--save-class-files] [-d <dir>] [-o <outjar>] [-v (--log, --verbose) N]

 <injar>                 : the jar to be complemented
 --debug                 : Debug mode
 --help                  : Help
 --save-class-files      : Save phantom class files
 -d <dir>                : Phantom-classes destination directory
 -o <outjar>             : the destination path of the complemented jar
 -v (--log, --verbose) N : Level of verbosity

You can use the --save-class-files option to save the generated class files for the phantom classes that were detected in the process. This is handy when you want to inspect only the code that was autogenerated, without having to extract the relevant class files from the complemented jar.

You can also increase the level of verbosity to log every constraint that was detected by using the --verbose N option.

Версии библиотеки

Версия
1.3
1.2