Apicurio-studio: рд╕рд╣рдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдкреА рдкрд░рд┐рд╡рд░реНрддрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рд╣реЗрдЬрдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдирд╡ре░ 2019  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Apicurio/apicurio-studio

рджреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдкрд┐рдХреНрдпреВрд░рд┐рдпреЛ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдмрдЪрдд рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдПрдкреА рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдирд╣реАрдВ рд╣реИред
рдПрдкреАрдЖрдИ рдХреЗ 'рдЧреИрд░-рдорд╛рд▓рд┐рдХ' рдХреЛ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЬрдм рдХреИрд╢реЗ рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред
рдПрдкреАрдЖрдИ рдорд╛рд▓рд┐рдХ рдХреЛ рдпреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВред рдЙрд╕рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдПрдХ рдЧреИрд░-рдПрдкреАрдЖрдИ рдорд╛рд▓рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдкреАрдЖрдИ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рддрдм рд╕рд╣рдХрд░реНрдореА рдХреЛ рдпрд╛рджрджрд╛рд╢реНрдд рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ

@рдЬрд╛рд▓
@bodograumann

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрд░реЗ рдПрд░рд┐рдХ,

рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдордиреЗ рд╢реЗрдпрд░-рдлреЙрд░-рдПрд╡рд░реАрд╡рди рдХреЛ -ws рдкреЙрдбреНрд╕ рдкрд░ рднреА рд╕реЗрдЯ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ "рдареАрдХ" рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ https://hub.docker.com/r/apicurio/apicurio-studio-ws рдкрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдореИрдВ k8s-configs рдХреЛ рд╕рд╛рдл рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рддрдХ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рднреА 13 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдПрдкрд┐рдХреБрд░рд┐рдпреЛ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдвреВрдВрдврд╛ рдФрд░ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ SHARE_FOR_EVERYONE рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп), рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рдПрдХ рдирдпрд╛ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 0.243 рд╣реИред рдЕрдВрддрд┐рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ SHARE_FOR_EVERYONE рд╕рдХреНрд░рд┐рдп рд╣реИред

рдЗрддрдиреА рдЬрд▓реНрджреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @EricWittmannред
рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд▓рдЧрд╛рддрд╛рд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ @ рдЯреА-рд░реИрдк рдЬрд▓реНрдж рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред

рдЕрд░реЗ,

рджреЗрд░реА рд╕реЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА:

рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ apicurio-studio рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ docker рд╣рдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ docker рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИред
рдЗрд╕рд▓рд┐рдП
Apicurio-studio-ui, -ws, -api, -db (рдЫрд╡рд┐: percona:5.7)

рдЬрдм рд╣рдорд╛рд░реЗ рджреЗрд╡ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ apicurio-studio-api рдкрд░ рдбрд┐рдмрдЧ рд╕рдВрджреЗрд╢ рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ:

2019-11-20 15:12:05,053 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-66) Selecting the most recent api_content row of type 'document' for: 12 2019-11-20 15:12:05,056 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-66) Inserting an Editing Session UUID row: REDACTED 2019-11-20 15:12:05,070 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-66) Created Session ID: REDACTED 2019-11-20 15:12:05,070 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-66) Secret: REDACTED 2019-11-20 15:12:14,973 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-66) Retrieving contributors list for design with ID: 12 2019-11-20 15:12:14,973 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-66) Selecting all contributors for API Design: 12 2019-11-20 15:12:14,973 DEBUG [io.apicurio.studio.shared.config.Configuration] (default task-65) Config Property: APICURIO_SHARE_FOR_EVERYONE/apicurio.share.for.everyone = true 2019-11-20 15:12:14,973 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-65) Selecting activity for API Design: 12 from 0 to 10 2019-11-20 15:12:14,983 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-64) Selecting mock activity for API Design: 12 from 0 to 20 2019-11-20 15:12:14,997 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-67) Getting an API design with ID 12 2019-11-20 15:12:14,997 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-67) Selecting a single API Design: 12 2019-11-20 15:12:17,810 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-67) Getting an API design with ID 12 2019-11-20 15:12:17,810 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-67) Selecting a single API Design: 12 2019-11-20 15:12:17,860 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-67) Editing an API Design with ID 12 2019-11-20 15:12:17,860 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-67) USER: REDACTED 2019-11-20 15:12:17,860 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-67) Selecting the most recent api_content row of type 'document' for: 12 2019-11-20 15:12:17,862 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-67) Inserting an Editing Session UUID row: REDACTED 2019-11-20 15:12:17,875 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-67) Created Session ID: REDACTED 2019-11-20 15:12:17,875 DEBUG [io.apicurio.hub.api.rest.impl.DesignsResource] (default task-67) Secret: REDACTED

apicurio-studio-ws рдХреЗ рд▓рд┐рдП рджреЗрддрд╛ рд╣реИ:

