From 537042d7f0b0987165c7bfa300232f11626e4b9c Mon Sep 17 00:00:00 2001 From: Marc Bernard Date: Tue, 29 Jul 2025 20:29:48 +0000 Subject: [PATCH 1/8] Switch to /apmg/ namespace --- src/#apmg#.nspc.xml | 16 + ...s.abap => #apmg#cl_package_json.clas.abap} | 274 +++++++++--------- ...pmg#cl_package_json.clas.testclasses.abap} | 72 ++--- src/#apmg#cl_package_json.clas.xml | 17 ++ ... => #apmg#cl_package_json_valid.clas.abap} | 84 +++--- ...l_package_json_valid.clas.locals_imp.abap} | 60 ++-- ...l_package_json_valid.clas.testclasses.abap | 51 ++++ src/#apmg#cl_package_json_valid.clas.xml | 17 ++ ...f.abap => #apmg#if_package_json.intf.abap} | 30 +- src/#apmg#if_package_json.intf.xml | 15 + ...l_package_json_valid.clas.testclasses.abap | 51 ---- 11 files changed, 370 insertions(+), 317 deletions(-) create mode 100644 src/#apmg#.nspc.xml rename src/{zcl_package_json.clas.abap => #apmg#cl_package_json.clas.abap} (79%) rename src/{zcl_package_json.clas.testclasses.abap => #apmg#cl_package_json.clas.testclasses.abap} (88%) create mode 100644 src/#apmg#cl_package_json.clas.xml rename src/{zcl_package_json_valid.clas.abap => #apmg#cl_package_json_valid.clas.abap} (76%) rename src/{zcl_package_json_valid.clas.locals_imp.abap => #apmg#cl_package_json_valid.clas.locals_imp.abap} (75%) create mode 100644 src/#apmg#cl_package_json_valid.clas.testclasses.abap create mode 100644 src/#apmg#cl_package_json_valid.clas.xml rename src/{zif_package_json.intf.abap => #apmg#if_package_json.intf.abap} (79%) create mode 100644 src/#apmg#if_package_json.intf.xml delete mode 100644 src/zcl_package_json_valid.clas.testclasses.abap diff --git a/src/#apmg#.nspc.xml b/src/#apmg#.nspc.xml new file mode 100644 index 0000000..5ecb4d0 --- /dev/null +++ b/src/#apmg#.nspc.xml @@ -0,0 +1,16 @@ + + + + + + /APMG/ + 41813564412598342476 + + + E + apm + apm.to Inc. + + + + diff --git a/src/zcl_package_json.clas.abap b/src/#apmg#cl_package_json.clas.abap similarity index 79% rename from src/zcl_package_json.clas.abap rename to src/#apmg#cl_package_json.clas.abap index c8f85cb..28c9f3d 100644 --- a/src/zcl_package_json.clas.abap +++ b/src/#apmg#cl_package_json.clas.abap @@ -1,4 +1,4 @@ -CLASS zcl_package_json DEFINITION +CLASS /apmg/cl_package_json DEFINITION PUBLIC FINAL CREATE PRIVATE. @@ -11,7 +11,9 @@ CLASS zcl_package_json DEFINITION ************************************************************************ PUBLIC SECTION. - INTERFACES zif_package_json. + INTERFACES: + /apmg/if_types, + /apmg/if_package_json. CLASS-METHODS class_constructor. @@ -22,14 +24,14 @@ CLASS zcl_package_json DEFINITION !version TYPE string OPTIONAL !private TYPE abap_bool DEFAULT abap_false RETURNING - VALUE(result) TYPE REF TO zif_package_json + VALUE(result) TYPE REF TO /apmg/if_package_json RAISING - zcx_error. + /apmg/cx_error. CLASS-METHODS injector IMPORTING !package TYPE devclass - !mock TYPE REF TO zif_package_json. + !mock TYPE REF TO /apmg/if_package_json. METHODS constructor IMPORTING @@ -38,7 +40,7 @@ CLASS zcl_package_json DEFINITION !version TYPE string OPTIONAL !private TYPE abap_bool DEFAULT abap_false RAISING - zcx_error. + /apmg/cx_error. CLASS-METHODS list IMPORTING @@ -46,17 +48,17 @@ CLASS zcl_package_json DEFINITION !instanciate TYPE abap_bool DEFAULT abap_false !is_bundle TYPE abap_bool DEFAULT abap_undefined RETURNING - VALUE(result) TYPE zif_package_json=>ty_packages. + VALUE(result) TYPE /apmg/if_package_json=>ty_packages. CLASS-METHODS get_package_key IMPORTING !package TYPE devclass RETURNING - VALUE(result) TYPE zif_persist_apm=>ty_key. + VALUE(result) TYPE /apmg/if_persist_apm=>ty_key. CLASS-METHODS get_package_from_key IMPORTING - !key TYPE zif_persist_apm=>ty_key + !key TYPE /apmg/if_persist_apm=>ty_key RETURNING VALUE(result) TYPE devclass. @@ -64,27 +66,27 @@ CLASS zcl_package_json DEFINITION IMPORTING !json TYPE string RETURNING - VALUE(result) TYPE zif_types=>ty_manifest + VALUE(result) TYPE /apmg/if_types=>ty_manifest RAISING - zcx_error. + /apmg/cx_error. CLASS-METHODS convert_json_to_manifest_abbr IMPORTING !json TYPE string RETURNING - VALUE(result) TYPE zif_types=>ty_manifest_abbreviated + VALUE(result) TYPE /apmg/if_types=>ty_manifest_abbreviated RAISING - zcx_error. + /apmg/cx_error. CLASS-METHODS convert_manifest_to_json IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest !is_package_json TYPE abap_bool DEFAULT abap_false !is_complete TYPE abap_bool DEFAULT abap_false RETURNING VALUE(result) TYPE string RAISING - zcx_error. + /apmg/cx_error. PROTECTED SECTION. PRIVATE SECTION. @@ -92,32 +94,32 @@ CLASS zcl_package_json DEFINITION TYPES: BEGIN OF ty_instance, package TYPE devclass, - instance TYPE REF TO zif_package_json, + instance TYPE REF TO /apmg/if_package_json, END OF ty_instance, ty_instances TYPE HASHED TABLE OF ty_instance WITH UNIQUE KEY package. TYPES ty_package_list TYPE STANDARD TABLE OF devclass WITH KEY table_line. CLASS-DATA: - db_persist TYPE REF TO zif_persist_apm, + db_persist TYPE REF TO /apmg/if_persist_apm, instances TYPE ty_instances. DATA: - key TYPE zif_persist_apm=>ty_key, + key TYPE /apmg/if_persist_apm=>ty_key, package TYPE devclass, - manifest TYPE zif_types=>ty_manifest. + manifest TYPE /apmg/if_types=>ty_manifest. CLASS-METHODS check_manifest IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RAISING - zcx_error. + /apmg/cx_error. CLASS-METHODS sort_manifest IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RETURNING - VALUE(result) TYPE zif_types=>ty_manifest. + VALUE(result) TYPE /apmg/if_types=>ty_manifest. CLASS-METHODS replace_slash IMPORTING @@ -135,15 +137,98 @@ ENDCLASS. -CLASS zcl_package_json IMPLEMENTATION. +CLASS /apmg/cl_package_json IMPLEMENTATION. + + + METHOD /apmg/if_package_json~delete. + + db_persist->delete( key ). + + ENDMETHOD. + + + METHOD /apmg/if_package_json~exists. + + TRY. + db_persist->load( key ). + result = abap_true. + CATCH /apmg/cx_error. + result = abap_false. + ENDTRY. + + ENDMETHOD. + + + METHOD /apmg/if_package_json~get. + + result = CORRESPONDING #( manifest ). + + ENDMETHOD. + + + METHOD /apmg/if_package_json~get_json. + + result = convert_manifest_to_json( + manifest = manifest + is_package_json = abap_true + is_complete = is_complete ). + + ENDMETHOD. + + + METHOD /apmg/if_package_json~is_valid. + + TRY. + result = xsdbool( /apmg/cl_package_json_valid=>check( manifest ) IS INITIAL ). + CATCH /apmg/cx_error. + result = abap_false. + ENDTRY. + + ENDMETHOD. + + + METHOD /apmg/if_package_json~load. + + /apmg/if_package_json~set_json( db_persist->load( key )-value ). + result = me. + + ENDMETHOD. + + + METHOD /apmg/if_package_json~save. + + check_manifest( manifest ). + db_persist->save( + key = key + value = /apmg/if_package_json~get_json( ) ). + + ENDMETHOD. + + + METHOD /apmg/if_package_json~set. + + manifest = CORRESPONDING #( package_json ). + check_manifest( manifest ). + manifest = sort_manifest( manifest ). + result = me. + + ENDMETHOD. + + + METHOD /apmg/if_package_json~set_json. + + manifest = convert_json_to_manifest( json ). + result = me. + + ENDMETHOD. METHOD check_manifest. - DATA(issues) = zcl_package_json_valid=>check( manifest ). + DATA(issues) = /apmg/cl_package_json_valid=>check( manifest ). IF issues IS NOT INITIAL. - RAISE EXCEPTION TYPE zcx_error_text + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = |Invalid package json:\n{ concat_lines_of( table = issues sep = |\n| ) }|. ENDIF. @@ -153,15 +238,15 @@ CLASS zcl_package_json IMPLEMENTATION. METHOD class_constructor. - db_persist = zcl_persist_apm=>get_instance( ). + db_persist = /apmg/cl_persist_apm=>get_instance( ). ENDMETHOD. METHOD constructor. - IF zcl_package_json_valid=>is_valid_sap_package( package ) = abap_false. - RAISE EXCEPTION TYPE zcx_error_text + IF /apmg/cl_package_json_valid=>is_valid_sap_package( package ) = abap_false. + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = |Invalid package: { package }|. ENDIF. @@ -174,8 +259,8 @@ CLASS zcl_package_json IMPLEMENTATION. key = get_package_key( package ). TRY. - zif_package_json~load( ). - CATCH zcx_error ##NO_HANDLER. + /apmg/if_package_json~load( ). + CATCH /apmg/cx_error ##NO_HANDLER. ENDTRY. ENDMETHOD. @@ -196,31 +281,31 @@ CLASS zcl_package_json IMPLEMENTATION. homepage TYPE string, icon TYPE string, BEGIN OF bugs, - url TYPE zif_types=>ty_uri, - email TYPE zif_types=>ty_email, + url TYPE /apmg/if_types=>ty_uri, + email TYPE /apmg/if_types=>ty_email, END OF bugs, license TYPE string, - author TYPE zif_types=>ty_person, - contributors TYPE STANDARD TABLE OF zif_types=>ty_person WITH KEY name, - maintainers TYPE STANDARD TABLE OF zif_types=>ty_person WITH KEY name, + author TYPE /apmg/if_types=>ty_person, + contributors TYPE STANDARD TABLE OF /apmg/if_types=>ty_person WITH KEY name, + maintainers TYPE STANDARD TABLE OF /apmg/if_types=>ty_person WITH KEY name, main TYPE string, man TYPE string_table, type TYPE string, BEGIN OF repository, type TYPE string, - url TYPE zif_types=>ty_uri, + url TYPE /apmg/if_types=>ty_uri, directory TYPE string, END OF repository, BEGIN OF funding, type TYPE string, - url TYPE zif_types=>ty_uri, + url TYPE /apmg/if_types=>ty_uri, END OF funding, os TYPE string_table, cpu TYPE string_table, db TYPE string_table, private TYPE abap_bool, deprecated TYPE abap_bool, - dist TYPE zif_types=>ty_dist, + dist TYPE /apmg/if_types=>ty_dist, readme TYPE string, _id TYPE string, _abap_version TYPE string, @@ -229,16 +314,16 @@ CLASS zcl_package_json IMPLEMENTATION. DATA: manifest_partial TYPE ty_manifest_partial, - dependency TYPE zif_types=>ty_dependency. + dependency TYPE /apmg/if_types=>ty_dependency. TRY. DATA(ajson) = zcl_ajson=>parse( json )->to_abap_corresponding_only( - )->map( zcl_ajson_extensions=>from_camel_case_underscore( ) ). + )->map( /apmg/cl_ajson_extensions=>from_camel_case_underscore( ) ). ajson->to_abap( IMPORTING ev_container = manifest_partial ). - DATA(manifest) = CORRESPONDING zif_types=>ty_manifest( manifest_partial ). + DATA(manifest) = CORRESPONDING /apmg/if_types=>ty_manifest( manifest_partial ). " Transpose dependencies LOOP AT ajson->members( '/dependencies' ) INTO dependency-key. @@ -272,7 +357,7 @@ CLASS zcl_package_json IMPLEMENTATION. result = sort_manifest( manifest ). CATCH zcx_ajson_error INTO DATA(error). - RAISE EXCEPTION TYPE zcx_error_prev EXPORTING previous = error. + RAISE EXCEPTION TYPE /apmg/cx_error_prev EXPORTING previous = error. ENDTRY. ENDMETHOD. @@ -296,7 +381,7 @@ CLASS zcl_package_json IMPLEMENTATION. )->set( iv_path = '/' iv_val = manifest - )->map( zcl_ajson_extensions=>to_camel_case_underscore( ) ). + )->map( /apmg/cl_ajson_extensions=>to_camel_case_underscore( ) ). " Transpose dependencies ajson->setx( '/dependencies:{ }' ). @@ -335,7 +420,7 @@ CLASS zcl_package_json IMPLEMENTATION. ENDLOOP. IF is_complete = abap_false. - ajson = ajson->filter( zcl_ajson_extensions=>filter_empty_zero_null( ) ). + ajson = ajson->filter( /apmg/cl_ajson_extensions=>filter_empty_zero_null( ) ). IF manifest-private = abap_false. INSERT `/private` INTO TABLE skip_paths. ENDIF. @@ -362,7 +447,7 @@ CLASS zcl_package_json IMPLEMENTATION. result = ajson->stringify( 2 ). CATCH zcx_ajson_error INTO DATA(error). - RAISE EXCEPTION TYPE zcx_error_prev EXPORTING previous = error. + RAISE EXCEPTION TYPE /apmg/cx_error_prev EXPORTING previous = error. ENDTRY. ENDMETHOD. @@ -375,7 +460,7 @@ CLASS zcl_package_json IMPLEMENTATION. IF sy-subrc = 0. result = -instance. ELSE. - result = NEW zcl_package_json( + result = NEW /apmg/cl_package_json( package = package name = name version = version @@ -400,8 +485,8 @@ CLASS zcl_package_json IMPLEMENTATION. METHOD get_package_key. - result = |{ zif_persist_apm=>c_key_type-package }:{ package }:| - && |{ zif_persist_apm=>c_key_extra-package_json }|. + result = |{ /apmg/if_persist_apm=>c_key_type-package }:{ package }:| + && |{ /apmg/if_persist_apm=>c_key_extra-package_json }|. ENDMETHOD. @@ -438,8 +523,8 @@ CLASS zcl_package_json IMPLEMENTATION. METHOD list. - DATA(list) = db_persist->list( zif_persist_apm=>c_key_type-package && |:{ filter }%:| - && zif_persist_apm=>c_key_extra-package_json ). + DATA(list) = db_persist->list( /apmg/if_persist_apm=>c_key_type-package && |:{ filter }%:| + && /apmg/if_persist_apm=>c_key_extra-package_json ). LOOP AT list ASSIGNING FIELD-SYMBOL(). CONVERT TIME STAMP -timestamp @@ -449,7 +534,7 @@ CLASS zcl_package_json IMPLEMENTATION. DATA(changed_at) = |{ date DATE = ISO } { time TIME = ISO }|. - DATA(result_item) = VALUE zif_package_json=>ty_package( + DATA(result_item) = VALUE /apmg/if_package_json=>ty_package( key = -keys package = get_package_from_key( -keys ) changed_by = -user @@ -465,7 +550,7 @@ CLASS zcl_package_json IMPLEMENTATION. result_item-description = package_json-description. result_item-type = package_json-type. result_item-private = package_json-private. - CATCH zcx_error ##NO_HANDLER. + CATCH /apmg/cx_error ##NO_HANDLER. ENDTRY. ENDIF. @@ -527,87 +612,4 @@ CLASS zcl_package_json IMPLEMENTATION. result-db. ENDMETHOD. - - - METHOD zif_package_json~delete. - - db_persist->delete( key ). - - ENDMETHOD. - - - METHOD zif_package_json~exists. - - TRY. - db_persist->load( key ). - result = abap_true. - CATCH zcx_error. - result = abap_false. - ENDTRY. - - ENDMETHOD. - - - METHOD zif_package_json~get. - - result = CORRESPONDING #( manifest ). - - ENDMETHOD. - - - METHOD zif_package_json~get_json. - - result = convert_manifest_to_json( - manifest = manifest - is_package_json = abap_true - is_complete = is_complete ). - - ENDMETHOD. - - - METHOD zif_package_json~is_valid. - - TRY. - result = xsdbool( zcl_package_json_valid=>check( manifest ) IS INITIAL ). - CATCH zcx_error. - result = abap_false. - ENDTRY. - - ENDMETHOD. - - - METHOD zif_package_json~load. - - zif_package_json~set_json( db_persist->load( key )-value ). - result = me. - - ENDMETHOD. - - - METHOD zif_package_json~save. - - check_manifest( manifest ). - db_persist->save( - key = key - value = zif_package_json~get_json( ) ). - - ENDMETHOD. - - - METHOD zif_package_json~set. - - manifest = CORRESPONDING #( package_json ). - check_manifest( manifest ). - manifest = sort_manifest( manifest ). - result = me. - - ENDMETHOD. - - - METHOD zif_package_json~set_json. - - manifest = convert_json_to_manifest( json ). - result = me. - - ENDMETHOD. ENDCLASS. diff --git a/src/zcl_package_json.clas.testclasses.abap b/src/#apmg#cl_package_json.clas.testclasses.abap similarity index 88% rename from src/zcl_package_json.clas.testclasses.abap rename to src/#apmg#cl_package_json.clas.testclasses.abap index 10dccda..e34d380 100644 --- a/src/zcl_package_json.clas.testclasses.abap +++ b/src/#apmg#cl_package_json.clas.testclasses.abap @@ -4,10 +4,10 @@ CLASS ltcl_package_json DEFINITION FOR TESTING RISK LEVEL HARMLESS PRIVATE SECTION. DATA: - cut TYPE REF TO zif_package_json, - test_package_json TYPE zif_types=>ty_package_json, - test_manifest TYPE zif_types=>ty_manifest, - test_manifest_abbreviated TYPE zif_types=>ty_manifest_abbreviated, + cut TYPE REF TO /apmg/if_package_json, + test_package_json TYPE /apmg/if_types=>ty_package_json, + test_manifest TYPE /apmg/if_types=>ty_manifest, + test_manifest_abbreviated TYPE /apmg/if_types=>ty_manifest_abbreviated, test_json TYPE string, test_json_full TYPE string, test_json_abbreviated TYPE string. @@ -24,7 +24,7 @@ CLASS ltcl_package_json DEFINITION FOR TESTING RISK LEVEL HARMLESS IMPORTING args TYPE string RAISING - zcx_error. + /apmg/cx_error. METHODS test_valid IMPORTING @@ -36,31 +36,31 @@ CLASS ltcl_package_json DEFINITION FOR TESTING RISK LEVEL HARMLESS METHODS test_compare IMPORTING - package_json TYPE zif_types=>ty_package_json + package_json TYPE /apmg/if_types=>ty_package_json json_data TYPE string RAISING - zcx_error. + /apmg/cx_error. METHODS: valid_packages FOR TESTING, invalid_packages FOR TESTING, - get_package FOR TESTING RAISING zcx_error, - set_package FOR TESTING RAISING zcx_error, - get_persons FOR TESTING RAISING zcx_error, - set_persons FOR TESTING RAISING zcx_error, - dependencies_json_to_abap FOR TESTING RAISING zcx_error, - dependencies_abap_to_json FOR TESTING RAISING zcx_error, - get_complete FOR TESTING RAISING zcx_error, - set_complete FOR TESTING RAISING zcx_error, - convert_json_to_manifest FOR TESTING RAISING zcx_error, - convert_json_to_manifest_abbr FOR TESTING RAISING zcx_error, - convert_manifest_to_json FOR TESTING RAISING zcx_error, - convert_manifest_abbr_to_json FOR TESTING RAISING zcx_error, - convert_manifest_to_pack_json FOR TESTING RAISING zcx_error. + get_package FOR TESTING RAISING /apmg/cx_error, + set_package FOR TESTING RAISING /apmg/cx_error, + get_persons FOR TESTING RAISING /apmg/cx_error, + set_persons FOR TESTING RAISING /apmg/cx_error, + dependencies_json_to_abap FOR TESTING RAISING /apmg/cx_error, + dependencies_abap_to_json FOR TESTING RAISING /apmg/cx_error, + get_complete FOR TESTING RAISING /apmg/cx_error, + set_complete FOR TESTING RAISING /apmg/cx_error, + convert_json_to_manifest FOR TESTING RAISING /apmg/cx_error, + convert_json_to_manifest_abbr FOR TESTING RAISING /apmg/cx_error, + convert_manifest_to_json FOR TESTING RAISING /apmg/cx_error, + convert_manifest_abbr_to_json FOR TESTING RAISING /apmg/cx_error, + convert_manifest_to_pack_json FOR TESTING RAISING /apmg/cx_error. ENDCLASS. -CLASS zcl_package_json DEFINITION LOCAL FRIENDS ltcl_package_json. +CLASS /apmg/cl_package_json DEFINITION LOCAL FRIENDS ltcl_package_json. CLASS ltcl_package_json IMPLEMENTATION. @@ -301,7 +301,7 @@ CLASS ltcl_package_json IMPLEMENTATION. test_json_full = prepare_string( test_json_full ). test_json_abbreviated = prepare_string( test_json_abbreviated ). - DATA(person) = VALUE zif_types=>ty_person( + DATA(person) = VALUE /apmg/if_types=>ty_person( name = `Marc` url = `https://abappm.com` email = `marc@test.com` @@ -377,7 +377,7 @@ CLASS ltcl_package_json IMPLEMENTATION. SPLIT args AT ',' INTO DATA(package) DATA(name) DATA(version) DATA(private). - cut = NEW zcl_package_json( + cut = NEW /apmg/cl_package_json( package = CONV devclass( package ) name = name version = version @@ -392,7 +392,7 @@ CLASS ltcl_package_json IMPLEMENTATION. IF cut->is_valid( ) = abap_false. cl_abap_unit_assert=>fail( |Invalid but expected valid: { args }| ). ENDIF. - CATCH zcx_error INTO DATA(error). + CATCH /apmg/cx_error INTO DATA(error). cl_abap_unit_assert=>fail( error->get_text( ) ). ENDTRY. @@ -405,7 +405,7 @@ CLASS ltcl_package_json IMPLEMENTATION. IF cut->is_valid( ) = abap_true. cl_abap_unit_assert=>fail( |Valid but expected invalid: { args }| ). ENDIF. - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. ENDMETHOD. @@ -478,7 +478,7 @@ CLASS ltcl_package_json IMPLEMENTATION. init_test( '$TEST,test,1.0.0' ). - DATA(package_json) = VALUE zif_types=>ty_package_json( + DATA(package_json) = VALUE /apmg/if_types=>ty_package_json( name = 'test' version = '1.0.0' ). @@ -513,7 +513,7 @@ CLASS ltcl_package_json IMPLEMENTATION. init_test( '$TEST' ). - DATA(package_json) = VALUE zif_types=>ty_package_json( + DATA(package_json) = VALUE /apmg/if_types=>ty_package_json( name = 'test' version = '1.0.0' private = abap_true ). @@ -576,7 +576,7 @@ CLASS ltcl_package_json IMPLEMENTATION. cut->set_json( prepare_string( json ) ). - DATA(package_json) = VALUE zif_types=>ty_package_json( + DATA(package_json) = VALUE /apmg/if_types=>ty_package_json( name = 'test' version = '1.0.0' dev_dependencies = VALUE #( @@ -594,7 +594,7 @@ CLASS ltcl_package_json IMPLEMENTATION. init_test( '$TEST' ). - DATA(package_json) = VALUE zif_types=>ty_package_json( + DATA(package_json) = VALUE /apmg/if_types=>ty_package_json( name = 'test' version = '1.0.0' dev_dependencies = VALUE #( @@ -647,7 +647,7 @@ CLASS ltcl_package_json IMPLEMENTATION. METHOD convert_json_to_manifest. - DATA(manifest) = zcl_package_json=>convert_json_to_manifest( test_json_full ). + DATA(manifest) = /apmg/cl_package_json=>convert_json_to_manifest( test_json_full ). cl_abap_unit_assert=>assert_equals( act = manifest @@ -657,8 +657,8 @@ CLASS ltcl_package_json IMPLEMENTATION. METHOD convert_json_to_manifest_abbr. - DATA(abbreviated) = CORRESPONDING zif_types=>ty_manifest_abbreviated( - zcl_package_json=>convert_json_to_manifest( test_json_abbreviated ) ). + DATA(abbreviated) = CORRESPONDING /apmg/if_types=>ty_manifest_abbreviated( + /apmg/cl_package_json=>convert_json_to_manifest( test_json_abbreviated ) ). cl_abap_unit_assert=>assert_equals( act = abbreviated @@ -668,7 +668,7 @@ CLASS ltcl_package_json IMPLEMENTATION. METHOD convert_manifest_to_json. - DATA(json) = zcl_package_json=>convert_manifest_to_json( manifest = test_manifest is_complete = abap_true ). + DATA(json) = /apmg/cl_package_json=>convert_manifest_to_json( manifest = test_manifest is_complete = abap_true ). cl_abap_unit_assert=>assert_equals( act = json @@ -678,9 +678,9 @@ CLASS ltcl_package_json IMPLEMENTATION. METHOD convert_manifest_abbr_to_json. - DATA(manifest) = CORRESPONDING zif_types=>ty_manifest( test_manifest_abbreviated ). + DATA(manifest) = CORRESPONDING /apmg/if_types=>ty_manifest( test_manifest_abbreviated ). - DATA(json) = zcl_package_json=>convert_manifest_to_json( manifest = manifest is_complete = abap_false ). + DATA(json) = /apmg/cl_package_json=>convert_manifest_to_json( manifest = manifest is_complete = abap_false ). cl_abap_unit_assert=>assert_equals( act = json @@ -690,7 +690,7 @@ CLASS ltcl_package_json IMPLEMENTATION. METHOD convert_manifest_to_pack_json. - DATA(json) = zcl_package_json=>convert_manifest_to_json( manifest = test_manifest is_package_json = abap_true ). + DATA(json) = /apmg/cl_package_json=>convert_manifest_to_json( manifest = test_manifest is_package_json = abap_true ). cl_abap_unit_assert=>assert_equals( act = json diff --git a/src/#apmg#cl_package_json.clas.xml b/src/#apmg#cl_package_json.clas.xml new file mode 100644 index 0000000..ccaf6cb --- /dev/null +++ b/src/#apmg#cl_package_json.clas.xml @@ -0,0 +1,17 @@ + + + + + + /APMG/CL_PACKAGE_JSON + E + Package JSON + 1 + X + X + X + X + + + + diff --git a/src/zcl_package_json_valid.clas.abap b/src/#apmg#cl_package_json_valid.clas.abap similarity index 76% rename from src/zcl_package_json_valid.clas.abap rename to src/#apmg#cl_package_json_valid.clas.abap index 5bcf9c5..b6b7ea8 100644 --- a/src/zcl_package_json_valid.clas.abap +++ b/src/#apmg#cl_package_json_valid.clas.abap @@ -1,4 +1,4 @@ -CLASS zcl_package_json_valid DEFINITION +CLASS /apmg/cl_package_json_valid DEFINITION PUBLIC FINAL CREATE PUBLIC. @@ -13,95 +13,81 @@ CLASS zcl_package_json_valid DEFINITION CLASS-METHODS check IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RETURNING VALUE(result) TYPE string_table. - CLASS-METHODS is_valid_package_type IMPORTING !type TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_sap_package IMPORTING !package TYPE devclass RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_name IMPORTING !name TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_scoped_name IMPORTING !name TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_version IMPORTING !version TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_version_range IMPORTING !range TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_email IMPORTING !email TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_url IMPORTING !url TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_engine IMPORTING !engine TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_os IMPORTING !os TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_cpu IMPORTING !cpu TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_db IMPORTING !db TYPE string RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_valid_timestamp IMPORTING !timestamp TYPE string RETURNING VALUE(result) TYPE abap_bool. - PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. -CLASS zcl_package_json_valid IMPLEMENTATION. +CLASS /apmg/cl_package_json_valid IMPLEMENTATION. METHOD check. @@ -130,9 +116,9 @@ CLASS zcl_package_json_valid IMPLEMENTATION. result = xsdbool( cpu_val IS INITIAL OR - cpu_val = zif_types=>c_cpu-x86_64 OR - cpu_val = zif_types=>c_cpu-power_pc OR - cpu_val = zif_types=>c_cpu-sparc ). + cpu_val = /apmg/if_types=>c_cpu-x86_64 OR + cpu_val = /apmg/if_types=>c_cpu-power_pc OR + cpu_val = /apmg/if_types=>c_cpu-sparc ). ENDMETHOD. @@ -145,15 +131,15 @@ CLASS zcl_package_json_valid IMPLEMENTATION. result = xsdbool( db_val IS INITIAL OR - db_val = zif_types=>c_db-db2 OR - db_val = zif_types=>c_db-db400 OR - db_val = zif_types=>c_db-db6 OR - db_val = zif_types=>c_db-hdb OR - db_val = zif_types=>c_db-informix OR - db_val = zif_types=>c_db-mssql OR - db_val = zif_types=>c_db-oracle OR - db_val = zif_types=>c_db-sap_db OR - db_val = zif_types=>c_db-sybase ). + db_val = /apmg/if_types=>c_db-db2 OR + db_val = /apmg/if_types=>c_db-db400 OR + db_val = /apmg/if_types=>c_db-db6 OR + db_val = /apmg/if_types=>c_db-hdb OR + db_val = /apmg/if_types=>c_db-informix OR + db_val = /apmg/if_types=>c_db-mssql OR + db_val = /apmg/if_types=>c_db-oracle OR + db_val = /apmg/if_types=>c_db-sap_db OR + db_val = /apmg/if_types=>c_db-sybase ). ENDMETHOD. @@ -178,8 +164,8 @@ CLASS zcl_package_json_valid IMPLEMENTATION. result = xsdbool( engine IS INITIAL OR - engine = zif_types=>c_engine-abap OR - engine = zif_types=>c_engine-apm ). + engine = /apmg/if_types=>c_engine-abap OR + engine = /apmg/if_types=>c_engine-apm ). ENDMETHOD. @@ -188,10 +174,10 @@ CLASS zcl_package_json_valid IMPLEMENTATION. " https://www.npmjs.com/package/validate-npm-package-name IF strlen( name ) - BETWEEN zif_types=>c_package_name-min_length - AND zif_types=>c_package_name-max_length. + BETWEEN /apmg/if_types=>c_package_name-min_length + AND /apmg/if_types=>c_package_name-max_length. - FIND REGEX zif_types=>c_package_name-regex IN name RESPECTING CASE. + FIND REGEX /apmg/if_types=>c_package_name-regex IN name RESPECTING CASE. result = xsdbool( sy-subrc = 0 ). ELSE. result = abap_false. @@ -208,13 +194,13 @@ CLASS zcl_package_json_valid IMPLEMENTATION. result = xsdbool( os_val IS INITIAL OR - os_val = zif_types=>c_os-aix OR - os_val = zif_types=>c_os-hp_ux OR - os_val = zif_types=>c_os-linux OR - os_val = zif_types=>c_os-ms_windows OR - os_val = zif_types=>c_os-os_390 OR - os_val = zif_types=>c_os-os_400 OR - os_val = zif_types=>c_os-solaris ). + os_val = /apmg/if_types=>c_os-aix OR + os_val = /apmg/if_types=>c_os-hp_ux OR + os_val = /apmg/if_types=>c_os-linux OR + os_val = /apmg/if_types=>c_os-ms_windows OR + os_val = /apmg/if_types=>c_os-os_390 OR + os_val = /apmg/if_types=>c_os-os_400 OR + os_val = /apmg/if_types=>c_os-solaris ). ENDMETHOD. @@ -223,8 +209,8 @@ CLASS zcl_package_json_valid IMPLEMENTATION. result = xsdbool( type IS INITIAL OR - type = zif_types=>c_package_type-common_abap OR - type = zif_types=>c_package_type-module ). + type = /apmg/if_types=>c_package_type-common_abap OR + type = /apmg/if_types=>c_package_type-module ). ENDMETHOD. @@ -267,10 +253,10 @@ CLASS zcl_package_json_valid IMPLEMENTATION. TRY. IF url IS NOT INITIAL. - zcl_url=>parse( url ). + /apmg/cl_url=>parse( url ). ENDIF. result = abap_true. - CATCH zcx_error. + CATCH /apmg/cx_error. result = abap_false. ENDTRY. @@ -281,9 +267,9 @@ CLASS zcl_package_json_valid IMPLEMENTATION. " Check if it is a semantic version TRY. - zcl_semver=>create( version ). + /apmg/cl_semver=>create( version ). result = abap_true. - CATCH zcx_error. + CATCH /apmg/cx_error. result = abap_false. ENDTRY. @@ -294,9 +280,9 @@ CLASS zcl_package_json_valid IMPLEMENTATION. " Check if it is a semantic version range TRY. - zcl_semver_range=>create( range ). + /apmg/cl_semver_range=>create( range ). result = abap_true. - CATCH zcx_error. + CATCH /apmg/cx_error. result = abap_false. ENDTRY. diff --git a/src/zcl_package_json_valid.clas.locals_imp.abap b/src/#apmg#cl_package_json_valid.clas.locals_imp.abap similarity index 75% rename from src/zcl_package_json_valid.clas.locals_imp.abap rename to src/#apmg#cl_package_json_valid.clas.locals_imp.abap index 02b2a3b..408ad94 100644 --- a/src/zcl_package_json_valid.clas.locals_imp.abap +++ b/src/#apmg#cl_package_json_valid.clas.locals_imp.abap @@ -4,31 +4,31 @@ CLASS lcl_validate DEFINITION. CLASS-METHODS validate_single_values IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RETURNING VALUE(result) TYPE string_table. CLASS-METHODS validate_persons IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RETURNING VALUE(result) TYPE string_table. CLASS-METHODS validate_arrays IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RETURNING VALUE(result) TYPE string_table. CLASS-METHODS validate_engines IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RETURNING VALUE(result) TYPE string_table. CLASS-METHODS validate_dependencies IMPORTING - !manifest TYPE zif_types=>ty_manifest + !manifest TYPE /apmg/if_types=>ty_manifest RETURNING VALUE(result) TYPE string_table. @@ -38,15 +38,15 @@ CLASS lcl_validate IMPLEMENTATION. METHOD validate_single_values. - IF zcl_package_json_valid=>is_valid_name( manifest-name ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_name( manifest-name ) = abap_false. INSERT |Invalid name: { manifest-name }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_version( manifest-version ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_version( manifest-version ) = abap_false. INSERT |Invalid version: { manifest-version }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_package_type( manifest-type ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_package_type( manifest-type ) = abap_false. INSERT |Invalid package type: { manifest-type }| INTO TABLE result. ENDIF. @@ -58,21 +58,21 @@ CLASS lcl_validate IMPLEMENTATION. INSERT |Invalid deprecated flag: { manifest-deprecated }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_url( manifest-homepage ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_url( manifest-homepage ) = abap_false. INSERT |Invalid homepage URL: { manifest-homepage }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_email( manifest-bugs-email ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_email( manifest-bugs-email ) = abap_false. INSERT |Invalid bugs email: { manifest-bugs-email }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_url( manifest-bugs-url ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_url( manifest-bugs-url ) = abap_false. INSERT |Invalid bugs URL: { manifest-bugs-url }| INTO TABLE result. ENDIF. " This should not be a URL to an html project page that you put in your browser. It's for computers. " Example: git+https://github.com/abapPM/abapPM.git - IF zcl_package_json_valid=>is_valid_url( manifest-repository-url ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_url( manifest-repository-url ) = abap_false. INSERT |Invalid repository URL: { manifest-repository-url }| INTO TABLE result. ENDIF. @@ -82,21 +82,21 @@ CLASS lcl_validate IMPLEMENTATION. DATA values TYPE string_table. - IF zcl_package_json_valid=>is_valid_email( manifest-author-email ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_email( manifest-author-email ) = abap_false. INSERT |Invalid author email: { manifest-author-email }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_url( manifest-author-url ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_url( manifest-author-url ) = abap_false. INSERT |Invalid author URL: { manifest-author-url }| INTO TABLE result. ENDIF. CLEAR values. LOOP AT manifest-contributors INTO DATA(person). COLLECT person-name INTO values. - IF zcl_package_json_valid=>is_valid_email( person-email ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_email( person-email ) = abap_false. INSERT |Invalid contributor email: { person-name } { person-email }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_url( person-url ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_url( person-url ) = abap_false. INSERT |Invalid contributor URL: { person-name } { person-url }| INTO TABLE result. ENDIF. ENDLOOP. @@ -107,10 +107,10 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-maintainers INTO person. COLLECT person-name INTO values. - IF zcl_package_json_valid=>is_valid_email( person-email ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_email( person-email ) = abap_false. INSERT |Invalid maintainer email: { person-name } { person-email }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_url( person-url ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_url( person-url ) = abap_false. INSERT |Invalid maintainer URL: { person-name } { person-url }| INTO TABLE result. ENDIF. ENDLOOP. @@ -127,7 +127,7 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-cpu INTO DATA(value). COLLECT value INTO values. - IF zcl_package_json_valid=>is_valid_cpu( value ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_cpu( value ) = abap_false. INSERT |Invalid CPU: { value }| INTO TABLE result. ENDIF. ENDLOOP. @@ -138,7 +138,7 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-db INTO value. COLLECT value INTO values. - IF zcl_package_json_valid=>is_valid_db( value ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_db( value ) = abap_false. INSERT |Invalid database: { value }| INTO TABLE result. ENDIF. ENDLOOP. @@ -149,7 +149,7 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-os INTO value. COLLECT value INTO values. - IF zcl_package_json_valid=>is_valid_os( value ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_os( value ) = abap_false. INSERT |Invalid operating system: { value }| INTO TABLE result. ENDIF. ENDLOOP. @@ -166,10 +166,10 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-engines INTO DATA(dependency). COLLECT dependency-key INTO values. - IF zcl_package_json_valid=>is_valid_engine( dependency-key ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_engine( dependency-key ) = abap_false. INSERT |Invalid engine: { dependency-key }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. INSERT |Invalid engine version: { dependency-key } { dependency-range }| INTO TABLE result. ENDIF. ENDLOOP. @@ -186,10 +186,10 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-dependencies INTO DATA(dependency). COLLECT dependency-key INTO values. - IF zcl_package_json_valid=>is_valid_name( dependency-key ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_name( dependency-key ) = abap_false. INSERT |Invalid dependency: { dependency-key }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. INSERT |Invalid dependency version: { dependency-key } { dependency-range }| INTO TABLE result. ENDIF. ENDLOOP. @@ -200,10 +200,10 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-dev_dependencies INTO dependency. COLLECT dependency-key INTO values. - IF zcl_package_json_valid=>is_valid_name( dependency-key ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_name( dependency-key ) = abap_false. INSERT |Invalid dev dependency: { dependency-key }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. INSERT |Invalid dev dependency version: { dependency-key } { dependency-range }| INTO TABLE result. ENDIF. IF line_exists( manifest-dependencies[ key = dependency-key ] ). @@ -217,10 +217,10 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-optional_dependencies INTO dependency. COLLECT dependency-key INTO values. - IF zcl_package_json_valid=>is_valid_name( dependency-key ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_name( dependency-key ) = abap_false. INSERT |Invalid optional dependency: { dependency-key }| INTO TABLE result. ENDIF. - IF zcl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_version_range( dependency-range ) = abap_false. INSERT |Invalid optional dependency version: { dependency-key } { dependency-range }| INTO TABLE result. ENDIF. IF line_exists( manifest-dependencies[ key = dependency-key ] ). @@ -237,7 +237,7 @@ CLASS lcl_validate IMPLEMENTATION. CLEAR values. LOOP AT manifest-bundle_dependencies INTO DATA(value). COLLECT value INTO values. - IF zcl_package_json_valid=>is_valid_name( value ) = abap_false. + IF /apmg/cl_package_json_valid=>is_valid_name( value ) = abap_false. INSERT |Invalid bundle dependency: { value }| INTO TABLE result. ENDIF. IF NOT line_exists( manifest-dependencies[ key = value ] ). diff --git a/src/#apmg#cl_package_json_valid.clas.testclasses.abap b/src/#apmg#cl_package_json_valid.clas.testclasses.abap new file mode 100644 index 0000000..e6fa42f --- /dev/null +++ b/src/#apmg#cl_package_json_valid.clas.testclasses.abap @@ -0,0 +1,51 @@ +CLASS ltcl_package_json_valid DEFINITION FINAL FOR TESTING + RISK LEVEL HARMLESS + DURATION SHORT. + + PRIVATE SECTION. + DATA tap TYPE REF TO /apmg/cl_tap. + + METHODS: + setup, + is_valid_name FOR TESTING, + is_scoped_name FOR TESTING, + is_valid_email FOR TESTING, + is_valid_url FOR TESTING. + +ENDCLASS. + +CLASS ltcl_package_json_valid IMPLEMENTATION. + + METHOD setup. + tap = NEW #( ). + ENDMETHOD. + + METHOD is_valid_name. + tap->_( /apmg/cl_package_json_valid=>is_valid_name( '' ) )->false( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_name( 'test' ) )->true( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_name( 'test/invalid' ) )->false( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_name( '@test/valid' ) )->true( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_name( '@test/@invalid' ) )->false( ). + ENDMETHOD. + + METHOD is_scoped_name. + tap->_( /apmg/cl_package_json_valid=>is_scoped_name( '' ) )->false( ). + tap->_( /apmg/cl_package_json_valid=>is_scoped_name( 'test' ) )->false( ). + tap->_( /apmg/cl_package_json_valid=>is_scoped_name( 'test/invalid' ) )->false( ). + tap->_( /apmg/cl_package_json_valid=>is_scoped_name( '@test/valid' ) )->true( ). + tap->_( /apmg/cl_package_json_valid=>is_scoped_name( '@test/@invalid' ) )->false( ). + ENDMETHOD. + + METHOD is_valid_email. + tap->_( /apmg/cl_package_json_valid=>is_valid_email( '' ) )->true( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_email( 'test@example.com' ) )->true( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_email( 'test@invalid' ) )->false( ). + ENDMETHOD. + + METHOD is_valid_url. + tap->_( /apmg/cl_package_json_valid=>is_valid_url( '' ) )->true( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_url( 'https://example.com' ) )->true( ). + tap->_( /apmg/cl_package_json_valid=>is_valid_url( '\\git://invalid.com' ) )->false( ). + ENDMETHOD. + +ENDCLASS. diff --git a/src/#apmg#cl_package_json_valid.clas.xml b/src/#apmg#cl_package_json_valid.clas.xml new file mode 100644 index 0000000..b8efe09 --- /dev/null +++ b/src/#apmg#cl_package_json_valid.clas.xml @@ -0,0 +1,17 @@ + + + + + + /APMG/CL_PACKAGE_JSON_VALID + E + Package JSON - Validator + 1 + X + X + X + X + + + + diff --git a/src/zif_package_json.intf.abap b/src/#apmg#if_package_json.intf.abap similarity index 79% rename from src/zif_package_json.intf.abap rename to src/#apmg#if_package_json.intf.abap index 764f910..c8ecc44 100644 --- a/src/zif_package_json.intf.abap +++ b/src/#apmg#if_package_json.intf.abap @@ -1,4 +1,4 @@ -INTERFACE zif_package_json PUBLIC. +INTERFACE /apmg/if_package_json PUBLIC. ************************************************************************ * Package JSON @@ -13,11 +13,11 @@ INTERFACE zif_package_json PUBLIC. CONSTANTS c_version TYPE string VALUE '1.0.0' ##NEEDED. - INTERFACES zif_types. + INTERFACES /apmg/if_types. TYPES: BEGIN OF ty_package, - key TYPE zif_persist_apm=>ty_key, + key TYPE /apmg/if_persist_apm=>ty_key, package TYPE devclass, name TYPE string, version TYPE string, @@ -32,7 +32,7 @@ INTERFACE zif_package_json PUBLIC. favorite TYPE abap_bool, " settings write_protected TYPE abap_bool, " settings labels TYPE string_table, " settings - instance TYPE REF TO zif_package_json, + instance TYPE REF TO /apmg/if_package_json, END OF ty_package, ty_packages TYPE STANDARD TABLE OF ty_package WITH NON-UNIQUE KEY primary_key COMPONENTS key @@ -41,7 +41,7 @@ INTERFACE zif_package_json PUBLIC. METHODS get RETURNING - VALUE(result) TYPE zif_types=>ty_package_json. + VALUE(result) TYPE /apmg/if_types=>ty_package_json. METHODS get_json IMPORTING @@ -49,23 +49,23 @@ INTERFACE zif_package_json PUBLIC. RETURNING VALUE(result) TYPE string RAISING - zcx_error. + /apmg/cx_error. METHODS set IMPORTING - !package_json TYPE zif_types=>ty_package_json + !package_json TYPE /apmg/if_types=>ty_package_json RETURNING - VALUE(result) TYPE REF TO zif_package_json + VALUE(result) TYPE REF TO /apmg/if_package_json RAISING - zcx_error. + /apmg/cx_error. METHODS set_json IMPORTING !json TYPE string RETURNING - VALUE(result) TYPE REF TO zif_package_json + VALUE(result) TYPE REF TO /apmg/if_package_json RAISING - zcx_error. + /apmg/cx_error. METHODS exists RETURNING @@ -73,17 +73,17 @@ INTERFACE zif_package_json PUBLIC. METHODS load RETURNING - VALUE(result) TYPE REF TO zif_package_json + VALUE(result) TYPE REF TO /apmg/if_package_json RAISING - zcx_error. + /apmg/cx_error. METHODS save RAISING - zcx_error. + /apmg/cx_error. METHODS delete RAISING - zcx_error. + /apmg/cx_error. METHODS is_valid RETURNING diff --git a/src/#apmg#if_package_json.intf.xml b/src/#apmg#if_package_json.intf.xml new file mode 100644 index 0000000..6b23b09 --- /dev/null +++ b/src/#apmg#if_package_json.intf.xml @@ -0,0 +1,15 @@ + + + + + + /APMG/IF_PACKAGE_JSON + E + Package JSON + 2 + 1 + X + + + + diff --git a/src/zcl_package_json_valid.clas.testclasses.abap b/src/zcl_package_json_valid.clas.testclasses.abap deleted file mode 100644 index 6f9103a..0000000 --- a/src/zcl_package_json_valid.clas.testclasses.abap +++ /dev/null @@ -1,51 +0,0 @@ -CLASS ltcl_package_json_valid DEFINITION FINAL FOR TESTING - RISK LEVEL HARMLESS - DURATION SHORT. - - PRIVATE SECTION. - DATA tap TYPE REF TO zcl_tap. - - METHODS: - setup, - is_valid_name FOR TESTING, - is_scoped_name FOR TESTING, - is_valid_email FOR TESTING, - is_valid_url FOR TESTING. - -ENDCLASS. - -CLASS ltcl_package_json_valid IMPLEMENTATION. - - METHOD setup. - tap = NEW #( ). - ENDMETHOD. - - METHOD is_valid_name. - tap->_( zcl_package_json_valid=>is_valid_name( '' ) )->false( ). - tap->_( zcl_package_json_valid=>is_valid_name( 'test' ) )->true( ). - tap->_( zcl_package_json_valid=>is_valid_name( 'test/invalid' ) )->false( ). - tap->_( zcl_package_json_valid=>is_valid_name( '@test/valid' ) )->true( ). - tap->_( zcl_package_json_valid=>is_valid_name( '@test/@invalid' ) )->false( ). - ENDMETHOD. - - METHOD is_scoped_name. - tap->_( zcl_package_json_valid=>is_scoped_name( '' ) )->false( ). - tap->_( zcl_package_json_valid=>is_scoped_name( 'test' ) )->false( ). - tap->_( zcl_package_json_valid=>is_scoped_name( 'test/invalid' ) )->false( ). - tap->_( zcl_package_json_valid=>is_scoped_name( '@test/valid' ) )->true( ). - tap->_( zcl_package_json_valid=>is_scoped_name( '@test/@invalid' ) )->false( ). - ENDMETHOD. - - METHOD is_valid_email. - tap->_( zcl_package_json_valid=>is_valid_email( '' ) )->true( ). - tap->_( zcl_package_json_valid=>is_valid_email( 'test@example.com' ) )->true( ). - tap->_( zcl_package_json_valid=>is_valid_email( 'test@invalid' ) )->false( ). - ENDMETHOD. - - METHOD is_valid_url. - tap->_( zcl_package_json_valid=>is_valid_url( '' ) )->true( ). - tap->_( zcl_package_json_valid=>is_valid_url( 'https://example.com' ) )->true( ). - tap->_( zcl_package_json_valid=>is_valid_url( '\\git://invalid.com' ) )->false( ). - ENDMETHOD. - -ENDCLASS. From 038af0805e161e1d136aefb4ee4ff39c826e4153 Mon Sep 17 00:00:00 2001 From: Marc Bernard Date: Tue, 29 Jul 2025 20:30:20 +0000 Subject: [PATCH 2/8] Switch to /apmg/ namespace --- src/zcl_package_json.clas.xml | 17 ----------------- src/zcl_package_json_valid.clas.xml | 17 ----------------- src/zif_package_json.intf.xml | 15 --------------- 3 files changed, 49 deletions(-) delete mode 100644 src/zcl_package_json.clas.xml delete mode 100644 src/zcl_package_json_valid.clas.xml delete mode 100644 src/zif_package_json.intf.xml diff --git a/src/zcl_package_json.clas.xml b/src/zcl_package_json.clas.xml deleted file mode 100644 index 71f2c4d..0000000 --- a/src/zcl_package_json.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCL_PACKAGE_JSON - E - Package JSON - 1 - X - X - X - X - - - - diff --git a/src/zcl_package_json_valid.clas.xml b/src/zcl_package_json_valid.clas.xml deleted file mode 100644 index d6d6118..0000000 --- a/src/zcl_package_json_valid.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - ZCL_PACKAGE_JSON_VALID - E - Package JSON - Validator - 1 - X - X - X - X - - - - diff --git a/src/zif_package_json.intf.xml b/src/zif_package_json.intf.xml deleted file mode 100644 index 4c0c785..0000000 --- a/src/zif_package_json.intf.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - ZIF_PACKAGE_JSON - E - Package JSON - 2 - 1 - X - - - - From f85a53fb3772b36eab0e553ad3cf5f4ecef08f38 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Tue, 29 Jul 2025 16:42:32 -0400 Subject: [PATCH 3/8] Update abaplint.json --- abaplint.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/abaplint.json b/abaplint.json index 47e4f80..e139f21 100644 --- a/abaplint.json +++ b/abaplint.json @@ -72,6 +72,7 @@ "CLAS", "DEVC", "INTF", + "NSPC", "PROG" ] }, @@ -215,7 +216,7 @@ "aqqu": "^Z", "aqsg": "^Z", "auth": "^Z", - "clas": "^ZC(L|X)\\_PACKAGE_JSON", + "clas": "^/APMG/C(L|X)_PACKAGE_JSON", "cmod": "^Z", "doma": "^Z", "dtel": "^Z", @@ -227,11 +228,11 @@ "idoc": "^Z", "ignoreNames": [], "ignorePatterns": [], - "intf": "^ZIF\\_PACKAGE_JSON", + "intf": "^/APMG/IF_PACKAGE_JSON", "msag": "^Z", "patternKind": "required", "pinf": "^Z", - "prog": "^Z", + "prog": "^/APMG/PACKAGE_JSON", "sfpf": "^Z", "sfpi": "^Z", "shlp": "^Z", @@ -314,7 +315,7 @@ "xml_consistency": true }, "syntax": { - "errorNamespace": "^(Z|Y|LCL_|TY_|LIF_)", + "errorNamespace": "^(/APMG/|LCL_|TY_|LIF_)", "globalConstants": [], "globalMacros": [], "version": "v750" From 4ade61508d188420bc78723d49176b495360340d Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Tue, 29 Jul 2025 17:44:22 -0400 Subject: [PATCH 4/8] Update .abapgit.xml --- .abapgit.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.abapgit.xml b/.abapgit.xml index 1621270..0a4dbd8 100644 --- a/.abapgit.xml +++ b/.abapgit.xml @@ -6,7 +6,7 @@ E /src/ PREFIX - ZIF_PACKAGE_JSON=>C_VERSION + /APMG/IF_PACKAGE_JSON=>C_VERSION From f39f39c0134734397e09dce2a94a2f06006768a8 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Tue, 29 Jul 2025 18:53:28 -0400 Subject: [PATCH 5/8] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 874f495..3ca018c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ -![Version](https://img.shields.io/endpoint?url=https://shield.abappm.com/github/abapPM/abapPM-Package-JSON/src/zif_package_json.intf.abap/c_version&label=Version&color=blue) +![Version](https://img.shields.io/endpoint?url=https://shield.abappm.com/github/abapPM/abapPM-Package-JSON/src/%2523apmg%2523if_package_json.intf.abap/c_version&label=Version&color=blue) [![License](https://img.shields.io/github/license/abapPM/abapPM-Package-JSON?label=License&color=success)](https://github.com/abapPM/abapPM-Package-JSON/blob/main/LICENSE) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?color=success)](https://github.com/abapPM/.github/blob/main/CODE_OF_CONDUCT.md) @@ -42,7 +42,7 @@ All contributions are welcome! Read our [Contribution Guidelines](https://github You can install the developer version of `@apm/package-json` using [abapGit](https://github.com/abapGit/abapGit) by creating a new online repository for `https://github.com/abapPM/abapPM-Package-JSON`. -Recommended SAP package: `$APM-PACKAGE-JSON` +Recommended SAP package: `/APMG/APM-PACKAGE-JSON` ## About From fc3510e0813f07e58dec82d075e8c6c5eeee8168 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Tue, 29 Jul 2025 18:57:03 -0400 Subject: [PATCH 6/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ca018c..8898829 100644 --- a/README.md +++ b/README.md @@ -50,4 +50,4 @@ Made with ❤ in Canada Copyright 2025 apm.to Inc. -Follow [@marcf.be](https://bsky.app/profile/marcf.be) on Blueksy and [@marcfbe](https://linkedin.com/in/marcfbe) or LinkedIn +Follow [@marcf.be](https://bsky.app/profile/marcf.be) on Bluesky and [@marcfbe](https://linkedin.com/in/marcfbe) or LinkedIn From 0ca05a1adcec0e52db02014e55604889e2ab8710 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Tue, 29 Jul 2025 20:10:35 -0400 Subject: [PATCH 7/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8898829..ef02120 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ # Package JSON for apm -Module used by apm to convert between package.abap.json and corresponding ABAP schemas. Persists data in `ZABAPPM` table. +Module used by apm to convert between `package.abap.json` and corresponding ABAP schemas. Persists data in `ZABAPPM` table. apm is a *package manager* 📦 for ABAP applications and modules, a *website* 🌐, and a *registry* 📑. From ea763391df98aa4187babe80604b33ff86f76363 Mon Sep 17 00:00:00 2001 From: Marc Bernard Date: Wed, 30 Jul 2025 00:11:14 +0000 Subject: [PATCH 8/8] Lint --- src/#apmg#cl_package_json.clas.testclasses.abap | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/#apmg#cl_package_json.clas.testclasses.abap b/src/#apmg#cl_package_json.clas.testclasses.abap index e34d380..9f270d0 100644 --- a/src/#apmg#cl_package_json.clas.testclasses.abap +++ b/src/#apmg#cl_package_json.clas.testclasses.abap @@ -690,7 +690,9 @@ CLASS ltcl_package_json IMPLEMENTATION. METHOD convert_manifest_to_pack_json. - DATA(json) = /apmg/cl_package_json=>convert_manifest_to_json( manifest = test_manifest is_package_json = abap_true ). + DATA(json) = /apmg/cl_package_json=>convert_manifest_to_json( + manifest = test_manifest + is_package_json = abap_true ). cl_abap_unit_assert=>assert_equals( act = json