spi4j / pacman

Pacman : Générateur de code pour applications JavaEE s'appuyant sur le Framework Spi4J (Https://github.com/spi4j/spi4j)
Other
4 stars 1 forks source link

Generateur SOA : erreur si 2 service même nom dans 2 package différents. #13

Open pg1971 opened 8 months ago

pg1971 commented 8 months ago

Dans le projet en PJ on a :

Lors de la générations SOA on se retrouve avec :

dans le package de test[nomProject].business.api.gestionvideoon a une classe SerieServiceTestdont une méthode est en erreur du faite des service SerieServicedans package. Code de la classe SerieServiceTest l'erreur se trouve dans la méthode setUpBeforeClass ()au niveau de la récupération du service

package fr.gvideo.business.api.gestionvideo;
// Start of user code for imports

import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.fail;

import java.util.List;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import fr.gvideo.business.GvideoUserBusiness;
import fr.gvideo.business.api.gvideo.SerieAttributesEnum;
import fr.gvideo.business.api.gvideo.SerieDto;
import fr.gvideo.matching.GvideoUserMatching;
import fr.gvideo.persistence.GvideoParamPersistence;
import fr.gvideo.persistence.GvideoUserPersistence;
import fr.spi4j.business.dto.DtoUtil;
import fr.spi4j.tua.BeanTester_Abs;

// End of user code

/**
 * Classe de test du service 'SerieService'.
 * @author safr@n
 */
// Start of user code Annotation for class
// End of user code
public class SerieServiceTest  extends BeanTester_Abs
{

   /** Le 'UserPersistence' de l'application. */
   private static GvideoUserPersistence userPersistence;

   /** Le 'SerieService' testé. */
   private static SerieService service;

   /** L'id du 'SerieDto' stocké en base. */
   private static Long crudId;

   /**
    * Définition du crudId.
    * @param crudId
    *           le crudId
    */
   public static void setCrudId (final Long crudId)
   {
      SerieServiceTest.crudId = crudId;
   }

   /**
    * Méthode d'initialisation de la classe de tests.
    */
   @BeforeAll
   public static void setUpBeforeClass ()
   {
      userPersistence = GvideoParamPersistence.getUserPersistence ();
      service = GvideoUserBusiness.getSerieService ();

      // Start of user code set up before class
      // End of user code
   }

Au niveau de la classe GvideoUserBusinesson a la méthode initBindingsqui

   public void initBindings () // NOPMD
   {
      // dans cette factory de la partie commune entre un client et le serveur
      // on ne référence pas les classes d'implémentations "serveur" des services
      // pour ne pas avoir d'erreur de compilation (et pour ne pas avoir ClassNotFoundException à l'exécution)
      final EpisodeService episodeService = wrapService(EpisodeService.class, "fr.gvideo.business.server.gvideo.EpisodeServiceImpl");
      bind(EpisodeService.class, episodeService);

      final GenreService genreService = wrapService(GenreService.class, "fr.gvideo.business.server.gvideo.GenreServiceImpl");
      bind(GenreService.class, genreService);

      final PaysService paysService = wrapService(PaysService.class, "fr.gvideo.business.server.gvideo.PaysServiceImpl");
      bind(PaysService.class, paysService);

      final SaisonService saisonService = wrapService(SaisonService.class, "fr.gvideo.business.server.gvideo.SaisonServiceImpl");
      bind(SaisonService.class, saisonService);

      final SerieService serieService = wrapService(SerieService.class, "fr.gvideo.business.server.gestionvideo.SerieServiceImpl");
      bind(SerieService.class, serieService);

   }

Mais on a un PB avec son bloc import car on a l'import `fr.gvideo.business.api.gvideo.SerieService `qui va avec `fr.gvideo.business.server.gestionvideo.SerieServiceImpl`

// Start of user code for imports

import fr.gvideo.business.api.gvideo.EpisodeService; import fr.gvideo.business.api.gvideo.GenreService; import fr.gvideo.business.api.gvideo.PaysService; import fr.gvideo.business.api.gvideo.SaisonService; import fr.gvideo.business.api.gvideo.SerieService; import fr.spi4j.business.UserBusiness_Abs; import fr.spi4j.exception.Spi4jRuntimeException; import fr.spi4j.persistence.UserPersistence_Abs;

// End of user code