/src/com/googlecode/jmxtrans/util/DatagramSocketFactory.java

http://jmxtrans.googlecode.com/ · Java · 45 lines · 24 code · 8 blank · 13 comment · 0 complexity · 2b868e254e352d4865afec3dfdf97fd5 MD5 · raw file

  1. package com.googlecode.jmxtrans.util;
  2. import java.net.DatagramSocket;
  3. import org.apache.commons.pool.BaseKeyedPoolableObjectFactory;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. /**
  7. * Allows us to pool socket connections.
  8. */
  9. public class DatagramSocketFactory extends BaseKeyedPoolableObjectFactory {
  10. @SuppressWarnings("unused")
  11. private static final Logger log = LoggerFactory.getLogger(DatagramSocketFactory.class);
  12. /** constructor */
  13. public DatagramSocketFactory() {}
  14. /**
  15. * Creates the socket and the writer to go with it.
  16. */
  17. @Override
  18. public Object makeObject(Object key) throws Exception {
  19. return new DatagramSocket();
  20. }
  21. /**
  22. * Closes the socket.
  23. */
  24. @Override
  25. public void destroyObject(Object key, Object obj) throws Exception {
  26. DatagramSocket socket = (DatagramSocket) obj;
  27. socket.close();
  28. }
  29. /**
  30. * Validates that the socket is good.
  31. */
  32. @Override
  33. public boolean validateObject(Object key, Object obj) {
  34. DatagramSocket socket = (DatagramSocket) obj;
  35. return !socket.isClosed();
  36. }
  37. }