
io.github.factoryfx.microservice.rest.MicroserviceResourceFactory Maven / Gradle / Ivy
package io.github.factoryfx.microservice.rest;
import io.github.factoryfx.factory.FactoryBase;
import io.github.factoryfx.factory.attribute.dependency.FactoryPolymorphicAttribute;
import io.github.factoryfx.server.Microservice;
import io.github.factoryfx.server.user.nop.NoUserManagement;
import io.github.factoryfx.server.user.UserManagement;
/**
* usage example: (in a FactoryTreeBuilder)
*
* {@code
new JettyServerBuilder<>(new ShopJettyServerFactory())
.withHost("localhost").withPort(8089)
.withResource(context.getUnsafe(MicroserviceDomResourceFactory.class))
...
factoryTreeBuilder.addFactory(MicroserviceDomResourceFactory.class, Scope.SINGLETON, context -> {
return new MicroserviceDomResourceFactory();
});
* }
*
* (the messed up generics are caused by java limitations)
*
* @param root
*/
public class MicroserviceResourceFactory> extends FactoryBase,R> {
public final FactoryPolymorphicAttribute userManagement = new FactoryPolymorphicAttribute().labelText("resource").nullable();
public MicroserviceResourceFactory(){
configLifeCycle().setCreator(() -> {
UserManagement userManagementInstance = userManagement.instance();
if (userManagementInstance==null) {
userManagementInstance=new NoUserManagement();
}
Microservice,R> microservice = utility().getMicroservice();
return new MicroserviceResource<>(microservice, userManagementInstance);
});
config().setDisplayTextProvider(()->"Resource");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy