cleanup old persistency layer #962

This commit is contained in:
larshp 2017-10-08 07:26:56 +00:00
parent bcb5a52abb
commit ac68f03593
2 changed files with 1 additions and 612 deletions

View File

@ -16,10 +16,6 @@ CLASS lcl_persist_migrate DEFINITION FINAL.
CLASS-METHODS:
migrate_settings
RAISING zcx_abapgit_exception,
migrate_repo
RAISING zcx_abapgit_exception,
migrate_user
RAISING zcx_abapgit_exception,
table_create
RAISING zcx_abapgit_exception,
table_exists
@ -1392,9 +1388,6 @@ CLASS lcl_persist_migrate IMPLEMENTATION.
IF lock_exists( ) = abap_false.
lock_create( ).
migrate_repo( ).
migrate_user( ).
ENDIF.
IF settings_exists( ) = abap_false.
@ -1563,46 +1556,6 @@ CLASS lcl_persist_migrate IMPLEMENTATION.
ENDMETHOD.
METHOD migrate_repo.
DATA: lt_repo TYPE lcl_persistence=>ty_repos_persi_tt,
lo_repo TYPE REF TO lcl_persistence,
lo_new TYPE REF TO lcl_persistence_repo,
ls_repo LIKE LINE OF lt_repo.
CREATE OBJECT lo_repo.
CREATE OBJECT lo_new.
lt_repo = lo_repo->list( ).
LOOP AT lt_repo INTO ls_repo.
lo_new->add( iv_url = ls_repo-url
iv_branch_name = ls_repo-branch_name
iv_branch = ls_repo-sha1
iv_package = ls_repo-package
iv_offline = ls_repo-offline
is_dot_abapgit = lcl_dot_abapgit=>build_default( )->get_data( ) ).
ENDLOOP.
ENDMETHOD.
METHOD migrate_user.
DATA: lo_user TYPE REF TO lcl_persistence_user,
lt_users TYPE lcl_user=>ty_user_tt.
FIELD-SYMBOLS: <ls_user> LIKE LINE OF lt_users.
lt_users = lcl_user=>list( ).
LOOP AT lt_users ASSIGNING <ls_user>.
lo_user = lcl_app=>user( <ls_user>-user ).
lo_user->set_default_git_user_name( <ls_user>-username ).
lo_user->set_default_git_user_email( <ls_user>-email ).
ENDLOOP.
ENDMETHOD.
METHOD lock_exists.
DATA: lv_viewname TYPE dd25l-viewname.

View File

