Complete technical reference
Reload support reference
This is the canonical support table. The interactive reload matrix and its downloadable JSON are generated from these rows; edit this file, never generated output. Each result applies only to its stated condition and linked scope. An unverified result is neither a success nor a refusal. Java 17+ is a target, not certification of every vendor or OS.
| ID | Area | Change | Outcome | Conditions | Next action | Reference |
|---|---|---|---|---|---|---|
| method-body | Java | Edit an existing method body | works | Compile a supported edit into a watched output. Existing object fields remain on the JVM method-body-only path. Framework follow-up can separately recreate beans. | Compile, check the same JVM and inspect the changed result. | Scope |
| added-method | Java | Add or remove a method | conditional | Stock-JDK companion mode supports hot-compiled calls; new methods do not become native members of the original Class. Previously held removed members can retain their last implementation. | Compile affected watched callers; use a supported framework adapter for reflection. | Scope |
| instance-field | Java | Add an instance field | conditional | Stock mode stores added fields separately. Isolated initializers run on first read for existing objects; constructor-dependent or entangled initializers retain type defaults with a reason. | Read the initializer diagnostic and verify an existing object. | Scope |
| field-caller | Java | Read/write an added field from another class | conditional | Both owner and caller must be watched/reloaded in the measured direct-access shape. Field-type changes and every inherited/loader variant are not certified. | Compile both sides and check the shared value on an existing object. | Scope |
| static-field | Java | Add a static field with an initializer | conditional | Compile-time constants and separable initializers, including bounded forward conditionals/switches, are supported. Existing static blocks and values are not reset. | Check the new value and any extraction refusal reason. | Scope |
| static-reset | Java | Change an already initialized static field initializer | restart | Later saves preserve the current added static value, including null or application writes. Reload does not replay arbitrary static initialization. | Restart to run startup initialization again; account for external side effects. | Scope |
| inlined-constant | Java | Change an inlined compile-time constant | conditional | Callers can retain their old literal until recompiled. AutoCompile can rebuild detected watched sources; unwatched consumers remain outside that repair. | Recompile affected callers or use supported AutoCompile. | Scope |
| enum-tail | Java | Append an enum constant / remove its final constant | conditional | Documented on JDK 17–25 with ordinal-preserving edits. Existing application arrays sized from the old enum length do not grow. | Check enum consumers and any fixed-size application arrays. | Scope |
| enum-reorder | Java | Insert/reorder enum values or remove a non-tail value | restart | The edit renumbers ordinals; Reclazz refuses it. Restart alone does not migrate persisted ordinal data. | Review persisted ordinals and restart for the type change. | Scope |
| interface | Java | Add or remove an implemented interface | conditional | Requires a compatible enhanced-redefinition JVM such as JBR/DCEVM. Stock JVMs refuse the type change. | Use a supported enhanced runtime or restart. | Scope |
| superclass | Java | Change a superclass | restart | The loaded superclass stays unchanged. Eligible bodies may apply; dependent methods stay pinned and unsafe signatures/constructors can refuse the whole save. | Read partial/refused reporting and restart for the hierarchy. | Scope |
| reflection | Java | Discover added members through arbitrary reflection | restart | On stock JVMs the original Class lacks companion members. Explicit framework adapters have separate scope; arbitrary reflective consumers do not. | Restart, or use a compatible enhanced JVM/explicitly supported adapter. | Scope |
| jdk-new | Java | Assume every Java 17+ vendor/version is certified | unverified | Java 17+ is the target. The main recorded portable lanes are stock SapMachine 17/21 on macOS arm64, not every vendor, OS or future JDK. | Validate the exact runtime and change shape. | Scope |
| bean | Spring | Refresh an affected singleton bean | conditional | Supported bean paths destroy/recreate the singleton and repair bounded references. Mutable bean state can reset; arbitrary external holders are not repaired. | Check lifecycle effects, current references and the served result. | Scope |
| component | Spring | Add a new component class | conditional | Direct/composed stereotypes, native name/condition selection and singleton/prototype/lazy creation are supported. Not a repeat of full startup scanning. | Compile the new class and check registration/condition outcome. | Scope |
| custom-scope | Spring | Add a component with a web/custom scope or scoped proxy | restart | The new-component path refuses these scope shapes. Normal singleton/prototype support does not imply custom scope enrollment. | Restart under the application’s normal configuration. | Scope |
| condition-recheck | Spring | Reevaluate every filtered component after a profile/property edit | unverified | New-component conditions are registration-time decisions. General later rediscovery and startup import/auto-configuration replay are outside this path. | Use a restart for a changed startup topology; validate any narrower path. | Scope |
| bean-factory | Spring | Add an @Bean factory method | conditional | Bounded lite/full/static configuration paths support documented arguments, aliases, selection and direct conditions. Existing names/custom scopes/unknown composed conditions are restricted. | Use the exact factory allowlist and check product identity/lifecycle. | Scope |
| injection | Spring | Change existing injection or lifecycle metadata | conditional | Spring metadata caches are refreshed on supported bean paths. Recreation has state and reference limits; it is not an arbitrary graph rewrite. | Check the recreated bean’s injection and lifecycle behavior. | Scope |
| new-lifecycle | Spring | Add @PostConstruct / @PreDestroy methods | conditional | Supported plain singletons use the javax Spring 5 / Jakarta Spring 6 lanes. Each instance keeps its added destroy callback through later edits/removal. | Verify creation/injection/destruction for the affected instance. | Scope |
| service-advice | Spring | Add @Transactional or cache-advised service methods | conditional | Supported public singleton operations use native interceptors; bounded composed metadata is supported. Compile the caller and respect the proxy/advice allowlist. | Verify commit/rollback or cache behavior, not only the method result. | Scope |
| security | Spring | Add pre/post authorization to a new service operation | conditional | Named classic/modern Spring Security graphs support direct and bounded composed policies. Unknown security infrastructure/advice shapes are refused. | Check both allowed and denied calls with the installed security graph. | Scope |
| aspect | Spring | Edit an @Aspect pointcut | conditional | Updates supported existing mutable singleton JDK/CGLIB proxy chains. Previously unproxied targets and unsupported proxy shapes are outside this path. | Check an already-injected reference and inspect unsupported targets. | Scope |
| scheduled | Spring | Add/edit/remove @Scheduled methods | conditional | Direct no-argument void callbacks on supported singletons, with documented proxy/transaction/cache/async combinations. Removal cancels the registration. | Check one current schedule and retirement of its predecessor. | Scope |
| event | Spring | Add/edit/remove @EventListener methods | conditional | Direct callbacks with one reference event input and void/single-event return on supported singletons. Filtering/order/conditions and advice have bounded scope. | Publish a test event; check current delivery and no stale registration. | Scope |
| transaction-event | Spring | Add @TransactionalEventListener methods | conditional | Direct void methods on supported unproxied singletons; Spring handles phase/fallback/conditions/order. Reload retires queued callbacks from the old added registration. | Check the intended transaction phase and a later edit/removal. | Scope |
| async | Spring | Add @Async service methods | conditional | Direct public methods support void, Future and CompletableFuture with native executor/error handling and supported transaction/cache advice. | Check execution, returned completion and exception handling. | Scope |
| constructor-helper | Spring | Reload a helper captured by a constructor-injected leaf | conditional | Exact supported factories, plain two-node shapes and one measured direct-child context form. Aliases, broader graphs, proxies/factory products and lifecycle-owned shapes are excluded. | Read the ownership contract and verify the retained caller’s value. | Scope |
| mvc | Web & JSON | Add/change a controller endpoint | conditional | Supported controller mapping rescans include added methods on stock JVMs. Receiver, metadata and classloader shapes still matter. | Compile and send a request to the intended route. | Scope |
| exception-handler | Web & JSON | Add @ExceptionHandler methods | conditional | Plain controllers/advice and standard resolver on Framework 5.3.39/6.1.14; bounded synchronous metadata. Proxy/inheritance/generic/composed/custom resolver shapes are excluded. | Check status/body and handler precedence; fix ambiguous mappings. | Scope |
| binder-model | Web & JSON | Add @InitBinder / @ModelAttribute methods | conditional | Supported plain controller/advice adapters preserve named binding, model rules and native advice order/selectors. Read the exact callback allowlist. | Check a real binding/model request through the current controller. | Scope |
| jackson | Web & JSON | Add Jackson getters, setters or DTO fields | conditional | Supported Spring-managed mapper adapter; mutable DTOs and saved annotations. Final added fields are not writable; creator/record/builder additions are excluded. | Check JSON input and output against the installed Jackson version. | Scope |
| serializer | Web & JSON | Assume every serializer discovers companion members | unverified | Jackson’s explicit adapter does not establish arbitrary Gson/custom mapper or record-creator support. Stock original-class reflection remains limited. | Validate the serializer or restart for native reflective visibility. | Scope |
| constraint | Web & JSON | Change validation constraints on an existing field | conditional | Supported Hibernate Validator metadata caches are cleared in both javax/Jakarta factory discovery paths. Do not infer arbitrary validator/provider compatibility. | Submit both invalid and valid input; inspect the native validation result. | Scope |
| web-security | Web & JSON | Edit an existing Spring Security HTTP rule | conditional | Supported SecurityFilterChain beans rebuild into the live FilterChainProxy. Inline ignoring chains remain; a failed rebuild can keep the previous rules serving. | Verify allowed and denied requests; inspect whether the new rules became live. | Scope |
| kafka | Messaging | Add/edit/remove a Kafka listener | conditional | Plain singleton, direct callback, explicit literal ID, documented topic/group/options and standard record-mode factory. Native consumers retire before replacement. | Verify message delivery, new route and old-consumer retirement. | Scope |
| jms | Messaging | Add/edit/remove a JMS listener | conditional | Plain singleton with standard processor/registry/default container factory. Literal or placeholder destinations/selectors; bounded result and callback shapes. | Verify delivery/selector behavior and complete consumer destruction. | Scope |
| jms-reply | Messaging | Add synchronous JMS replies | conditional | Documented return types and direct @SendTo. JMSReplyTo takes priority; null sends nothing. No arbitrary DTO/Future/reactive return claim. | Check conversion, correlation and destination on a test request. | Scope |
| rabbit | Messaging | Add/edit/remove a Rabbit listener | conditional | Plain receiver, standard simple container, AUTO acknowledgment/default executor and bounded queue/options. Startup worker hook must track complete retirement. | Wait for worker retirement and verify real message delivery. | Scope |
| listener-expression | Messaging | Change a Kafka/Rabbit expression-driven route | conditional | Documented native SpEL values are reevaluated when the listener is saved. Evaluation occurs after old consumers retire and can fail without restoring them. | Save the listener again and check the exact route/group. | Scope |
| property-route | Messaging | Reroute consumers by changing only a routing property/bean | conditional | The documented added Kafka/Rabbit expression path does not automatically reroute on a property/bean-only edit; a listener re-save is the supported live action. | Re-save/compile the listener, or restart for native startup resolution. | Scope |
| consumer-helper | Messaging | Recreate JMS/Kafka consumers after a helper/property save | conditional | Separately measured narrow root-context leaf-owner transactions; exact factories, constructor and callback shapes. Not arbitrary consumer graphs. | Use the constructor ownership guide and check current-value delivery. | Scope |
| rabbit-helper | Messaging | Recreate Rabbit consumers through property/dependency cascades | conditional | Measured on Framework 5.3.39/AMQP 2.4.17 and Framework 6.1.14/AMQP 3.1.7, stock JDK 17/21 on macOS arm64: one root context, plain local helper/leaf owner, one void literal-ID callback, native simple containers, AUTO acknowledgment and nontransacted channels. | Verify current helper/owner values and complete worker retirement; unsupported ownership, stop timeout or partial reconstruction requires restart. | Scope |
| mixed-listener | Messaging | Reload one bean mixing Kafka/JMS/Rabbit consumers | restart | Unsupported mixed ownership is refused before owned consumers retire. Single-broker coordination is not a combined broker transaction. | Separate the ownership shape or restart. | Scope |
| messaging-advanced | Messaging | Assume XA, hosted clusters, rebalances or exactly-once reload | unverified | Local broker observations do not certify every hosted/failure/transactional topology. Rabbit reply/async and broader custom container paths are separate gaps. | Run targeted acceptance for your broker, lifecycle and delivery policy. | Scope |
| boot-properties | Configuration | Edit recognized Boot properties | conditional | Candidate binding/conversion/validation occurs before live mutation. Uncheckable/invalid candidates remain pending; live setter/recreation failure can partially apply. | Fix rejected input, save again and inspect actual runtime values. | Scope |
| boot-yaml | Configuration | Edit nested YAML values or indexed lists | conditional | Already-loaded local Boot resources with stable source/document ownership. Current native lane is Boot 2.7.18 / SnakeYAML 1.30, not all Boot versions. | Edit the actual runtime file and inspect source precedence. | Scope |
| key-removal | Configuration | Delete a key or a recognized Boot file | conditional | Removal reveals lower-priority values/defaults in the supported source path. Mutable property identities are preserved; read-only/write-only removal shapes are uncheckable. | Verify resulting defaults and supported consumer rebinding. | Scope |
| config-topology | Configuration | Change active documents, imports, profiles or config locations | restart | Stable source positions/document activation are prerequisites. Startup config topology is not rebuilt by a value save. | Restart with the new startup configuration. | Scope |
| value | Configuration | Change direct or computed @Value inputs | conditional | Fields, scalar constructor inputs and supported factory arguments have distinct check/recreation paths. Unsupported expression operations hold the candidate. | Check the documented expression/consumer shape before retrying. | Scope |
| xml-property | Configuration | Edit a property on a loaded ordinary XML bean | conditional | Resolved local file/context ownership plus supported value shape. Setter errors can preserve metadata but still have application side effects. | Inspect the property result and independent-bean diagnostics. | Scope |
| xml-recreate | Configuration | Edit existing XML constructor/factory/lifecycle metadata | conditional | Bounded ordinary singleton recreation, stable concrete type/ownership and supported direct holders. Native observer: Spring 5.3.39 / JDK 21. | Check creation/destruction, repaired references and any restore failure. | Scope |
| xml-policy | Configuration | Change XML scope, parent, aliases or creation policy | restart | Existing metadata changes such as depends-on/primary/autowire/effective lazy flag are guarded. Supported property edits do not rebuild startup policy. | Follow the bean-specific restart diagnostic. | Scope |
| xml-unsupported-noop | Configuration | Save unchanged unsupported XML definitions | not-reloaded | A proven unchanged standard definition stays quiet, including known abstract/prototype shapes. Unknown/custom metadata retains conservative diagnostics. | Expect no reconstruction; real unsupported edits still require restart. | Scope |
| xml-resource | Configuration | Edit newly imported, remote or packaged XML | unverified | Captured-local discovery does not cover remote/JAR resources, pre-hook loads or a general import-topology rebuild. | Edit the actually owned local resource or restart. | Scope |
| message | Configuration | Edit recognized physical message bundles | conditional | Named native Spring message-source/cache lanes; arbitrary custom basenames and automatic source-to-output copying are not established. | Edit the runtime file and check a warmed formatted lookup. | Scope |
| template | Configuration | Edit recognized file templates | conditional | Named FreeMarker/Thymeleaf file-resolver lanes. Malformed saves can produce render errors; last-valid retention is not promised. | Render the current output; fix malformed input and retry. | Scope |
| packaged-resource | Configuration | Edit resources inside packaged JAR/WAR files | unverified | Physical-file observers do not establish packaged-resource replacement or arbitrary view-resolver integration. | Use unpacked recognized runtime resources or restart/redeploy. | Scope |
| logging | Configuration | Change a supported logging level/configuration | conditional | Supported logging.level keys or logback/log4j2 config refresh. Removing a level without a fallback can still need reset/restart. | Verify the target logger; keep SAP property pairs separate. | Scope |
| unknown-files | Configuration | Expect arbitrary files to trigger a reload | not-reloaded | ChangeKind recognizes specific suffixes and owned resources. Unknown kinds have no Reclazz reload action; another framework may independently serve the file. | Check the resource classifier and your application’s own resource pipeline. | Scope |
| jpa-existing | Persistence | Add a mapped field to an existing entity | conditional | Requires enhanced visibility plus supported jpaRefresh=true/DDL-enabled mapping path; stock companion fields are not native ORM members. | Prepare schema/mapping prerequisites or restart. | Scope |
| jpa-new | Persistence | Add a new JPA entity with a prepared schema | conditional | jpaRefresh=true, explicit Hibernate validate, one unit and standard provider/factory in the recorded graph. No automatic migration or update-mode switch. | Prepare table/columns, compile and verify native mapping installation. | Scope |
| jpa-retry | Persistence | Retry a new-entity mapping after a schema failure | conditional | Failed candidate leaves the previous factory open before install. Identical bytes are ignored; changing pending mapping declarations is refused. | Fix schema, then compile a body-only edit to the same pending entity. | Scope |
| jpa-active | Persistence | Keep old persistence contexts/transactions through a rebuild | restart | A successful persistence-unit swap retires the old native factory. Holding active old contexts across it is unsupported. | Finish database work first; restart/recover unsupported retained contexts. | Scope |
| repository | Persistence | Edit supported Spring Data query methods | conditional | Warm singleton Repository products and bounded direct holder repair. Scalar H2 native-query evidence does not cover new interface methods/all query shapes. | Check the query result and the retained managed consumer. | Scope |
| cache | Persistence | Invalidate caches dependent on changed helper code | conditional | Observed synchronous Spring cache dependencies in stock companion mode; region-level conservative eviction. Async/unwatched/pre-attach work is not complete. | Exercise the cache first, reload and check next-call freshness. | Scope |
| custom-cache | Persistence | Rebuild a custom cache owner after helper changes | conditional | refreshOwnersOnHelper opt-in for supported singleton owners. Non-singletons, FactoryBeans and event-listener owners are declined. | Name the eligible owner and check lifecycle/state reset. | Scope |
| items | SAP Commerce | Save *-items.xml / *-beans.xml | conditional | Platform generation/build can reload generated classes. Persistence/type-system updates and native reflection are separate requirements. | Verify generated bytecode; update the platform schema when required. | Scope |
| sap-schema | SAP Commerce | Create columns through Update Running System | conditional | Manual HAC action is separate from reload. autoUpdateRunningSystem=true is a distinct off-by-default dev-only DDL opt-in. | Choose the schema action explicitly and verify the type/persistence result. | Scope |
| sap-config | SAP Commerce | Apply changed SAP configuration keys | conditional | Changed keys reach the Config path; successful keys acknowledge independently. Startup-only consumers are still reported as restart-required. | Check each key’s runtime consumer and pending status. | Scope |
| sap-localization | SAP Commerce | Edit type/enum localization or Backoffice labels | conditional | Recognized physical locale/label files refresh the platform caches they serve. Broader tenant/cluster acceptance is not implied. | Check a new lookup or reopen the affected Backoffice view. | Scope |
| impex | SAP Commerce | Import a changed ImpEx file automatically | conditional | autoImpex=true opt-in writes live development data. REMOVE/macro-expanded REMOVE is refused unless separately permitted; no rollback. | Use disposable data; inspect import results and guard diagnostics. | Scope |
| interceptor | SAP Commerce | Refresh supported interceptor mappings | conditional | Mappings are captured before bean refresh and re-registered in the actual SAP registry. SDK contract is not live model-save tenant acceptance. | Check the registry result and a relevant live model operation. | Scope |
| occ | SAP Commerce | Edit OCC field sets, mappings or supported directives | conditional | Dedicated field-set/request-mapping/populator/list-merge paths have individual ownership and registration limits. Not arbitrary platform topology reload. | Read the matching path and verify the actual OCC response. | Scope |
| extension | SAP Commerce | Add an extension to the platform | restart | The extension list is established at startup. Generated-bytecode reload does not enroll a new extension. | Build the platform and restart. | Scope |
| backoffice-config | SAP Commerce | Edit *-backoffice-config.xml | conditional | The source resets supported CockpitConfigurationService caches through Resettable.reset, without resetToDefaults. Packaged module copies can still answer until rebuilt. | Reopen the view and verify the actual loaded configuration; build a packaged copy if needed. | Scope |
| backoffice-socket | SAP Commerce | Add a Backoffice @SocketEvent action | restart | Class replacement does not register the new action in existing widgets. Existing action-body edits use ordinary class reload; label/config caches are separate. | Read the widget-specific PENDING entry and restart to register the added action. | Scope |
| sap-process | SAP Commerce | Edit or delete a registered SAP process definition XML | restart | Recognized local process-definition resources produce a diagnostic only. No running process is changed or replayed; unrelated XML does not become a process resource by name. | Validate the definition and restart to load it. | Scope |
| dependency | Operations | Add a new dependency JAR to the JVM classpath | restart | The running JVM startup classpath is not replaced by watching class outputs. | Restart with the updated launch classpath. | Scope |
| request-boundary | Operations | Avoid a supported request crossing a method-body reload | conditional | reloadBoundary=request at startup, supported native MVC hook/lifetimes. Drain deadline defers; it is not batch/schema/background atomicity. | Check the measured servlet graph and queued-work diagnostics. | Scope |
| build-failure | Operations | Apply class output from a failed/paused build | conditional | Build admission holds output until a successful captured batch; SCAN alone cannot release the hold. Manual pause is an independent switch. | Complete the build, release the correct hold and verify completion. | Scope |
Canonical source
This full page is generated from docs/reload-support.md. Edit the repository source and rebuild; do not edit generated HTML.