private void writePersistenceUnit(Field field) throws XMLStreamException {
   PersistenceUnit persistenceUnit = field.getAnnotation(PersistenceUnit.class);
   if (persistenceUnit != null) {
     writer.writeCharacters("    ");
     writer.writeEmptyElement("jpa", "context", NS_JPA);
     writer.writeAttribute("unitname", persistenceUnit.unitName());
     writer.writeAttribute("property", field.getName());
     writer.writeCharacters("\n");
   }
 }
    @Override
    public Object resolve(final Injectee injectee, final ServiceHandle<?> root) {
      if (!injectee.getRequiredType().equals(EntityManagerFactory.class)) {
        return null;
      }

      final PersistenceUnit annotation = injectee.getParent().getAnnotation(PersistenceUnit.class);
      final String unitName = annotation.unitName();

      if (!persistenceUnits.containsKey(unitName)) {
        throw new ContainerException(
            LocalizationMessages.PERSISTENCE_UNIT_NOT_CONFIGURED(unitName));
      }

      return Proxy.newProxyInstance(
          this.getClass().getClassLoader(),
          new Class[] {EntityManagerFactory.class},
          new ThreadLocalNamedInvoker<EntityManagerFactory>(persistenceUnits.get(unitName)));
    }