jvpp: remove special request<>reply mappings
Since L2FibTable removal
and introduction of dedicated SW Interface Event,
special message handling code can be removed.
The patch also fixes issues
found by Intelij's code inspection tool.
Change-Id: Ic4b2fd12ac30c7627f4cd6769716e4bb52ec0b10
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
diff --git a/src/vpp-api/java/jvpp/gen/jvpp_gen.py b/src/vpp-api/java/jvpp/gen/jvpp_gen.py
index 6648a4f..ca2d262 100755
--- a/src/vpp-api/java/jvpp/gen/jvpp_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvpp_gen.py
@@ -15,7 +15,6 @@
#
import argparse
-import importlib
import sys
import os
import json
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py
index f0aee47..e1c31dd 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/callback_gen.py
@@ -17,8 +17,6 @@
import util
from string import Template
-from util import remove_suffix
-
callback_suffix = "Callback"
callback_template = Template("""
@@ -63,7 +61,7 @@
camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_name_with_suffix):
+ if util.is_control_ping(camel_case_name_with_suffix):
continue
if not util.is_reply(camel_case_name_with_suffix) and not util.is_notification(func['name']):
continue
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py
index e94bbc5..5f2cdc2 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/dto_gen.py
@@ -72,7 +72,7 @@
camel_case_method_name = util.underscore_to_camelcase(func['name'])
dto_path = os.path.join(dto_package, camel_case_dto_name + ".java")
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_dto_name):
+ if util.is_control_ping(camel_case_dto_name):
continue
fields = generate_dto_fields(camel_case_dto_name, func)
@@ -83,7 +83,7 @@
if not util.is_just_notification(func["name"]):
if util.is_reply(camel_case_dto_name):
description = "reply DTO"
- request_dto_name = get_request_name(camel_case_dto_name, func['name'])
+ request_dto_name = util.remove_reply_suffix(camel_case_dto_name)
if util.is_details(camel_case_dto_name):
# FIXME assumption that dump calls end with "Dump" suffix. Not enforced in vpe.api
base_type += "JVppReply<%s.%s.%s>" % (plugin_package, dto_package, request_dto_name + "Dump")
@@ -272,13 +272,6 @@
dump_reply_artificial_dtos = {}
-# Returns request name or special one from unconventional_naming_rep_req map
-def get_request_name(camel_case_dto_name, func_name):
- return util.underscore_to_camelcase_upper(
- util.unconventional_naming_rep_req[func_name]) if func_name in util.unconventional_naming_rep_req \
- else util.remove_reply_suffix(camel_case_dto_name)
-
-
def flush_dump_reply_dtos(inputfile):
for dump_reply_artificial_dto in dump_reply_artificial_dtos.values():
dto_path = os.path.join(dump_reply_artificial_dto['dto_package'],
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py
index cb0d66e..8c8be5b 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jni_gen.py
@@ -27,9 +27,6 @@
(*env)->Set${jni_setter}(env, ${object_name}, ${field_reference_name}FieldId, mp->${c_name});
""")
-variable_length_array_value_template = Template("""mp->${length_var_name}""")
-variable_length_array_template = Template("""clib_net_to_host_${length_field_type}(${value})""")
-
u16_dto_field_setter_template = Template("""
(*env)->Set${jni_setter}(env, ${object_name}, ${field_reference_name}FieldId, clib_net_to_host_u16(mp->${c_name}));
""")
@@ -185,10 +182,6 @@
u64_struct_setter_template = Template("""
mp->${c_name} = clib_host_to_net_u64(${field_reference_name});""")
-array_length_enforcement_template = Template("""
- size_t max_size = ${field_length};
- if (cnt > max_size) cnt = max_size;""")
-
u8_array_struct_setter_template = Template("""
if (${field_reference_name}) {
jsize cnt = (*env)->GetArrayLength (env, ${field_reference_name});
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py
index e2f6aa4..e67b6ec 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_c_gen.py
@@ -14,13 +14,13 @@
# limitations under the License.
#
-import os, util
+import util
from string import Template
import jni_gen
-def is_manually_generated(f_name, plugin_name):
+def is_manually_generated(f_name):
return f_name in {'control_ping_reply'}
@@ -67,7 +67,7 @@
class_name = util.underscore_to_camelcase_upper(c_name)
ref_name = util.underscore_to_camelcase(c_name)
- if util.is_ignored(c_name) or util.is_control_ping(class_name):
+ if util.is_control_ping(class_name):
continue
class_references.append(class_reference_template.substitute(
@@ -144,8 +144,8 @@
for f in func_list:
f_name = f['name']
camel_case_function_name = util.underscore_to_camelcase(f_name)
- if is_manually_generated(f_name, plugin_name) or util.is_reply(camel_case_function_name) \
- or util.is_ignored(f_name) or util.is_just_notification(f_name):
+ if is_manually_generated(f_name) or util.is_reply(camel_case_function_name) \
+ or util.is_just_notification(f_name):
continue
arguments = ''
@@ -254,7 +254,7 @@
dto_name = util.underscore_to_camelcase_upper(handler_name)
ref_name = util.underscore_to_camelcase(handler_name)
- if is_manually_generated(handler_name, plugin_name) or util.is_ignored(handler_name):
+ if is_manually_generated(handler_name):
continue
if not util.is_reply(dto_name) and not util.is_notification(handler_name):
@@ -308,7 +308,7 @@
name = f['name']
camelcase_name = util.underscore_to_camelcase(f['name'])
- if (not util.is_reply(camelcase_name) and not util.is_notification(name)) or util.is_ignored(name) \
+ if (not util.is_reply(camelcase_name) and not util.is_notification(name)) \
or util.is_control_ping(camelcase_name):
continue
@@ -328,9 +328,6 @@
for f in func_list:
name = f['name']
- if util.is_ignored(name):
- continue
-
api_verification.append(api_verification_template.substitute(
name=name,
crc=f['crc']))
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py
index 53e9f49..f265987 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_callback_facade_gen.py
@@ -17,7 +17,6 @@
from string import Template
import callback_gen
-import dto_gen
jvpp_ifc_template = Template("""
package $plugin_package.$callback_facade_package;
@@ -112,7 +111,7 @@
methods_impl = []
for func in func_list:
- if util.is_notification(func['name']) or util.is_ignored(func['name']):
+ if util.is_notification(func['name']):
continue
camel_case_name = util.underscore_to_camelcase(func['name'])
@@ -121,10 +120,10 @@
continue
# Strip suffix for dump calls
- callback_type = get_request_name(camel_case_name_upper, func['name'])
- if (util.is_dump(camel_case_name_upper)):
+ callback_type = get_request_name(camel_case_name_upper)
+ if util.is_dump(camel_case_name_upper):
callback_type += "Details"
- elif (not util.is_notification(camel_case_name_upper)):
+ elif not util.is_notification(camel_case_name_upper):
callback_type += "Reply"
callback_type += callback_gen.callback_suffix
@@ -282,7 +281,7 @@
camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_name_with_suffix):
+ if util.is_control_ping(camel_case_name_with_suffix):
continue
if util.is_reply(camel_case_name_with_suffix):
@@ -314,18 +313,9 @@
jvpp_file.close()
-# Returns request name or special one from unconventional_naming_rep_req map
-def get_request_name(camel_case_dto_name, func_name):
- if func_name in reverse_dict(util.unconventional_naming_rep_req):
- request_name = util.underscore_to_camelcase_upper(reverse_dict(util.unconventional_naming_rep_req)[func_name])
- else:
- request_name = camel_case_dto_name
- return remove_suffix(request_name)
-
-
-def reverse_dict(map):
- return dict((v, k) for k, v in map.iteritems())
-
+# Returns request name
+def get_request_name(camel_case_dto_name):
+ return remove_suffix(camel_case_dto_name)
def remove_suffix(name):
if util.is_reply(name):
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py
index a45a532..e1bb43b 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_future_facade_gen.py
@@ -169,7 +169,7 @@
for func in func_list:
camel_case_name_with_suffix = util.underscore_to_camelcase_upper(func['name'])
- if util.is_ignored(func['name']) or util.is_control_ping(camel_case_name_with_suffix):
+ if util.is_control_ping(camel_case_name_with_suffix):
continue
if not util.is_reply(camel_case_name_with_suffix) and not util.is_notification(func['name']):
@@ -181,8 +181,7 @@
camel_case_request_method_name = util.remove_reply_suffix(util.underscore_to_camelcase(func['name']))
request_dto = util.remove_reply_suffix(util.underscore_to_camelcase_upper(func['name']))
if util.is_details(camel_case_name_with_suffix):
- camel_case_reply_name = get_standard_dump_reply_name(util.underscore_to_camelcase_upper(func['name']),
- func['name'])
+ camel_case_reply_name = util.underscore_to_camelcase_upper(func['name'])
callbacks.append(jvpp_facade_details_callback_method_template.substitute(base_package=base_package,
plugin_package=plugin_package,
dto_package=dto_package,
@@ -206,8 +205,7 @@
request_name=util.remove_reply_suffix(camel_case_reply_name) +
util.underscore_to_camelcase_upper(util.dump_suffix)))
else:
- request_name = util.underscore_to_camelcase_upper(util.unconventional_naming_rep_req[func['name']]) \
- if func['name'] in util.unconventional_naming_rep_req else util.remove_reply_suffix(camel_case_name_with_suffix)
+ request_name = util.remove_reply_suffix(camel_case_name_with_suffix)
methods.append(future_jvpp_method_template.substitute(plugin_package=plugin_package,
dto_package=dto_package,
@@ -339,19 +337,3 @@
return send(request, new $plugin_package.$dto_package.$reply_name());
}
''')
-
-
-# Returns request name or special one from unconventional_naming_rep_req map
-def get_standard_dump_reply_name(camel_case_dto_name, func_name):
- # FIXME this is a hotfix for sub-details callbacks
- # FIXME also for L2FibTableEntry
- # It's all because unclear mapping between
- # request -> reply,
- # dump -> reply, details,
- # notification_start -> reply, notifications
-
- # vpe.api needs to be "standardized" so we can parse the information and create maps before generating java code
- suffix = func_name.split("_")[-1]
- return util.underscore_to_camelcase_upper(
- util.unconventional_naming_rep_req[func_name]) + util.underscore_to_camelcase_upper(suffix) if func_name in util.unconventional_naming_rep_req \
- else camel_case_dto_name
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py
index f802ee2..c2b8ebb 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/jvpp_impl_gen.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import os, util
+import util
from string import Template
jvpp_ifc_template = Template("""
@@ -173,11 +173,6 @@
methods = []
methods_impl = []
for func in func_list:
-
- # Skip structures that are used only as notifications
- if util.is_ignored(func['name']):
- continue
-
camel_case_name = util.underscore_to_camelcase(func['name'])
camel_case_name_upper = util.underscore_to_camelcase_upper(func['name'])
if util.is_reply(camel_case_name):
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py
index 9611119..6da58c2 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/notification_gen.py
@@ -178,7 +178,7 @@
callback_file = open(os.path.join(notification_package, "Global%sEventCallback.java" % plugin_name), 'w')
global_notification_callback_callbacks = ""
- if (callbacks):
+ if callbacks:
global_notification_callback_callbacks = " extends " + ", ".join(callbacks)
callback_file.write(global_notification_callback_template.substitute(inputfile=inputfile,
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/util.py b/src/vpp-api/java/jvpp/gen/jvppgen/util.py
index 4864524..6c2ffbc 100644
--- a/src/vpp-api/java/jvpp/gen/jvppgen/util.py
+++ b/src/vpp-api/java/jvpp/gen/jvppgen/util.py
@@ -35,16 +35,15 @@
removedirs(folder)
-reply_suffixes = ("reply", "details", "l2fibtableentry")
+reply_suffixes = ("reply", "details")
def is_reply(name):
return name.lower().endswith(reply_suffixes)
-details_suffix = "details"
def is_details(name):
- return name.lower().endswith(reply_suffixes[1]) or name.lower().endswith(reply_suffixes[2])
+ return name.lower().endswith(reply_suffixes[1])
def is_retval_field(name):
@@ -60,11 +59,7 @@
def get_reply_suffix(name):
for reply_suffix in reply_suffixes:
if name.lower().endswith(reply_suffix):
- if reply_suffix == reply_suffixes[2]:
- # FIXME workaround for l2_fib_table_entry
- return 'entry'
- else:
- return reply_suffix
+ return reply_suffix
# Mapping according to:
# http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html
@@ -94,7 +89,7 @@
vpp_2_jni_type_mapping = {'u8': 'jbyte',
'u8[]': 'jbyteArray',
'i8': 'jbyte',
- 'u8[]': 'jbyteArray',
+ 'i8[]': 'jbyteArray',
'u16': 'jshort',
'u16[]': 'jshortArray',
'i16': 'jshort',
@@ -153,21 +148,9 @@
'f64[]': 'ObjectField'
}
-
-# vpe.api calls that do not follow naming conventions and have to be handled exceptionally when finding reply -> request mapping
-# FIXME in vpe.api
-unconventional_naming_rep_req = {
- }
-
-#
# FIXME no convention in the naming of events (notifications) in vpe.api
notifications_message_suffixes = ("event", "counters")
-# messages that must be ignored. These messages are INSUFFICIENTLY marked as disabled in vpe.api
-# FIXME
-ignored_messages = []
-
-
def is_notification(name):
""" Returns true if the structure is a notification regardless of its no other use """
return is_just_notification(name)
@@ -178,10 +161,6 @@
return name.lower().endswith(notifications_message_suffixes)
-def is_ignored(param):
- return param.lower() in ignored_messages
-
-
def remove_reply_suffix(camel_case_name_with_suffix):
return remove_suffix(camel_case_name_with_suffix, get_reply_suffix(camel_case_name_with_suffix))
@@ -194,7 +173,7 @@
def is_control_ping(camel_case_name_with_suffix):
- return camel_case_name_with_suffix.lower().startswith("controlping");
+ return camel_case_name_with_suffix.lower().startswith("controlping")
def api_message_to_javadoc(api_message):