2019-11-20 15:14:31,640 DEBUG [io.apicurio.hub.core.editing.ops.processors.CommandProcessor] (default task-3) user: REDACTED 2019-11-20 15:14:31,640 DEBUG [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (default task-3) Inserting a 'command' content row for: 12 2019-11-20 15:14:31,659 DEBUG [io.apicurio.hub.core.editing.ops.processors.CommandProcessor] (default task-3) ACK sent back to client. 2019-11-20 15:14:31,659 DEBUG [io.apicurio.hub.core.editing.ops.processors.CommandProcessor] (default task-3) Command propagated to 'other' clients. 2019-11-20 15:14:33,145 DEBUG [io.apicurio.hub.core.editing.ops.processors.OperationProcessorDispatcher] (default task-3) Received a "ping" message/operation from a client for API Design: 12 2019-11-20 15:14:44,989 DEBUG [io.apicurio.hub.core.editing.ops.processors.OperationProcessorDispatcher] (default task-3) Received a "ping" message/operation from a client for API Design: 15 2019-11-20 15:14:46,691 DEBUG [io.apicurio.hub.editing.EditApiDesignEndpoint] (default task-3) Closing a WebSocket due to: 2019-11-20 15:14:46,692 DEBUG [io.apicurio.hub.editing.EditApiDesignEndpoint] (default task-3) designId: 12

рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рддрдп рдХреА рдЧрдИ рдмрдЧ рдереА - рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдареАрдХ рдХрд┐рдпрд╛ рд╣реЛред рдореБрдЭреЗ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рджреЗрдВ рдФрд░ рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдПрдВред

рдареАрдХ рд╣реИ рдореИрдВрдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

рез)рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
2) рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдирд╡реАрдирддрдо рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕реЗ рдЪрд▓рд╛рдПрдВ

рд╡рд┐рдХрд▓реНрдк (2) рд╢рд╛рдпрдж рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд▓рдн рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╢рд╛рдпрдж рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдФрд░ рд░рд┐рд▓реАрдЬ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдХреБрдЫ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рд░рд┐рд▓реАрдЬ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдпреВрдЖрдИ рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ)ред

рдореИрдВ рдЕрднреА рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬрд╝ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ - рдЗрд╕рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред рдмрдВрдж рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред :)

рд╣рд╛рдп рдПрд░рд┐рдХ,

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рдЧрд▓рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдВрдХреЗрдд рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдЗрд╕реЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ?

``2019-11-22 10:16:14,057 рддреНрд░реБрдЯрд┐ [io.apicurio.hub.core.storage.jdbc.JdbcStorage] (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдп -1) рдирд╡реАрдирддрдо рд╕рд╛рдордЧреНрд░реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐: java.lang.IllegalStateException: рдЕрдкреЗрдХреНрд╖рд┐рдд рдПрдХ рддрддреНрд╡ , рд▓реЗрдХрд┐рди рдХреЛрдИ рдирд╣реАрдВ рдорд┐рд▓рд╛
org.jdbi.v3.core.result.ResultIterable.one(ResultIterable.java:135) рдкрд░
io.apicurio.hub.core.storage.jdbc.JdbcStorage.lambda$getLatestContentDocument$23(JdbcStorage.java:655) рдкрд░
org.jdbi.v3.core.Jdbi.withHandle(Jdbi.java:341) рдкрд░
io.apicurio.hub.core.storage.jdbc.JdbcStorage.getLatestContentDocument(JdbcStorage.java:648) рдкрд░
io.apicurio.hub.core.storage.jdbc.JdbcStorage$Proxy$_$$_WeldClientProxy.getLatestContentDocument (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
io.apicurio.hub.core.storage.RollupExecutor.rollupCommands(RollupExecutor.java:56) рдкрд░
io.apicurio.hub.core.storage.RollupExecutor.rollupCommands(RollupExecutor.java:108) рдкрд░
io.apicurio.hub.core.storage.RollupExecutor$Proxy$_$$_WeldClientProxy.rollupCommands (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
io.apicurio.hub.core.editing.EditingSession.close(EditingSession.java:131) рдкрд░
рдкрд░ io.apicurio.hub.core.editing.EditingSessionManager.closeEditingSession(EditingSessionManager.java:116)
io.apicurio.hub.core.editing.EditingSessionManager$Proxy$_$$_WeldClientProxy.closeEditingSession (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
рдкрд░ io.apicurio.hub.editing.EditApiDesignEndpoint.onCloseSession(EditApiDesignEndpoint.java:215)
sun.reflect.NativeMethodAccessorImpl.invoke0 (рдореВрд▓ рд╡рд┐рдзрд┐) рдкрд░
рдкрд░ sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
рдкрд░ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498) рдкрд░
io.undertow.websockets.jsr.annotated.BoundMethod.invoke (BoundMethod.java:87) рдкрд░
io.undertow.websockets.jsr.annotated.AnnotatedEndpoint$4.run(AnnotatedEndpoint.java:201) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:169) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:166) рдкрд░
io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) рдкрд░
org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$ рдкрд░ $0 рдмрдирд╛рдПрдВ (SecurityContextThreadSetupAction.java:105)
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer.invokeEndpointMethod(ServerWebSocketContainer.java:603) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer$6.run(ServerWebSocketContainer.java:589) рдкрд░
io.undertow.websockets.jsr.OrderedExecutor$ExecutorTask.run(OrderedExecutor.java:67) рдкрд░
org.jboss.threads.ContextClassLoaderSavingRunnable.run рдкрд░ (ContextClassLoaderSavingRunnable.java:35)
org.jboss.threads.EnhancedQueueExecutor.safeRun (EnhancedQueueExecutor.java:1985) рдкрд░
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487) рдкрд░
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378) рдкрд░
java.lang.Thread.run(Thread.java:748) рдкрд░

