This repository has been archived by the owner on Mar 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Changelog
Sebastian Kirsch (@skirsch79) edited this page May 20, 2016
·
13 revisions
-
stefanbirkner introduced
LogbackXmlAnalyzer
which finds references to classes defined in logback.xml configuration files
####code changes
- Fixed XML text handling for subclasses of
SimpleXmlAnalyzer
-
stefanbirkner introduced
JerseyWebXmlAnalyzer
which finds references to custom Jersey Application classes - Added Java8 support! Now those lambdas can be parsed!
-
SpringXmlAnalyzer
now finds references due to static calls made byorg.springframework.beans.factory.config.MethodInvokingFactoryBean
- Introduced
ExtendedXmlAnalyzer
that is able to build more complex XPath expressions for StAX
####code changes
- The
ReferenceToConstanstsAnalyzer
now also recognizes references from nested classes to constants of the declaring class hierarchy; this also speeds up the analysis a tad. - Fixed #10: Correct calculation of anonymous classes' names
####code changes
v.2.0.0 →announcement
- ByteCodeAnalyzers now have access to the full class path
-
AnnotationsAnalyzer
now- recursively examines the annotations
- examines the superclasses for annotations marked with
@Inherited
-
InterfacesAnalyzer
now determines implementation even if by a superclass or inherited by other interface -
SuperClassAnalyzer
now analyzes the whole class hierarchy
-
- Introduced
TypeErasureAnalyzer
which finds references that are not found in the byte code due to type erasure - Introduced
ReferenceToConstantsAnalyzer
which finds references that are not found in the byte code due to constants inlining- to be precise, this analyzer finds references to all constants, not only to those that are inlined
- Added analysis of Spring Data custom repositories: recognizing custom implementations as live code.
- only recognizes custom implementations following the default naming convention
RepositoryNameImpl
- only recognizes custom implementations following the default naming convention
- Custom analyzers now report if a configured annotation, interface, superclass or XPath isn't found in the class path and thus could be removed
- SpringWebXmlAnalyzer now recognizes classes listed within the
contextConfigLocation
init-parameter - Added analysis of Jetty XML configuration files: recognizing listed
class
andtype
attributes as live code - Added possibility to mark all classes with a main method as live code
- made deadcode4j more resilient: failing to analyze a file does not lead to termination any longer
- calculate class path for each project & pass along to analyzers
- analyze each module with its own context
- establish possibility to pass on intermediate results to depending modules
- moved ignore classes feature to its own Analyzer
- performs an update check when starting up
- may send usage statistics to Google Forms
####code changes
v.1.5 →announcement
- Added analysis of
aop.xml
files: recognizing listed aspects as live code. Supports both AspectJ and AspectWerkz - Added analysis of
.wsdd
files: recognizing listed Service classes as live code - Spring XML analysis now also recognizes CXF endpoint definitions as live code. Supports the
implementor
/implementorClass
attributes only; if you are using theimplementor
element: use the attribute instead. - Spring XML analysis now also recognizes classes executed by Quartz jobs as live code.
- Spring XML analysis now also recognizes view classes used by view resolvers as live code.
- The custom XML analyzer now allows to specify the predicate
[@attributeName='attributeValue']
in the XPath definition - introduced goal
find-only
being the equivalent offind-without-packaging
, except for having a better name - Added analysis of
faces-config.xml
files: recognizing listed classes as live code. - Added analysis of Spring Web Flow XML files: recognizing listed classes & types as live code.
- Added analysis of Spring XML NamespaceHandlers: recognizing listed namespace handlers as live code.
- Hibernate annotations
- classes annotated with a
org.hibernate.annotations.GenericGenerator
that are referred by a class annotated withjavax.persistence.GeneratedValue
are recognized as live code. - a warning is issued if a
@TypeDef
is defined more than once with the same name - a warning is issued if a
@GenericGenerator
is defined more than once with the same name
- classes annotated with a
- Mark classes being annotated with the JAXB annotation
javax.xml.bind.annotation.XmlRegistry
as live code. - Added analysis of Apache Tiles XML definition files: recognizing listed classes as live code.
- Added analysis of a JEE6 feature: recognizing implementations of
javax.servlet.ServletContainerInitializer
as live code.- support Spring variant of this concept: recognizing implementations of
org.springframework.web.WebApplicationInitializer
as live code
- support Spring variant of this concept: recognizing implementations of
- integrated logging in tooling classes via SLF4J
- updated versions of all plugins & dependencies to the most recent version as of 2014/04/11
- use guava'a
Preconditions
for argument checking
####code changes
- introduced new goal
help
- explicitly list all dependencies
####code changes
v.1.4 →announcement
- introduced new goal
find-without-packaging
- More thorough analysis of
web.xml
files: look for the parameters specified by Spring'sContextLoader
andFrameworkServlet
-
contextClass
for an instance ofConfigurableWebApplicationContext
-
contextInitializerClasses
for instances ofApplicationContextInitializer
-
- Mark classes being annotated with the JAXB annotation
javax.xml.bind.annotation.XmlSchema
as live code - Processing of Hibernate Annotations
- Classes whose members are annotated with
org.hibernate.annotations.Type
now depend on- either the class defining the associated
org.hibernate.annotations.TypeDef
- or the class specified as
type
if it is part of the analyzed project
- either the class defining the associated
- Classes being annotated with
org.hibernate.annotations.GenericGenerator
now depend on the class specified asstrategy
if it is part of the analyzed project
- Classes whose members are annotated with
- Mark classes being annotated with those JSF annotations as live code:
javax.faces.component.behavior.FacesBehavior
javax.faces.convert.FacesConverter
javax.faces.event.ListenerFor
javax.faces.event.ListenersFor
javax.faces.event.NamedEvent
javax.faces.render.FacesBehaviorRenderer
javax.faces.render.FacesRenderer
javax.faces.validator.FacesValidator
javax.faces.view.facelets.FaceletsResourceResolver
- Added possibility to specify which modules should be skipped (configuration parameter
modulesToSkip
) - Mark classes being direct subclasses of
org.exolab.castor.xml.util.XMLClassDescriptorImpl
as live code - Added possibility to specify which classes mark a direct subclass of those as being live code (configuration parameter
superClassesMarkingLiveCode
) - Added possibility to specify which interfaces being explicitly implemented mark a class as beig live code (configuration parameter
interfacesMarkingLiveCode
)
- expanded lifecycle of
Analyzer
s: now there's afinishAnalysis
method being called at the end, enabling post-processing - refactored
XmlAnalyzer
: only handling the basics now (setting up the SAX parser and checking the file name), introducedSimpleXmlAnalyzer
providing the old functionality - defined centralized annotation discovery
ByteCodeAnalyzer.getAnnotations
####code changes
v.1.3 →announcement
- Mark classes being annotated with those JEE annotations as live code:
- Mark classes being annotated with those Spring annotations as live code:
org.springframework.stereotype.Component
org.springframework.stereotype.Controller
org.springframework.stereotype.Service
org.springframework.stereotype.Repository
org.springframework.context.annotation.Configuration
org.springframework.jmx.export.annotation.ManagedResource
- Added possibility to specify which annotations mark a class as being live code
- Added possibility to specify a custom XML analyzer treating either an element's text or attribute as a used class
- Added goal
find-without-packaging
to speed up execution if need be
####code changes
v.1.2.0 →announcement
- Added analysis of
web.xml
files: recognizing listed listeners, filters & servlets as live code - Added analysis of
*tld
files: recognizing custom tags, tag extra infos, listeners, tag library validators & EL functions as live code - Execute package phase, scan
webappDirectory/WEB-INF
additionally to the output directory - Mojo is now marked as an aggregator, analyzing all projects of a reactor
- handle each file independently, i.e. no more setup of a ClassPool & ClassLoader with which to access all classes/files
- use commons-io to iterate over files
- use Invoker Plugin to test the plugin
- introduced
de.is24.deadcode4j.Utils
class providing convenience functions
####code changes
v.1.1.0 →announcement
- Added analysis of Spring XML files to determine if a class is used
- Integrated with Travis
####code changes
- Added possibility to ignore presumably dead code
####code changes
- Static Class file analysis based on Javassist
####code changes