Package org.pjdbc.sql
Class PjdbcListeners
java.lang.Object
org.pjdbc.sql.PjdbcListeners
Central registry for PJDBC event listeners.
Listeners can be registered programmatically or via ServiceLoader. All registered listeners will receive callbacks from PJDBC drivers.
Example usage:
// Programmatic registration
PjdbcListeners.register(new MyEventListener());
// ServiceLoader (create META-INF/services/org.pjdbc.sql.PjdbcEventListener)
// containing fully qualified class names, one per line
Thread Safety: This class is thread-safe. Listeners are stored in a CopyOnWriteArrayList to allow safe iteration during notification while still permitting registration/unregistration.
- Since:
- 2.2.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidclear()Clear all registered listeners.static voidfireChaosInjected(String type, String sql, String details) Notify listeners of chaos injection.static voidfireCircuitBreakerRejection(String name, String state) Notify listeners of a circuit breaker rejection.static voidfireCircuitBreakerStateChange(String name, String oldState, String newState) Notify listeners of a circuit breaker state change.static voidfireFederatedQuery(String sql, List<String> targetUrls) Notify listeners of a federated query.static voidfireRetry(String sql, SQLException cause, int attempt, long delayMs) Notify listeners of a retry event.static voidfireSqlTransformed(String original, String transformed) Notify listeners of SQL transformation.static intGet the number of registered listeners.static voidLoad listeners from ServiceLoader.static voidregister(PjdbcEventListener listener) Register a listener to receive PJDBC events.static booleanunregister(PjdbcEventListener listener) Unregister a previously registered listener.
-
Method Details
-
register
Register a listener to receive PJDBC events.- Parameters:
listener- the listener to register
-
unregister
Unregister a previously registered listener.- Parameters:
listener- the listener to unregister- Returns:
- true if the listener was found and removed
-
clear
public static void clear()Clear all registered listeners. Useful for testing. -
loadFromServiceLoader
public static void loadFromServiceLoader()Load listeners from ServiceLoader. Called automatically on first notification, but can be called explicitly. -
listenerCount
public static int listenerCount()Get the number of registered listeners.- Returns:
- the listener count
-
fireRetry
Notify listeners of a retry event. -
fireCircuitBreakerStateChange
Notify listeners of a circuit breaker state change. -
fireSqlTransformed
Notify listeners of SQL transformation. -
fireFederatedQuery
Notify listeners of a federated query. -
fireCircuitBreakerRejection
Notify listeners of a circuit breaker rejection. -
fireChaosInjected
Notify listeners of chaos injection.
-