@ -2,568 +2,4 @@
*& Include ZABAPGIT_PERSISTENCE_OLD
*&---------------------------------------------------------------------*
CLASS lcl_persist_migrate DEFINITION DEFERRED.
*----------------------------------------------------------------------*
* CLASS lcl_persistence DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_persistence DEFINITION FINAL FRIENDS lcl_persist_migrate.
* this class is obsolete, use LCL_PERSISTENCE_REPO instead
PRIVATE SECTION.
TYPES: BEGIN OF ty_repo_persi,
url TYPE string,
branch_name TYPE string,
sha1 TYPE lif_defs=>ty_sha1,
package TYPE devclass,
offline TYPE sap_bool,
END OF ty_repo_persi.
TYPES: ty_repos_persi_tt TYPE STANDARD TABLE OF ty_repo_persi WITH DEFAULT KEY.
METHODS list
RETURNING VALUE(rt_repos) TYPE ty_repos_persi_tt
RAISING zcx_abapgit_exception.
METHODS update
IMPORTING iv_url TYPE ty_repo_persi-url
iv_branch_name TYPE ty_repo_persi-branch_name
iv_branch TYPE lif_defs=>ty_sha1
RAISING zcx_abapgit_exception.
METHODS add
IMPORTING iv_url TYPE string
iv_branch_name TYPE string
iv_branch TYPE lif_defs=>ty_sha1 OPTIONAL
iv_package TYPE devclass
iv_offline TYPE sap_bool DEFAULT abap_false
RAISING zcx_abapgit_exception.
METHODS delete
IMPORTING iv_url TYPE ty_repo_persi-url
iv_branch_name TYPE ty_repo_persi-branch_name
RAISING zcx_abapgit_exception.
METHODS read_text_online
RETURNING VALUE(rt_repos) TYPE ty_repos_persi_tt
RAISING zcx_abapgit_exception.
METHODS save_text_online
IMPORTING it_repos TYPE ty_repos_persi_tt
RAISING zcx_abapgit_exception.
METHODS header_online
RETURNING VALUE(rs_header) TYPE thead.
METHODS read_text_offline
RETURNING VALUE(rt_repos) TYPE ty_repos_persi_tt
RAISING zcx_abapgit_exception.
METHODS save_text_offline
IMPORTING it_repos TYPE ty_repos_persi_tt
RAISING zcx_abapgit_exception.
METHODS header_offline
RETURNING VALUE(rs_header) TYPE thead.
METHODS read_text
IMPORTING is_header TYPE thead
RETURNING VALUE(rt_lines) TYPE tlinetab
RAISING zcx_abapgit_exception.
METHODS save_text
IMPORTING is_header TYPE thead
it_lines TYPE tlinetab
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_persistence DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_persistence IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_persistence IMPLEMENTATION.
METHOD save_text.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
header = is_header
TABLES
lines = it_lines
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc <> 0.
ROLLBACK WORK. "#EC CI_ROLLBACK
zcx_abapgit_exception=>raise( 'error from SAVE_TEXT' ).
ENDIF.
ENDMETHOD. "save_text
METHOD header_online.
rs_header-tdid = 'ST'.
rs_header-tdspras = lif_defs=>gc_english.
rs_header-tdname = 'ZABAPGIT'.
rs_header-tdobject = 'TEXT'.
ENDMETHOD. "header
METHOD header_offline.
rs_header-tdid = 'ST'.
rs_header-tdspras = lif_defs=>gc_english.
rs_header-tdname = 'ZABAPGIT_OFFLINE'.
rs_header-tdobject = 'TEXT'.
ENDMETHOD. "header_offline
METHOD delete.
DATA: lt_repos TYPE ty_repos_persi_tt.
lt_repos = list( ).
DELETE lt_repos WHERE url = iv_url AND branch_name = iv_branch_name.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'repo not found, delete' ).
ENDIF.
save_text_online( lt_repos ).
save_text_offline( lt_repos ).
ENDMETHOD. "delete
METHOD save_text_online.
DATA: lt_lines TYPE TABLE OF tline.
FIELD-SYMBOLS: <ls_repo> LIKE LINE OF it_repos,
<ls_line> LIKE LINE OF lt_lines.
LOOP AT it_repos ASSIGNING <ls_repo> WHERE offline = abap_false.
APPEND INITIAL LINE TO lt_lines ASSIGNING <ls_line>.
<ls_line>-tdformat = '*'.
<ls_line>-tdline = <ls_repo>-url.
APPEND INITIAL LINE TO lt_lines ASSIGNING <ls_line>.
<ls_line>-tdformat = '*'.
<ls_line>-tdline = <ls_repo>-branch_name.
APPEND INITIAL LINE TO lt_lines ASSIGNING <ls_line>.
<ls_line>-tdformat = '*'.
<ls_line>-tdline = <ls_repo>-sha1.
APPEND INITIAL LINE TO lt_lines ASSIGNING <ls_line>.
<ls_line>-tdformat = '*'.
<ls_line>-tdline = <ls_repo>-package.
ENDLOOP.
save_text( is_header = header_online( )
it_lines = lt_lines ).
COMMIT WORK.
ENDMETHOD. "save_text
METHOD save_text_offline.
DATA: lt_lines TYPE TABLE OF tline.
FIELD-SYMBOLS: <ls_repo> LIKE LINE OF it_repos,
<ls_line> LIKE LINE OF lt_lines.
LOOP AT it_repos ASSIGNING <ls_repo> WHERE offline = abap_true.
APPEND INITIAL LINE TO lt_lines ASSIGNING <ls_line>.
<ls_line>-tdformat = '*'.
<ls_line>-tdline = <ls_repo>-url.
APPEND INITIAL LINE TO lt_lines ASSIGNING <ls_line>.
<ls_line>-tdformat = '*'.
<ls_line>-tdline = <ls_repo>-package.
ENDLOOP.
save_text( is_header = header_offline( )
it_lines = lt_lines ).
COMMIT WORK.
ENDMETHOD. "save_text_offline
METHOD add.
DATA: lt_repos TYPE ty_repos_persi_tt.
FIELD-SYMBOLS: <ls_repo> LIKE LINE OF lt_repos.
ASSERT NOT iv_url IS INITIAL.
ASSERT NOT iv_package IS INITIAL.
lt_repos = list( ).
READ TABLE lt_repos WITH KEY url = iv_url branch_name = iv_branch_name
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
zcx_abapgit_exception=>raise( 'already inserted' ).
ENDIF.
APPEND INITIAL LINE TO lt_repos ASSIGNING <ls_repo>.
<ls_repo>-url = iv_url.
<ls_repo>-branch_name = iv_branch_name.
<ls_repo>-sha1 = iv_branch.
<ls_repo>-package = iv_package.
<ls_repo>-offline = iv_offline.
save_text_online( lt_repos ).
save_text_offline( lt_repos ).
ENDMETHOD. "insert
METHOD update.
DATA: lt_repos TYPE ty_repos_persi_tt.
FIELD-SYMBOLS: <ls_repo> LIKE LINE OF lt_repos.
IF iv_branch IS INITIAL.
zcx_abapgit_exception=>raise( 'update, sha empty' ).
ENDIF.
lt_repos = list( ).
READ TABLE lt_repos ASSIGNING <ls_repo>
WITH KEY url = iv_url branch_name = iv_branch_name.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'persist update, repo not found' ).
ENDIF.
<ls_repo>-sha1 = iv_branch.
save_text_online( lt_repos ).
ENDMETHOD. "update
METHOD list.
CLEAR rt_repos.
APPEND LINES OF read_text_online( ) TO rt_repos.
APPEND LINES OF read_text_offline( ) TO rt_repos.
ENDMETHOD. "list
METHOD read_text.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = is_header-tdid
language = is_header-tdspras
name = is_header-tdname
object = is_header-tdobject
TABLES
lines = rt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc = 4.
RETURN.
ELSEIF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error from READ_TEXT' ).
ENDIF.
ENDMETHOD. "read_text
METHOD read_text_online.
DATA: lt_lines TYPE TABLE OF tline,
lv_step TYPE i,
ls_repo TYPE ty_repo_persi.
FIELD-SYMBOLS: <ls_line> LIKE LINE OF lt_lines.
lt_lines = read_text( header_online( ) ).
IF lines( lt_lines ) = 0.
RETURN.
ENDIF.
IF lines( lt_lines ) MOD 4 <> 0.
* if this happens, delete text ZABAPGIT in SO10 or edit the text
* manually, so it contains the right information
zcx_abapgit_exception=>raise( 'Persistence, text broken' ).
ENDIF.
CLEAR ls_repo.
LOOP AT lt_lines ASSIGNING <ls_line>.
lv_step = lv_step + 1.
CASE lv_step.
WHEN 4.
ls_repo-package = <ls_line>-tdline.
IF ls_repo-url IS INITIAL OR ls_repo-branch_name IS INITIAL.
zcx_abapgit_exception=>raise( 'Persistence, text broken 2' ).
ENDIF.
APPEND ls_repo TO rt_repos.
CLEAR ls_repo.
lv_step = 0.
WHEN 3.
ls_repo-sha1 = <ls_line>-tdline.
WHEN 2.
ls_repo-branch_name = <ls_line>-tdline.
WHEN 1.
ls_repo-url = <ls_line>-tdline.
WHEN OTHERS.
ASSERT 1 = 0.
ENDCASE.
ENDLOOP.
ENDMETHOD. "list
METHOD read_text_offline.
DATA: lt_lines TYPE TABLE OF tline,
ls_repo TYPE ty_repo_persi.
FIELD-SYMBOLS: <ls_line> LIKE LINE OF lt_lines.
lt_lines = read_text( header_offline( ) ).
IF lines( lt_lines ) = 0.
RETURN.
ENDIF.
IF lines( lt_lines ) MOD 2 <> 0.
* if this happens, delete text ZABAPGIT in SO10 or edit the text
* manually, so it contains the right information
zcx_abapgit_exception=>raise( 'Persistence, text broken' ).
ENDIF.
CLEAR ls_repo.
LOOP AT lt_lines ASSIGNING <ls_line>.
IF <ls_line>-tdline IS INITIAL.
zcx_abapgit_exception=>raise( 'Persistence, text broken' ).
ENDIF.
IF ls_repo-url IS INITIAL.
ls_repo-url = <ls_line>-tdline.
CONTINUE. " current loop
ENDIF.
ls_repo-package = <ls_line>-tdline.
ls_repo-offline = abap_true.
APPEND ls_repo TO rt_repos.
CLEAR ls_repo.
ENDLOOP.
ENDMETHOD. "list
ENDCLASS. "lcl_persistence IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_user DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_user DEFINITION FINAL FRIENDS lcl_persist_migrate.
* this class is obsolete, use LCL_PERSISTENCE_USER instead
PRIVATE SECTION.
TYPES: BEGIN OF ty_user,
user LIKE sy-uname,
username TYPE string,
email TYPE string,
END OF ty_user.
TYPES: ty_user_tt TYPE STANDARD TABLE OF ty_user WITH DEFAULT KEY.
CLASS-METHODS set_username
IMPORTING iv_user TYPE xubname DEFAULT sy-uname
iv_username TYPE string
RAISING zcx_abapgit_exception.
CLASS-METHODS get_username
IMPORTING iv_user TYPE xubname DEFAULT sy-uname
RETURNING VALUE(rv_username) TYPE string
RAISING zcx_abapgit_exception.
CLASS-METHODS set_email
IMPORTING iv_user TYPE xubname DEFAULT sy-uname
iv_email TYPE string
RAISING zcx_abapgit_exception.
CLASS-METHODS get_email
IMPORTING iv_user TYPE xubname DEFAULT sy-uname
RETURNING VALUE(rv_email) TYPE string
RAISING zcx_abapgit_exception.
CLASS-METHODS list
RETURNING VALUE(rt_data) TYPE ty_user_tt
RAISING zcx_abapgit_exception.
CLASS-METHODS read
IMPORTING iv_name TYPE tdobname
RETURNING VALUE(rv_value) TYPE string
RAISING zcx_abapgit_exception.
CLASS-METHODS save
IMPORTING iv_name TYPE tdobname
iv_value TYPE string
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_user DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_user IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_user IMPLEMENTATION.
METHOD read.
* this class is obsolete, use LCL_PERSISTENCE_USER instead
DATA: lt_lines TYPE TABLE OF tline,
ls_line LIKE LINE OF lt_lines.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'ST'
language = lif_defs=>gc_english
name = iv_name
object = 'TEXT'
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 4 AND sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from READ_TEXT' ).
ENDIF.
READ TABLE lt_lines INTO ls_line INDEX 1.
IF sy-subrc = 0.
rv_value = ls_line-tdline.
ENDIF.
ENDMETHOD. "get_details
METHOD save.
DATA: ls_header TYPE thead,
lt_lines TYPE TABLE OF tline,
ls_line LIKE LINE OF lt_lines.
ls_line-tdformat = '*'.
ls_line-tdline = iv_value.
APPEND ls_line TO lt_lines.
ls_header-tdid = 'ST'.
ls_header-tdspras = lif_defs=>gc_english.
ls_header-tdname = iv_name.
ls_header-tdobject = 'TEXT'.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
header = ls_header
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc <> 0.
ROLLBACK WORK. "#EC CI_ROLLBACK
zcx_abapgit_exception=>raise( 'error from SAVE_TEXT' ).
ENDIF.
COMMIT WORK.
ENDMETHOD. "change
METHOD set_username.
DATA: lv_name TYPE tdobname.
CONCATENATE 'ZABAPGIT_USERNAME_' iv_user INTO lv_name.
save( iv_name = lv_name
iv_value = iv_username ).
ENDMETHOD. "set_username
METHOD get_username.
DATA: lv_name TYPE tdobname.
CONCATENATE 'ZABAPGIT_USERNAME_' iv_user INTO lv_name.
rv_username = read( lv_name ).
ENDMETHOD. "get_username
METHOD set_email.
DATA: lv_name TYPE tdobname.
CONCATENATE 'ZABAPGIT_EMAIL_' iv_user INTO lv_name.
save( iv_name = lv_name
iv_value = iv_email ).
ENDMETHOD. "set_email
METHOD list.
DATA: lt_stxh TYPE STANDARD TABLE OF stxh WITH DEFAULT KEY.
FIELD-SYMBOLS: <ls_output> LIKE LINE OF rt_data,
<ls_stxh> LIKE LINE OF lt_stxh.
SELECT * FROM stxh INTO TABLE lt_stxh
WHERE tdobject = 'TEXT'
AND tdname LIKE 'ZABAPGIT_USERNAME_%'. "#EC CI_SUBRC
LOOP AT lt_stxh ASSIGNING <ls_stxh>.
APPEND INITIAL LINE TO rt_data ASSIGNING <ls_output>.
<ls_output>-user = <ls_stxh>-tdname+18.
<ls_output>-username = get_username( <ls_output>-user ).
<ls_output>-email = get_email( <ls_output>-user ).
ENDLOOP.
ENDMETHOD.
METHOD get_email.
DATA: lv_name TYPE tdobname.
CONCATENATE 'ZABAPGIT_EMAIL_' iv_user INTO lv_name.
rv_email = read( lv_name ).
ENDMETHOD. "get_email
ENDCLASS. "lcl_user IMPLEMENTATION
* empty