Reddwarf рд░реЙрдХ-рдкреЗрдкрд░-рдкреЗрдкрд░ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП: рдХреНрд▓рд╛рдЗрдВрдЯ

рд░реЙрдХ-рдкреЗрдкрд░-рдХреИрдВрдЪреА рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ Reddwarf рд▓реЗрдЦ рдореЗрдВ : рд╕рд░реНрд╡рд░ , рдХреЛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмрд┐рдирд╛ рдРрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЦреЗрд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦрдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред


рдХрд╛рдо рдХреА рддреИрдпрд╛рд░реА


рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Reddwarf рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ sgs-client-dist-0.10.2.zip рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдпрд╣рд╛рдБ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред
рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреА рджреЗрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

рдХрдиреЗрдХреНрд╢рди рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг


рд╣рдо рдкреЛрд░реНрдЯ 62964 рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ - рдпрд╣ Reddwarf рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ рд╣реИред
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ (рдФрд░ рд╢рд╛рдпрдж Reddwarf рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ - PasswordAuthentication рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рд╕рд░реНрд╡рд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред

рдХреНрд▓рд╛рдЗрдВрдЯ.рдЬрд╡рд╛ рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ
public class Client implements SimpleClientListener { private SimpleClient simpleClient; private final String host; private final String username; public static final String DEFAULT_PORT = "62964"; private final ClientFrame frame; public Client(String host, String username, ClientFrame frame) { this.host = host; this.username = username; this.frame = frame; simpleClient = new SimpleClient(this); } @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, new char[]{}); } @Override public void loggedIn() { frame.loggedIn(); } @Override public void loginFailed(String s) { frame.setStatus("login failed " + username+": "+s); } @Override public void receivedMessage(ByteBuffer packet) { String text = Messages.decodeString(packet); if (text.startsWith("SCORE")) { frame.setScore(text); } else if (text.startsWith("BATTLE")) { frame.startBattle(text); } else if (text.startsWith("DRAW")) { frame.setBattleResult(text); } else if (text.startsWith("WON")) { frame.setBattleResult(text); } else if (text.startsWith("LOST")) { frame.setBattleResult(text); } else if (text.startsWith("ERROR")) { frame.setStatus(text); } } public void login() { try { Properties connectProps = new Properties(); connectProps.put("host", host); connectProps.put("port", DEFAULT_PORT); simpleClient.login(connectProps); } catch (Exception e) { e.printStackTrace(); disconnected(false, e.getMessage()); } } public void play() { try { simpleClient.send(Messages.encodeString("PLAY")); } catch (IOException e) { e.printStackTrace(); } } public void answer(String text) { try { simpleClient.send(Messages.encodeString(text)); } catch (IOException e) { e.printStackTrace(); } } } 


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕


GUI рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдФрд░ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд░реВрдк рд╣реИ:


ClientFrame.java рдлреЙрд░реНрдо рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Message.java рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЗ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИред

рд╣реБрд░реНрд░реЗ, рднрд╛рдЧреЛ!


рдХреЛрдб рддреИрдпрд╛рд░ рд╣реИ, рдЖрдк рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред
рд╣рдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
  03, 2012 6:53:29 PM com.sun.sgs.impl.kernel.Kernel <init> INFO: The Kernel is ready, version: 0.10.2.1  03, 2012 6:53:29 PM com.sun.sgs.impl.service.data.store.DataStoreImpl <init> INFO: Creating database directory : C:\sgs-server-dist-0.10.2.1\data\dsdb  03, 2012 6:53:29 PM com.sun.sgs.impl.service.watchdog.WatchdogServerImpl registerNode INFO: node:com.sun.sgs.impl.service.watchdog.NodeImpl[1,health:GREEN,backup:(none)]@black registered  03, 2012 6:53:30 PM hello.reddwarf.server.Server initialize INFO: Starting new Rock-Paper-Scissors Server. Initialized database.  03, 2012 6:53:30 PM com.sun.sgs.impl.kernel.Kernel startApplication INFO: RockPaperScissors: application is ready  03, 2012 6:53:30 PM hello.reddwarf.server.OnlineLoggerTask run INFO: Online: 0 

рд╣рдо рджреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:


рдПрдХ рдФрд░ рджреВрд╕рд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдЦрд╛рддреЗ рдореЗрдВ 0 рдЕрдВрдХ рд╣реИрдВред

