private boolean isAction(Method method) {
        String name = method.getName();
        return Modifier.isPublic(method.getModifiers()) && !(
                name.matches("^(equals|hashCode|toString|clone|notify.*|wait|getClass)")           // methods declared in Object
                        || name.matches("^(init|destroy)")                                         // common lifecycle methods
                        || name.matches("^([sg]et(MetaClass|Property)|.*\\$.*|invokeMethod)")      // methods of groovy object
                        || findAnnotation(method, NoMapping.class) != null
        );
    }