2019-11-22 10:16:14,057 рддреНрд░реБрдЯрд┐ [io.apicurio.hub.core.editing.EditingSession] (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдп -1) рдПрдХ рд╕рдВрдкрд╛рджрди рд╕рддреНрд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛: io.apicurio.hub.core.exceptions.NotFoundException
io.apicurio.hub.core.storage.jdbc.JdbcStorage.getLatestContentDocument(JdbcStorage.java:659) рдкрд░
io.apicurio.hub.core.storage.jdbc.JdbcStorage$Proxy$_$$_WeldClientProxy.getLatestContentDocument (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
io.apicurio.hub.core.storage.RollupExecutor.rollupCommands(RollupExecutor.java:56) рдкрд░
io.apicurio.hub.core.storage.RollupExecutor.rollupCommands(RollupExecutor.java:108) рдкрд░
io.apicurio.hub.core.storage.RollupExecutor$Proxy$_$$_WeldClientProxy.rollupCommands (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
io.apicurio.hub.core.editing.EditingSession.close(EditingSession.java:131) рдкрд░
рдкрд░ io.apicurio.hub.core.editing.EditingSessionManager.closeEditingSession(EditingSessionManager.java:116)
io.apicurio.hub.core.editing.EditingSessionManager$Proxy$_$$_WeldClientProxy.closeEditingSession (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
рдкрд░ io.apicurio.hub.editing.EditApiDesignEndpoint.onCloseSession(EditApiDesignEndpoint.java:215)
sun.reflect.NativeMethodAccessorImpl.invoke0 (рдореВрд▓ рд╡рд┐рдзрд┐) рдкрд░
рдкрд░ sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
рдкрд░ sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498) рдкрд░
io.undertow.websockets.jsr.annotated.BoundMethod.invoke (BoundMethod.java:87) рдкрд░
io.undertow.websockets.jsr.annotated.AnnotatedEndpoint$4.run(AnnotatedEndpoint.java:201) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:169) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:166) рдкрд░
io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) рдкрд░
org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$ рдкрд░ $0 рдмрдирд╛рдПрдВ (SecurityContextThreadSetupAction.java:105)
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$ UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer.invokeEndpointMethod(ServerWebSocketContainer.java:603) рдкрд░
io.undertow.websockets.jsr.ServerWebSocketContainer$6.run(ServerWebSocketContainer.java:589) рдкрд░
io.undertow.websockets.jsr.OrderedExecutor$ExecutorTask.run(OrderedExecutor.java:67) рдкрд░
org.jboss.threads.ContextClassLoaderSavingRunnable.run рдкрд░ (ContextClassLoaderSavingRunnable.java:35)
org.jboss.threads.EnhancedQueueExecutor.safeRun (EnhancedQueueExecutor.java:1985) рдкрд░
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487) рдкрд░
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378) рдкрд░
java.lang.Thread.run(Thread.java:748)``` . рдкрд░

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдЕрдЧрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рдореМрдЬреВрдж рдирд╣реАрдВ рдерд╛ред рдореБрдЭреЗ рдХреЛрдб рдХреЗ рдХреБрдЫ рд▓рд┐рдВрдХ рдЦреЛрджрдиреЗ рджреЛ ...

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдЕрднреА рдЖрдкрдХрд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:

рд╕рдВрд╕реНрдХрд░рдг | 0.2.44.рдЕрдВрддрд┐рдо
-- | --
рдкрд░ рдирд┐рд░реНрдорд┐рдд | рдирд╡рдВрдмрд░ 21, 2019
рд╕рдВрд╕реНрдХрд░рдг | рд╕реАрдПрд▓рдЖрдИрд╡реА7
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдпреВрдЖрд░рдПрд▓ | http://www.apicur.io/

рд╣рдордиреЗ рдкреБрд░рд╛рдиреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдереЗ, рдирдП рдПрдкреАрдЖрдИ рдмрдирд╛рдП рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЦрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЬрдорд╛рдпрд╛ред

рдареАрдХ рд╣реИ рдзрдиреНрдпрд╡рд╛рджред рддреЛ рдЙрд╕ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐, рдЬрдм рднреА рдХрд┐рд╕реА рдПрдкреАрдЖрдИ рдХреЗ рд╕рднреА рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рдВрдкрд╛рджрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ/рдмрдВрдж рдХрд░реЗрдВ) рд╕рд░реНрд╡рд░ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрдиреИрдкрд╢реЙрдЯ рдореЗрдВ рд░реЛрд▓рдЕрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдпрд╣рд╛рдБ рдПрдХ рд░реЛрд▓рдЕрдк рдирд┐рд╖реНрдкрд╛рджрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

https://github.com/Apicurio/apicurio-studio/blob/master/back-end/hub-core/src/main/java/io/apicurio/hub/core/storage/RollupExecutor.java

рдпрд╣ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ:

1) рдЕрдВрддрд┐рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрдиреИрдкрд╢реЙрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
2) рддрдм рд╕реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рдЖрджреЗрд╢реЛрдВ) рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
3) рдЕрдВрддрд┐рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрдиреИрдкрд╢реЙрдЯ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди/рдЖрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
4) рдирдП рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдбреАрдмреА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ

рдпрд╣ рдЪрд░рдг # 1 рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкрд┐рдЫрд▓рд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд╣рд▓реА рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ "рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ" рд╡рд┐рдХрд▓реНрдк -рдПрдкреАрдЖрдИ рдПрдкрд┐рдХреБрд░рд┐рдпреЛ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди -рдбрдмреНрд▓реНрдпреВрдПрд╕ рдПрдкрд┐рдХреБрд░рд┐рдпреЛ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рддреЛ рдореВрд▓ рд╕реНрдиреИрдкрд╢реЙрдЯ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдП рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреА рд░реЛрд▓рдЕрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдЕрдХреНрд╖рдо рд╣реИ) рддреЛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╕рдордп рдЧрд▓рдд рдПрд╕рдХреНрдпреВрдПрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреЗрд╡рд▓ -ws apicurio рдШрдЯрдХ рдореЗрдВ рд╢реЗрдпрд░-рдлреЙрд░-рдПрд╡рд░реАрд╡рди рдлреАрдЪрд░ рдХреА рдЧрд▓рдд-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдХрд╛рд░рдг рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ:

https://github.com/Apicurio/apicurio-studio/blob/master/back-end/hub-core/src/main/java/io/apicurio/hub/core/storage/jdbc/JdbcStorage.java#L650 - рдПрд▓ремрелрел

рдпрджрд┐ рд╢реЗрдпрд░-рдлреЙрд░-рдПрд╡рд░реА рдЗрди -рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди -рдбрдмреНрд▓реНрдпреВрдПрд╕ рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдШрдЯрд┐рдд рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдЖрдкрдХрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрдЯрдЕрдк рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ (рд╕рд╛рдЗрдб рдиреЛрдЯ: рдХреЛрдИ рднреА рдореМрдХрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?) рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХреЙрдиреНрдлрд┐рдЧрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рднреА рдХреЗ рд▓рд┐рдП рд╢реЗрдпрд░ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ -ws рдШрдЯрдХ рдкрд░ config рд╡рд┐рдХрд▓реНрдкред рдпрд╣рд╛рдБ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдореБрдЦ рд╕реБрдзрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ:

https://github.com/Apicurio/apicurio-studio/commit/7f4994bc907e1720ffd6f8ff81e844c032edbf79#diff -b1ff2c3381198f745ae9dc8add793d61

рдЕрд░реЗ рдПрд░рд┐рдХ,

рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдордиреЗ рд╢реЗрдпрд░-рдлреЙрд░-рдПрд╡рд░реАрд╡рди рдХреЛ -ws рдкреЙрдбреНрд╕ рдкрд░ рднреА рд╕реЗрдЯ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ "рдареАрдХ" рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ https://hub.docker.com/r/apicurio/apicurio-studio-ws рдкрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдореИрдВ k8s-configs рдХреЛ рд╕рд╛рдл рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рддрдХ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдорд╣рд╛рди! рдореИрдВ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдЫрд╡рд┐ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджреВрдВрдЧрд╛ред k8s рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░ рдХреЛрдИ рдЬрд▓реНрджреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЛрдЧрджрд╛рди рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

patrickceg picture patrickceg  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

turutosiya picture turutosiya  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

0815fox picture 0815fox  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jonathanvila picture jonathanvila  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

0x218 picture 0x218  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