This repository was archived by the owner on Mar 11, 2024. It is now read-only.
Releases: Scout24/deadcode4j
Releases · Scout24/deadcode4j
v2.1.0
Features
- stefanbirkner introduced
JerseyWebXmlAnalyzerwhich finds references to custom Jersey Application classes - Added Java8 support! Now those lambdas can be parsed!
SpringXmlAnalyzernow finds references due to static calls made byorg.springframework.beans.factory.config.MethodInvokingFactoryBean
Bug Fixes
- Fixed XML text handling for subclasses of
SimpleXmlAnalyzer
v2.0.1
v2.0.0
- Gather & send usage statistics
- Perform an update check
- ByteCodeAnalyzers know have access to the full class path
AnnotationsAnalyzernow- recursively examines the annotations
- examines the superclasses for annotations marked with
@Inherited
InterfacesAnalyzernow determines implementation even if by a superclass or inherited by other interfaceSuperClassAnalyzernow analyzes the whole class hierarchy
- Introduced
TypeErasureAnalyzerwhich finds references that are not found in the byte code due to type erasure - Introduced
ReferenceToConstantsAnalyzerwhich 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
contextConfigLocationinit-parameter - Added analysis of Jetty XML configuration files: recognizing listed
classandtypeattributes 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
- removed deprecated goal
find-without-packaging
v1.5
- Added analysis of
aop.xmlfiles: recognizing listed aspects as live code. Supports both AspectJ and AspectWerkz - Added analysis of
.wsddfiles: recognizing listed Service classes as live code - Spring XML analysis now also recognizes CXF endpoint definitions as live code. Supports the
implementor/implementorClassattributes only; if you are using theimplementorelement: 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-onlybeing the equivalent offind-without-packaging, except for having a better name - Added analysis of
faces-config.xmlfiles: 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.GenericGeneratorthat are referred by a class annotated withjavax.persistence.GeneratedValueare recognized as live code. - a warning is issued if a
@TypeDefis defined more than once with the same name - a warning is issued if a
@GenericGeneratoris defined more than once with the same name
- classes annotated with a
- Mark classes being annotated with the JAXB annotation
javax.xml.bind.annotation.XmlRegistryas 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.ServletContainerInitializeras live code.- support Spring variant of this concept: recognizing implementations of
org.springframework.web.WebApplicationInitializeras live code
- support Spring variant of this concept: recognizing implementations of
v1.4.1
- introduced new goal
help
v1.4
- More thorough analysis of
web.xmlfiles: look for the parameters specified by Spring'sContextLoaderandFrameworkServletcontextClassfor an instance ofConfigurableWebApplicationContextcontextInitializerClassesfor instances ofApplicationContextInitializer
- Mark classes being annotated with the JAXB annotation
javax.xml.bind.annotation.XmlSchemaas live code - Processing of Hibernate Annotations
- Classes whose members are annotated with
org.hibernate.annotations.Typenow depend on- either the class defining the associated
org.hibernate.annotations.TypeDef - or the class specified as
typeif it is part of the analyzed project
- either the class defining the associated
- Classes being annotated with
org.hibernate.annotations.GenericGeneratornow depend on the class specified asstrategyif 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.FacesBehaviorjavax.faces.convert.FacesConverterjavax.faces.event.ListenerForjavax.faces.event.ListenersForjavax.faces.event.NamedEventjavax.faces.render.FacesBehaviorRendererjavax.faces.render.FacesRendererjavax.faces.validator.FacesValidatorjavax.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.XMLClassDescriptorImplas 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)
v1.3
- 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.Componentorg.springframework.stereotype.Controllerorg.springframework.stereotype.Serviceorg.springframework.stereotype.Repositoryorg.springframework.context.annotation.Configurationorg.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
v1.2.0
- Added analysis of
web.xmlfiles: recognizing listed listeners, filters & servlets as live code - Added analysis of
*tldfiles: recognizing custom tags, tag extra infos, listeners, tag library validators & EL functions as live code - Execute package phase, scan
webappDirectory/WEB-INFadditionally to the output directory - Mojo is now marked as an aggregator, analyzing all projects of a reactor
v1.1.0
Added analysis of Spring XML files to determine if a class is used.
v1.0.1
Allows to ignore classes that are known to be no dead code.