Skip to content

SPRING_BEAN_NOT_SELECTED

these Spring beans are not part of the graph: [orphanBean]

Severity WARN
Category SPRING_CONFIG
Element SPRING_BEAN

The rule

With a nodeBeans allowlist in force, a bean that is neither listed nor ignored is excluded from the graph.

Why the compiler says this

nodeBeans is non-empty, so Fluxtion treats it as an allowlist: only the beans it names become nodes. The beans listed here are in neither nodeBeans nor ignoredBeans, so they were left out — silently, because being absent from a list is not an error the compiler could otherwise notice.

How to fix it

Add each bean to nodeBeans if it should be part of the graph, or to ignoredBeans to record that leaving it out is deliberate. Listing it as ignored is how an intentional omission stops being reported.

Example

Both files below are executed against the real Spring adapter on every build, so the first is guaranteed to produce this diagnostic and the second to build cleanly.

The configuration that causes it

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="stringHandler" class="com.telamin.fluxtion.builder.extern.spring.errors.SpringErrorFixtures$StringHandler"/>

    <!-- Declared, in neither list, and referenced by nothing: silently excluded. -->
    <bean id="orphanBean" class="com.telamin.fluxtion.builder.extern.spring.errors.SpringErrorFixtures$OrphanBean"/>

    <bean class="com.telamin.fluxtion.builder.extern.spring.FluxtionSpringConfig">
        <property name="nodeBeans"><list><value>stringHandler</value></list></property>
    </bean>
</beans>

The configuration that fixes it

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="stringHandler" class="com.telamin.fluxtion.builder.extern.spring.errors.SpringErrorFixtures$StringHandler"/>
    <bean id="orphanBean" class="com.telamin.fluxtion.builder.extern.spring.errors.SpringErrorFixtures$OrphanBean"/>

    <bean class="com.telamin.fluxtion.builder.extern.spring.FluxtionSpringConfig">
        <!-- Either list it, so it joins the graph... -->
        <property name="nodeBeans">
            <list>
                <value>stringHandler</value>
                <value>orphanBean</value>
            </list>
        </property>
    </bean>
</beans>

Which builds raise it

Spring configuration analysis, on every build path that loads a Spring context. Non-Spring builds never raise it.

Reading it programmatically

This diagnostic is also written to the machine-readable report — the opt-in sidecar (-Dfluxtion.diagnostics.sidecar=true), or FluxtionDiagnostics.capture(...) for a caller that wants the objects:

{
  "code": "SPRING_BEAN_NOT_SELECTED",
  "severity": "WARN",
  "category": "SPRING_CONFIG",
  "element": { "kind": "SPRING_BEAN",  }
}

Select findings by severity, never by position: a failing build's report also contains any warnings it found, and diagnostics[0] is not the cause of the failure.


This page is generated from the compiler itself, so the wording above is exactly what a build emits. Do not edit it by hand — it is overwritten whenever the diagnostics are regenerated.