This repository has been 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
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
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
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 interfaceSuperClassAnalyzer
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
- removed deprecated goal
find-without-packaging
v1.5
- 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
v1.4.1
- introduced new goal
help
v1.4
- 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
)
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.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
v1.2.0
- 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
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.