mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Refactor background to use log object instead of WRITE (#1753)
* LOG: extra ADD_* methods Methods ADD_ERROR, ADD_INFO, and ADD_WARNING added to log class * refactor background to use log object refactor background to use log object instead of WRITE
This commit is contained in:
parent
bca3fd6002
commit
c72d04ea80
|
@ -74,6 +74,7 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
||||||
lo_repo TYPE REF TO zcl_abapgit_repo_online,
|
lo_repo TYPE REF TO zcl_abapgit_repo_online,
|
||||||
lt_list TYPE zcl_abapgit_persist_background=>tt_background,
|
lt_list TYPE zcl_abapgit_persist_background=>tt_background,
|
||||||
li_background TYPE REF TO zif_abapgit_background,
|
li_background TYPE REF TO zif_abapgit_background,
|
||||||
|
lo_log TYPE REF TO zcl_abapgit_log,
|
||||||
lv_repo_name TYPE string.
|
lv_repo_name TYPE string.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list.
|
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list.
|
||||||
|
@ -108,11 +109,15 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
||||||
iv_username = <ls_list>-username
|
iv_username = <ls_list>-username
|
||||||
iv_password = <ls_list>-password ).
|
iv_password = <ls_list>-password ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_log.
|
||||||
CREATE OBJECT li_background TYPE (<ls_list>-method).
|
CREATE OBJECT li_background TYPE (<ls_list>-method).
|
||||||
|
|
||||||
li_background->run(
|
li_background->run(
|
||||||
io_repo = lo_repo
|
io_repo = lo_repo
|
||||||
|
io_log = lo_log
|
||||||
it_settings = <ls_list>-settings ).
|
it_settings = <ls_list>-settings ).
|
||||||
|
|
||||||
|
lo_log->write( ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
IF lines( lt_list ) = 0.
|
IF lines( lt_list ) = 0.
|
||||||
|
|
|
@ -8,6 +8,8 @@ CLASS zcl_abapgit_background_push_au DEFINITION
|
||||||
INTERFACES zif_abapgit_background .
|
INTERFACES zif_abapgit_background .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
DATA mo_log TYPE REF TO zcl_abapgit_log .
|
||||||
|
|
||||||
METHODS build_comment
|
METHODS build_comment
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
|
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
|
||||||
|
@ -142,10 +144,10 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PUSH_AU IMPLEMENTATION.
|
||||||
changed_by = lv_changed_by
|
changed_by = lv_changed_by
|
||||||
TRANSPORTING NO FIELDS.
|
TRANSPORTING NO FIELDS.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
WRITE: / 'stage' ##NO_TEXT,
|
mo_log->add_info( |stage: {
|
||||||
ls_comment-committer-name,
|
ls_comment-committer-name } {
|
||||||
<ls_local>-file-path,
|
<ls_local>-file-path } {
|
||||||
<ls_local>-file-filename.
|
<ls_local>-file-filename }| ).
|
||||||
|
|
||||||
lo_stage->add( iv_path = <ls_local>-file-path
|
lo_stage->add( iv_path = <ls_local>-file-path
|
||||||
iv_filename = <ls_local>-file-filename
|
iv_filename = <ls_local>-file-filename
|
||||||
|
@ -157,9 +159,9 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PUSH_AU IMPLEMENTATION.
|
||||||
WHERE filename = <ls_local>-file-filename
|
WHERE filename = <ls_local>-file-filename
|
||||||
AND path <> <ls_local>-file-path
|
AND path <> <ls_local>-file-path
|
||||||
AND filename <> 'package.devc.xml'.
|
AND filename <> 'package.devc.xml'.
|
||||||
WRITE: / 'rm' ##NO_TEXT,
|
mo_log->add_info( |rm: {
|
||||||
<ls_remote>-path,
|
<ls_remote>-path } {
|
||||||
<ls_remote>-filename.
|
<ls_remote>-filename }| ).
|
||||||
|
|
||||||
* rm old file when object has moved
|
* rm old file when object has moved
|
||||||
lo_stage->rm(
|
lo_stage->rm(
|
||||||
|
@ -200,9 +202,9 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PUSH_AU IMPLEMENTATION.
|
||||||
|
|
||||||
LOOP AT is_files-remote ASSIGNING <ls_remote>.
|
LOOP AT is_files-remote ASSIGNING <ls_remote>.
|
||||||
|
|
||||||
WRITE: / 'removed' ##NO_TEXT,
|
mo_log->add_info( |removed: {
|
||||||
<ls_remote>-path,
|
<ls_remote>-path } {
|
||||||
<ls_remote>-filename.
|
<ls_remote>-filename }| ).
|
||||||
|
|
||||||
lo_stage->rm( iv_path = <ls_remote>-path
|
lo_stage->rm( iv_path = <ls_remote>-path
|
||||||
iv_filename = <ls_remote>-filename ).
|
iv_filename = <ls_remote>-filename ).
|
||||||
|
@ -237,10 +239,11 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PUSH_AU IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: ls_files TYPE zif_abapgit_definitions=>ty_stage_files.
|
DATA: ls_files TYPE zif_abapgit_definitions=>ty_stage_files.
|
||||||
|
|
||||||
|
mo_log = io_log.
|
||||||
ls_files = zcl_abapgit_stage_logic=>get( io_repo ).
|
ls_files = zcl_abapgit_stage_logic=>get( io_repo ).
|
||||||
|
|
||||||
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
||||||
WRITE: / 'Nothing to stage' ##NO_TEXT.
|
io_log->add_info( 'Nothing to stage' ) ##NO_TEXT.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -8,10 +8,12 @@ CLASS zcl_abapgit_background_push_fi DEFINITION
|
||||||
INTERFACES zif_abapgit_background .
|
INTERFACES zif_abapgit_background .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
CONSTANTS: BEGIN OF gc_settings,
|
CONSTANTS:
|
||||||
|
BEGIN OF gc_settings,
|
||||||
name TYPE string VALUE 'NAME',
|
name TYPE string VALUE 'NAME',
|
||||||
email TYPE string VALUE 'EMAIL',
|
email TYPE string VALUE 'EMAIL',
|
||||||
END OF gc_settings .
|
END OF gc_settings .
|
||||||
|
DATA mo_log TYPE REF TO zcl_abapgit_log .
|
||||||
|
|
||||||
METHODS build_comment
|
METHODS build_comment
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -81,9 +83,9 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PUSH_FI IMPLEMENTATION.
|
||||||
iv_branch_sha1 = io_repo->get_sha1_remote( ).
|
iv_branch_sha1 = io_repo->get_sha1_remote( ).
|
||||||
|
|
||||||
LOOP AT ls_files-local ASSIGNING <ls_local>.
|
LOOP AT ls_files-local ASSIGNING <ls_local>.
|
||||||
WRITE: / 'stage' ##NO_TEXT,
|
mo_log->add_info( |stage: {
|
||||||
<ls_local>-file-path,
|
<ls_local>-file-path } {
|
||||||
<ls_local>-file-filename.
|
<ls_local>-file-filename }| ).
|
||||||
lo_stage->add( iv_path = <ls_local>-file-path
|
lo_stage->add( iv_path = <ls_local>-file-path
|
||||||
iv_filename = <ls_local>-file-filename
|
iv_filename = <ls_local>-file-filename
|
||||||
iv_data = <ls_local>-file-data ).
|
iv_data = <ls_local>-file-data ).
|
||||||
|
@ -91,9 +93,9 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PUSH_FI IMPLEMENTATION.
|
||||||
|
|
||||||
LOOP AT ls_files-remote ASSIGNING <ls_remote>.
|
LOOP AT ls_files-remote ASSIGNING <ls_remote>.
|
||||||
|
|
||||||
WRITE: / 'removed' ##NO_TEXT,
|
mo_log->add_info( |removed: {
|
||||||
<ls_remote>-path,
|
<ls_remote>-path } {
|
||||||
<ls_remote>-filename.
|
<ls_remote>-filename }| ).
|
||||||
|
|
||||||
lo_stage->rm( iv_path = <ls_remote>-path
|
lo_stage->rm( iv_path = <ls_remote>-path
|
||||||
iv_filename = <ls_remote>-filename ).
|
iv_filename = <ls_remote>-filename ).
|
||||||
|
@ -146,11 +148,11 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PUSH_FI IMPLEMENTATION.
|
||||||
lv_name TYPE string,
|
lv_name TYPE string,
|
||||||
lv_email TYPE string.
|
lv_email TYPE string.
|
||||||
|
|
||||||
|
mo_log = io_log.
|
||||||
ls_files = zcl_abapgit_stage_logic=>get( io_repo ).
|
ls_files = zcl_abapgit_stage_logic=>get( io_repo ).
|
||||||
|
|
||||||
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
||||||
WRITE: / 'Nothing to stage' ##NO_TEXT.
|
io_log->add_info( 'Nothing to stage' ).
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
INTERFACE zif_abapgit_background
|
INTERFACE zif_abapgit_background
|
||||||
PUBLIC .
|
PUBLIC .
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_settings,
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_settings,
|
||||||
key TYPE string,
|
key TYPE string,
|
||||||
value TYPE string,
|
value TYPE string,
|
||||||
END OF ty_settings .
|
END OF ty_settings .
|
||||||
|
TYPES:
|
||||||
TYPES: ty_settings_tt TYPE STANDARD TABLE OF ty_settings WITH DEFAULT KEY.
|
ty_settings_tt TYPE STANDARD TABLE OF ty_settings WITH DEFAULT KEY .
|
||||||
|
|
||||||
CLASS-METHODS get_description
|
CLASS-METHODS get_description
|
||||||
RETURNING
|
RETURNING
|
||||||
|
@ -17,6 +19,7 @@ INTERFACE zif_abapgit_background
|
||||||
METHODS run
|
METHODS run
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
|
!io_log TYPE REF TO zcl_abapgit_log
|
||||||
!it_settings TYPE ty_settings_tt OPTIONAL
|
!it_settings TYPE ty_settings_tt OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
|
|
@ -1,45 +1,62 @@
|
||||||
CLASS zcl_abapgit_log DEFINITION PUBLIC CREATE PUBLIC.
|
CLASS zcl_abapgit_log DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
METHODS:
|
|
||||||
add
|
|
||||||
IMPORTING
|
|
||||||
iv_msg TYPE csequence
|
|
||||||
iv_type TYPE symsgty DEFAULT 'E'
|
|
||||||
iv_rc TYPE balsort OPTIONAL,
|
|
||||||
count
|
|
||||||
RETURNING VALUE(rv_count) TYPE i,
|
|
||||||
to_html
|
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html,
|
|
||||||
clear,
|
|
||||||
has_rc "For unit tests mainly
|
|
||||||
IMPORTING iv_rc TYPE balsort
|
|
||||||
RETURNING VALUE(rv_yes) TYPE abap_bool,
|
|
||||||
show
|
|
||||||
IMPORTING
|
|
||||||
iv_header_text TYPE csequence DEFAULT 'Log'.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
METHODS add
|
||||||
TYPES: BEGIN OF ty_log,
|
IMPORTING
|
||||||
|
!iv_msg TYPE csequence
|
||||||
|
!iv_type TYPE symsgty DEFAULT 'E'
|
||||||
|
!iv_rc TYPE balsort OPTIONAL .
|
||||||
|
METHODS add_error
|
||||||
|
IMPORTING
|
||||||
|
!iv_msg TYPE csequence .
|
||||||
|
METHODS add_info
|
||||||
|
IMPORTING
|
||||||
|
!iv_msg TYPE csequence .
|
||||||
|
METHODS add_warning
|
||||||
|
IMPORTING
|
||||||
|
!iv_msg TYPE csequence .
|
||||||
|
METHODS clear .
|
||||||
|
METHODS count
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_count) TYPE i .
|
||||||
|
METHODS has_rc
|
||||||
|
IMPORTING
|
||||||
|
!iv_rc TYPE balsort
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_yes) TYPE abap_bool .
|
||||||
|
METHODS show
|
||||||
|
IMPORTING
|
||||||
|
!iv_header_text TYPE csequence DEFAULT 'Log' .
|
||||||
|
METHODS to_html
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
|
||||||
|
METHODS write .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_log,
|
||||||
msg TYPE string,
|
msg TYPE string,
|
||||||
type TYPE symsgty,
|
type TYPE symsgty,
|
||||||
rc TYPE balsort,
|
rc TYPE balsort,
|
||||||
END OF ty_log,
|
END OF ty_log .
|
||||||
|
TYPES:
|
||||||
BEGIN OF ty_log_out,
|
BEGIN OF ty_log_out,
|
||||||
type TYPE icon_d,
|
type TYPE icon_d,
|
||||||
msg TYPE string,
|
msg TYPE string,
|
||||||
END OF ty_log_out,
|
END OF ty_log_out .
|
||||||
|
TYPES:
|
||||||
tty_log_out TYPE STANDARD TABLE OF ty_log_out
|
tty_log_out TYPE STANDARD TABLE OF ty_log_out
|
||||||
WITH NON-UNIQUE DEFAULT KEY .
|
WITH NON-UNIQUE DEFAULT KEY .
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
mt_log TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY .
|
||||||
|
|
||||||
DATA: mt_log TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY.
|
METHODS prepare_log_for_display
|
||||||
|
|
||||||
METHODS:
|
|
||||||
prepare_log_for_display
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_log_out) TYPE zcl_abapgit_log=>tty_log_out .
|
VALUE(rt_log_out) TYPE zcl_abapgit_log=>tty_log_out .
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,6 +76,30 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD add_error.
|
||||||
|
|
||||||
|
add( iv_msg = iv_msg
|
||||||
|
iv_type = 'E' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD add_info.
|
||||||
|
|
||||||
|
add( iv_msg = iv_msg
|
||||||
|
iv_type = 'I' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD add_warning.
|
||||||
|
|
||||||
|
add( iv_msg = iv_msg
|
||||||
|
iv_type = 'W' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD clear.
|
METHOD clear.
|
||||||
CLEAR mt_log.
|
CLEAR mt_log.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -70,6 +111,8 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD has_rc.
|
METHOD has_rc.
|
||||||
|
* todo, this method is only used in unit tests
|
||||||
|
|
||||||
READ TABLE mt_log WITH KEY rc = iv_rc TRANSPORTING NO FIELDS.
|
READ TABLE mt_log WITH KEY rc = iv_rc TRANSPORTING NO FIELDS.
|
||||||
rv_yes = boolc( sy-subrc = 0 ).
|
rv_yes = boolc( sy-subrc = 0 ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -190,4 +233,16 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD write.
|
||||||
|
|
||||||
|
DATA: ls_log LIKE LINE OF mt_log.
|
||||||
|
|
||||||
|
|
||||||
|
LOOP AT mt_log INTO ls_log.
|
||||||
|
WRITE: / |{ ls_log-type }: { ls_log-msg }|.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user