рд╕рд░реНрд╡рд░ рд▓реЙрдЧ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ: рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА рдирд╣реАрдВ рд╣реИрдВ, рдЦрд┐рд▓рд╛рдбрд╝реА player1 рдФрд░ player2 рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред
  03, 2012 6:53:47 PM hello.reddwarf.server.Server loggedIn INFO: Client login: player2  03, 2012 6:53:47 PM hello.reddwarf.server.Server loadOrRegister INFO: Registering new player player2  03, 2012 6:53:48 PM hello.reddwarf.server.Server loggedIn INFO: Client login: player1  03, 2012 6:53:48 PM hello.reddwarf.server.Server loadOrRegister INFO: Registering new player player1  03, 2012 6:53:50 PM hello.reddwarf.server.OnlineLoggerTask run INFO: Online: 2 


рдкреНрд▓реЗ рдкрд░ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ - рд╕рд░реНрд╡рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреЗ рд░реВрдк рдореЗрдВ рджреВрд╕рд░реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓рдбрд╝рд╛рдИ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ:


рд▓реЙрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдиреЗ рдПрдХ рдирдИ рд▓рдбрд╝рд╛рдИ рдмрдирд╛рдИред рд╕рд░реНрд╡рд░ рдкреНрд▓реЗрдпрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ
  03, 2012 6:53:54 PM hello.reddwarf.server.Player play INFO: Choosing enemy for player1  03, 2012 6:53:54 PM hello.reddwarf.server.Battle <init> INFO: Created Battle{2} for {player1} and {player2}  03, 2012 6:53:54 PM hello.reddwarf.server.Battle start INFO: Started Battle{2} 


рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм:

  03, 2012 6:53:56 PM hello.reddwarf.server.Battle answer INFO: Battle{2} Player {player1} answer ROCK  03, 2012 6:53:57 PM hello.reddwarf.server.Battle answer INFO: Battle{2} Player {player2} answer PAPER 


рд╕рд░реНрд╡рд░ рдпреБрджреНрдз рдХреЗ рд╕рдордп рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░рддрд╛ рд╣реИ:

  03, 2012 6:53:59 PM hello.reddwarf.server.Battle finish INFO: Battle{2} finished. Answers: {player1}->ROCK {player2}->PAPER 


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


рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ - рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдкреНрд▓реЗрдпрд░ рдкреНрд▓реЗрдпрд░ 2 рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
 java -jar bin/sgs-stop.jar java -jar bin/sgs-boot.jar 


рд╣рдо рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ: рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЕрд░реНрдЬрд┐рдд 2 рдЕрдВрдХ рдмрдЪрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред


рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди, рд▓реЙрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ (рдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде):
 WARNING: Task has been retried 25 times: com.sun.sgs.impl.service.session.ClientSessionServiceImpl$RemoveNodeSpecificDataTask[owner:app:RockPaperScissors] WARNING: Task has been retried 25 times: com.sun.sgs.impl.service.channel.ChannelServiceImpl$RemoveChannelServerProxyTask[owner:app:RockPaperScissors] WARNING: Task has been retried 50 times: com.sun.sgs.impl.service.session.ClientSessionServiceImpl$RemoveNodeSpecificDataTask[owner:app:RockPaperScissors] WARNING: Task has been retried 50 times: com.sun.sgs.impl.service.channel.ChannelServiceImpl$RemoveChannelServerProxyTask[owner:app:RockPaperScissors] WARNING: Task has been retried 75 times: com.sun.sgs.impl.service.session.ClientSessionServiceImpl$RemoveNodeSpecificDataTask[owner:app:RockPaperScissors] WARNING: Task has been retried 75 times: com.sun.sgs.impl.service.channel.ChannelServiceImpl$RemoveChannelServerProxyTask[owner:app:RockPaperScissors] 


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

рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб code.google.com рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ SVN рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
  svn checkout http://reddwarf-rock-paper-sc рдХреИрдВрдЪреА-example.googlecode.com/svn/trunk/ reddwarf-rock-paper-рдХреИрдВрдЪреА-рдЙрджрд╛рд╣рд░рдг-рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП 

рдФрд░ рдЕрдЧрд░ рдЖрдк рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: code.google.com/p/reddwarf-rock-paper-screens-example/downloads/list
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  java -jr HelloReddwarfClient.jar 

рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреИрдирд╛рддреА .jar рдлрд╝рд╛рдЗрд▓ рдХреЛ sgs-server-dist-0.10.2.1 / рддреИрдирд╛рдд / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд░реНрд╡рд░ рд╕реНрдЯрд╛рд░реНрдЯ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
  рдЬрд╛рд╡рд╛ -рдЬрд╛рд░ рдмрд┐рди / sgs-boot.jar 


рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

Source: https://habr.com/ru/post/In138039/


All Articles