diff --git a/src/objects/zcl_abapgit_object_http.clas.abap b/src/objects/zcl_abapgit_object_http.clas.abap index 1f143a0a8..319ca7f39 100644 --- a/src/objects/zcl_abapgit_object_http.clas.abap +++ b/src/objects/zcl_abapgit_object_http.clas.abap @@ -34,6 +34,11 @@ CLASS zcl_abapgit_object_http DEFINITION object_state TYPE c LENGTH 1, END OF ty_gs_object_version. + TYPES: BEGIN OF ty_icf_node, + icfname TYPE c LENGTH 15, + icfparguid TYPE c LENGTH 25, + END OF ty_icf_node. + ENDCLASS. @@ -84,8 +89,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION. lo_http TYPE REF TO object, ls_abap_lang TYPE ty_gs_object_version, lo_instance TYPE REF TO object, - lv_tadir_name TYPE tadir-obj_name, - lt_ret TYPE STANDARD TABLE OF bapiret2. + lv_icfnode TYPE ty_icf_node. TRY. io_xml->read( @@ -98,6 +102,14 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION. EXPORTING iv_name = 'HTTPHDL' CHANGING cg_data = lt_handler ). + TRY. + "link to icf node (in releases older than 757, a http service requires a icf node to function) + io_xml->read( + EXPORTING iv_name = 'HTTPICFNODE' + CHANGING cg_data = lv_icfnode ). + CATCH cx_root. + ENDTRY. + SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = lv_http_servid AND version = 'A'. IF sy-subrc = 0. "update @@ -152,6 +164,9 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION. CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION') EXPORTING texts = ls_description. + CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_ICF_SERVICE') + EXPORTING + iv_icfservice = lv_icfnode. CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE') EXPORTING run_dark = abap_true @@ -159,16 +174,6 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION. korrnum = iv_transport. CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE'). - lv_tadir_name = lv_http_servid. - CALL METHOD ('CL_AUTH_START_TOOLS')=>('SUSH_CREATE') - EXPORTING - iv_type = 'HTTP' - iv_name = lv_tadir_name - iv_silent = abap_true - iv_task = iv_transport - IMPORTING - et_log = lt_ret. - CATCH cx_root INTO lx_root. zcx_abapgit_exception=>raise_with_text( lx_root ). ENDTRY. @@ -241,6 +246,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION. lt_handler TYPE TABLE OF ty_uconservhttphandler, ls_description TYPE ty_uconhttpservtext, lx_root TYPE REF TO cx_root, + lv_icfnode TYPE ty_icf_node, lv_name TYPE c LENGTH 30. TRY. @@ -275,6 +281,15 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION. iv_name = 'HTTPHDL' ig_data = lt_handler ). + TRY. + "link to icf node (in releases older than 757, a http service requires a icf node to function) + CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_ICF_SERVICE') IMPORTING ev_icfservice = lv_icfnode. + io_xml->add( + iv_name = 'HTTPICFNODE' + ig_data = lv_icfnode ). + CATCH cx_root. + ENDTRY. + CATCH cx_root INTO lx_root. zcx_abapgit_exception=>raise_with_text( lx_root ). ENDTRY. diff --git a/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap index b2ba99737..742fd3b05 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_stage.clas.abap @@ -137,7 +137,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION. METHOD check_selected. @@ -154,13 +154,16 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. " Check all added files if the exist in different paths (packages) without being removed LOOP AT io_files->mt_entries ASSIGNING WHERE v = zif_abapgit_definitions=>c_method-add. + " Allow mixed case path, but check filename to lower case zcl_abapgit_path=>split_file_location( EXPORTING - iv_fullpath = to_lower( -k ) + iv_fullpath = -k IMPORTING ev_path = ls_file-path ev_filename = ls_file-filename ). + ls_file-filename = to_lower( ls_file-filename ). + " Skip packages since they all have identical filenames IF ls_file-filename <> 'package.devc.xml'. lv_pattern = '*/' && to_upper( ls_file-filename ). @@ -235,11 +238,11 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. CREATE OBJECT lo_component EXPORTING - io_repo = io_repo - iv_seed = iv_seed - iv_sci_result = iv_sci_result + io_repo = io_repo + iv_seed = iv_seed + iv_sci_result = iv_sci_result ii_force_refresh = ii_force_refresh - ii_obj_filter = ii_obj_filter. + ii_obj_filter = ii_obj_filter. ri_page = zcl_abapgit_gui_page_hoc=>create( iv_page_title = 'Stage' @@ -738,13 +741,16 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION. "Ignore Files that we don't want to stage, so any errors don't stop the staging process WHERE v <> zif_abapgit_definitions=>c_method-skip. + " Allow mixed case path, but check filename to lower case zcl_abapgit_path=>split_file_location( EXPORTING - iv_fullpath = to_lower( -k ) " filename is lower cased + iv_fullpath = -k IMPORTING ev_path = ls_file-path ev_filename = ls_file-filename ). + ls_file-filename = to_lower( ls_file-filename ). + READ TABLE ms_files-status ASSIGNING WITH TABLE KEY path = ls_file-path diff --git a/src/utils/zcl_abapgit_path.clas.abap b/src/utils/zcl_abapgit_path.clas.abap index 9c3186bb2..d4d5724a9 100644 --- a/src/utils/zcl_abapgit_path.clas.abap +++ b/src/utils/zcl_abapgit_path.clas.abap @@ -27,6 +27,8 @@ CLASS zcl_abapgit_path DEFINITION IMPORTING iv_path TYPE string RETURNING VALUE(rv_filename) TYPE string. + PROTECTED SECTION. + PRIVATE SECTION. ENDCLASS.