You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "David Norris (JIRA)" <ji...@apache.org> on 2016/10/03 15:20:20 UTC
[jira] [Commented] (ARIES-1623) FilterHelper OBJECTCLASS_EXPRESSION
excludes inner classes
[ https://issues.apache.org/jira/browse/ARIES-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15542654#comment-15542654 ]
David Norris commented on ARIES-1623:
-------------------------------------
What happens at the class level is easily illustrated:
{code:title=JShell Session|borderStyle=solid}
jshell> class FilterHelper {
...> private static final String OBJECTCLASS_EXPRESSION = ".*\\(" + "objectClass" + "=([^)]+)\\).*";
...> private static final Pattern OBJECTCLASS_PATTERN = Pattern.compile(OBJECTCLASS_EXPRESSION);
...>
...> private FilterHelper() {
...> // prevent instantiation
...> }
...>
...> public static String getObjectClass(String filter) {
...> if (filter != null) {
...> Matcher matcher = OBJECTCLASS_PATTERN.matcher(filter);
...> if (matcher.matches() && matcher.groupCount() >= 1) {
...> return matcher.group(1);
...> }
...> }
...> return null;
...> }
...> }
jshell> FilterHelper.getObjectClass("com.stackleader.training.grpc.helloworld.api.GreeterGrpc$Greeter")
$4 ==> null
{code}
The net result is the topology manager import ignores inner classes because it interprets a null return from the getObjectClass method a signal to exclude the import. Its noteworthy the inner class is exported and visible to the importer. There is no exception, only a silent failure.
If this will be unsupported, an error would be appropriate, but as suggested in the initial description its not clear to me this should be excluded since I can find no exclusion in the specification.
> FilterHelper OBJECTCLASS_EXPRESSION excludes inner classes
> ----------------------------------------------------------
>
> Key: ARIES-1623
> URL: https://issues.apache.org/jira/browse/ARIES-1623
> Project: Aries
> Issue Type: Bug
> Components: Remote Service Admin
> Reporter: David Norris
>
> The existing OBJECTCLASS_EXPRESSION in the FilterHelper class filters out inner classes. Its not clear to me this is a desired behavior since I can find nothing in the remote service admin specification stating it is unacceptable to publish a service using an inner class interface. Many code generation tools choose to nest many classes into a single java file, so I think there are some valid use cases for supporting this if it is not excluded in the specification.
> I have submitted a patch https://github.com/apache/aries-rsa/pull/12 for consideration; however, I realize this is a mirror and someone will likely need to manage its merge to the official repository.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)