jodd-madvoc/src/main/java/jodd/madvoc/proxetta/ProxettaAwareActionsManager.java
@Override
	public synchronized ActionRuntime registerAction(Class actionClass, final Method actionMethod, ActionDefinition actionDefinition) {
		if (proxettaSupplier == null) {
			return super.registerAction(actionClass, actionMethod, actionDefinition);
		}

		if (actionDefinition == null) {
			actionDefinition = actionMethodParser.parseActionDefinition(actionClass, actionMethod);
		}

		// create proxy for action class if not already created

		Class existing = proxyActionClasses.get(actionClass);

		if (existing == null) {
			final Proxetta proxetta = proxettaSupplier.get();

			existing = proxetta.proxy().setTarget(actionClass).define();

			proxyActionClasses.put(actionClass, existing);
		}

		actionClass = existing;

		return super.registerAction(actionClass, actionMethod, actionDefinition);
	}
@Override
	public synchronized ActionRuntime registerAction(Class actionClass, final Method actionMethod, ActionDefinition actionDefinition) {
		if (proxettaSupplier == null) {
			return super.registerAction(actionClass, actionMethod, actionDefinition);
		}

		if (actionDefinition == null) {
			actionDefinition = actionMethodParser.parseActionDefinition(actionClass, actionMethod);
		}

		// create proxy for action class if not already created

		Class existing = proxyActionClasses.get(actionClass);

		if (existing == null) {
			final Proxetta proxetta = proxettaSupplier.get();

			existing = proxetta.proxy().setTarget(actionClass).define();

			proxyActionClasses.put(actionClass, existing);
		}

		actionClass = existing;

		return super.registerAction(actionClass, actionMethod, actionDefinition);
	}
Registers actions and applies proxetta on actions that are not already registered.
We need to define {@link ActionDefinition} before we apply the proxy, using
target action class.