Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Can @Method annotation provide more possibilities to control which @Method ultimately takes effect with minimal granularity, including on methods of classes using @DubboService annotation, methods of parent classes, and abstract methods of interfaces #14927

Open
4 tasks done
lanxi0 opened this issue Nov 23, 2024 · 3 comments
Labels
component/need-triage Need maintainers to triage type/need-triage Need maintainers to triage

Comments

@lanxi0
Copy link
Contributor

lanxi0 commented Nov 23, 2024

Pre-check

  • I am sure that all the content I provide is in English.

Search before asking

  • I had searched in the issues and found no similar feature requirement.

Apache Dubbo Component

Java SDK (apache/dubbo)

Descriptions

Can @method annotation provide more possibilities to control which @method ultimately takes effect with minimal granularity, including on methods of classes using @DubboService annotation, methods of parent classes, and abstract methods of interfaces.
And consider adding wildcard characters to match the methods.Or add an annotation for configuration.
for example:

public interface TestGateway {
    Response create(String t);

    @Method(retries = 2, timeout = 1000)
    Response createOther(String t);

    @Method(retries = 2, timeout = 1000)
    Response createTest(String t);
}

@DubboService(interfaceClass = TestGateway.class, version = "1.0.0", group = "public",
        methods = {
                @Method(name = "create*", retries = 5, timeout = ,6000)
        }
)
public class TestGatewayImpl implements TestGateway {

    @Override
    public Response create(String t) {
        return Response.buildSuccess();
    }

    @Override
    public Response createOther(String t) {
        return Response.buildSuccess();
    }
    
    @Override
    @Method(retries = 1, timeout=500))
    public Response createTest(String t) {
        return Response.buildSuccess();
    }
}

In the above example, the retry count for create is 5, with a timeout of 6000 milliseconds. The retry count for create Other is 2, with a timeout of 1000 milliseconds. The retry count for create Test is 1, with a timeout of 500 milliseconds

Related issues

No response

Are you willing to submit a pull request to fix on your own?

  • Yes I am willing to submit a pull request on my own!

Code of Conduct

@lanxi0 lanxi0 added component/need-triage Need maintainers to triage type/need-triage Need maintainers to triage labels Nov 23, 2024
@AlbumenJ
Copy link
Member

Would you like to support it?

@lanxi0
Copy link
Contributor Author

lanxi0 commented Nov 25, 2024

Yes, I'd be happy to help with the development of this feature.
Is there anything I should pay attention to?

@AlbumenJ
Copy link
Member

You can submit PR directly. If there are any problems, we will raise them during the review process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/need-triage Need maintainers to triage type/need-triage Need maintainers to triage
Projects
Status: Todo
Development

No branches or pull requests

2 participants