code:     public void testPrototypeFactoryPublicSerialization() throws Exception {
          final Integer proto = Integer.valueOf(9);
          final Factory<Integer> factory = FactoryUtils.prototypeFactory(proto);
          assertNotNull(factory);
          final Integer created = factory.create();
          assertTrue(proto != created);
          assertEquals(proto, created);
  
          // check serialisation works
          final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
          final ObjectOutputStream out = new ObjectOutputStream(buffer);
          out.writeObject(factory);
          out.close();
          final ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
          in.readObject();
          in.close();
      }
  
      @Test
  