Full width home advertisement

Post Page Advertisement [Top]


My Client
package omni.client;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;
import org.boon.Boon;

import omni.commons.core.Request;

public class Client {

 private static final Logger log = Logger.getLogger(Client.class);

 private static final String host = "localhost";
 private static final int port = 9876;
 private static Request requestServer;
 private static Map<String, String> properties;

 public static void main(String[] args) {

  properties = new HashMap<>();
  properties.put("mockProperty1", "mockValue1");
  properties.put("mockProperty2", "mockValue2");
  properties.put("mockProperty3", "mockValue3");

  requestServer = new Request();
  requestServer.setCommandName("Mock Command");
  requestServer.setProperties(properties);

  String jsonRequest = Boon.toJson(requestServer);

  try (Socket socket = new Socket(host, port)) {
   try (OutputStreamWriter request = new OutputStreamWriter(socket.getOutputStream(),
     StandardCharsets.UTF_8)) {
    request.write(jsonRequest);
    request.flush();
   }
  } catch (IOException ioe) {
   log.error("Unable to send the request", ioe);
  }
 }
}
My Server
package omni.server;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

import org.apache.log4j.Logger;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

import omni.commons.core.Request;

public class Server {

 private static final Logger log = Logger.getLogger(Server.class);

 private static final int port = 9876;
 private static Socket socket;
 private static BufferedReader input;
 private static String request;
 private static ObjectMapper mapper;
 private static Request requestObject;

 public static void main(String[] args) {

  try (ServerSocket serverSocket = new ServerSocket(port)) {
   log.info("Server started and listening at port : " + port);
   socket = serverSocket.accept();
   input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
   request = input.readLine();

   log.info("JSON Request " + request);

   mapper = JsonFactory.create();
   requestObject = mapper.readValue(request, Request.class);

   log.info("Request from client : " + requestObject.toString());
  } catch (IOException ioe) {
   log.error(ioe);
  }
 }
}
Common POJO to parse from and to parse to.
package omni.commons.core;

import java.util.Map;

import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class Request {

 private String commandName;
 private Map<String, String> properties;

 public String getCommandName() {
  return commandName;
 }

 public void setCommandName(String commandName) {
  this.commandName = commandName;
 }

 public Map getProperties() {
  return properties;
 }

 public void setProperties(Map<String, String> properties) {
  this.properties = properties;
 }

 @Override
 public String toString() {
  ObjectMapper mapper = JsonFactory.create();
  String formattedProperties = mapper.writeValueAsString(properties);
  return "Request [commandName=" + commandName + ", properties=" + formattedProperties + "]";
 }
}
Dependencies in pom.xml

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
  <junit.version>4.12</junit.version>
  <l4j.version>1.2.17</l4j.version>
 </properties>

 <dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>${junit.version}</version>
   <scope>test</scope>
  </dependency>

  <dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>${l4j.version}</version>
  </dependency>

  <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-configuration2</artifactId>
   <version>2.1.1</version>
  </dependency>
  <dependency>
   <groupId>commons-beanutils</groupId>
   <artifactId>commons-beanutils</artifactId>
   <version>1.9.3</version>
  </dependency>

  <dependency>
   <groupId>org.json</groupId>
   <artifactId>json</artifactId>
   <version>20170516</version>
  </dependency>

  <dependency>
   <groupId>io.fastjson</groupId>
   <artifactId>boon</artifactId>
   <version>0.33</version>
  </dependency>
 </dependencies>

No comments:

Post a Comment

Bottom Ad [Post Page]