@Override protected Optional<Instantiator> loadInstantiators() throws ServiceException { Optional<Instantiator> spiInstantiator = super.loadInstantiators(); List<Instantiator> springInstantiators = context .getBeansOfType(Instantiator.class).values().stream() .filter(instantiator -> instantiator.init(this)) .collect(Collectors.toList()); if (spiInstantiator.isPresent() && !springInstantiators.isEmpty()) { throw new ServiceException( "Cannot init VaadinService because there are multiple eligible " + "instantiator implementations: Java SPI registered instantiator " + spiInstantiator.get() + " and Spring instantiator beans: " + springInstantiators); } if (!spiInstantiator.isPresent() && springInstantiators.isEmpty()) { Instantiator defaultInstantiator = new SpringInstantiator(this, context); defaultInstantiator.init(this); return Optional.of(defaultInstantiator); } return spiInstantiator.isPresent() ? spiInstantiator : springInstantiators.stream().findFirst(); }
@Override protected Optional<Instantiator> loadInstantiators() throws ServiceException { Optional<Instantiator> spiInstantiator = super.loadInstantiators(); List<Instantiator> springInstantiators = context .getBeansOfType(Instantiator.class).values().stream() .filter(instantiator -> instantiator.init(this)) .collect(Collectors.toList()); if (spiInstantiator.isPresent() && !springInstantiators.isEmpty()) { throw new ServiceException( "Cannot init VaadinService because there are multiple eligible " + "instantiator implementations: Java SPI registered instantiator " + spiInstantiator.get() + " and Spring instantiator beans: " + springInstantiators); } if (!spiInstantiator.isPresent() && springInstantiators.isEmpty()) { Instantiator defaultInstantiator = new SpringInstantiator(this, context); defaultInstantiator.init(this); return Optional.of(defaultInstantiator); } return spiInstantiator.isPresent() ? spiInstantiator : springInstantiators.stream().findFirst(); }