Instalación
XBuilder puede ser usado y descargado desde el repositorio central de Maven. Las versiones pueden ser consultadas en:
Standalone
Ideal para aplicaciones de escritorio o aplicaciones desplegadas en servidores como Tomcat.
Si usas Maven: en tu archivo pom.xml
agrega:
<dependency>
<groupId>io.github.project-openubl</groupId>
<artifactId>xsender</artifactId>
<version>${xsender.version}</version>
</dependency>
Inicializa CamelContext y utilizalo con XSender
public class XSenderController {
public String test() {
CamelContext camelContext = StandaloneCamel.getInstance()
.getMainCamel()
.getCamelContext();
SunatResponse sendFileSunatResponse = camelContext.createProducerTemplate()
.requestBodyAndHeaders(
Constants.XSENDER_BILL_SERVICE_URI,
camelData.getBody(),
camelData.getHeaders(),
SunatResponse.class
);
}
Quarkus
Para aplicaciones hechas en Quarkus
Si usas Maven: en tu archivo pom.xml
agrega:
<dependency>
<groupId>io.github.project-openubl</groupId>
<artifactId>quarkus-xsender</artifactId>
<version>${xsender.version}</version>
</dependency>
Injecta CamelContext y utilizalo con XSender
@ApplicationScoped
public class XSenderController {
@Inject
private CamelContext camelContext;
public String test() {
SunatResponse sendFileSunatResponse = camelContext.createProducerTemplate()
.requestBodyAndHeaders(
Constants.XSENDER_BILL_SERVICE_URI,
camelData.getBody(),
camelData.getHeaders(),
SunatResponse.class
);
}
Spring Boot
Para aplicaciones hechas en Spring Boot
Si usas Maven: en tu archivo pom.xml
agrega:
<dependency>
<groupId>io.github.project-openubl</groupId>
<artifactId>spring-boot-xsender</artifactId>
<version>${xsender.version}</version>
</dependency>
Configura la clase principal de Spring Boot
@ComponentScan
@ComponentScan("io.github.project.openubl.spring.xsender.runtime")
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Injecta CamelContext y utilizalo con XSender
public class XSenderController {
@Autowired
private CamelContext camelContext;
public String test() {
SunatResponse sendFileSunatResponse = camelContext.createProducerTemplate()
.requestBodyAndHeaders(
Constants.XSENDER_BILL_SERVICE_URI,
camelData.getBody(),
camelData.getHeaders(),
SunatResponse.class
);
}
Gradle
Si usas Gradle: en tu archivo build.gradle
agrega:
compile group: 'io.github.project-openubl', name: 'xsender', version: 'VERSION'
Configuración extra
XSender usa Apache CXF y Gradle no es capáz de descargar algunas dependencies por lo tanto es necesario agregar dependencias manualmente. Para mayor información lee Apache CXF missing dependencies when comming from Gradle
runtimeOnly("jakarta.xml.soap:jakarta.xml.soap-api:1.4.2")
runtimeOnly("jakarta.xml.ws:jakarta.xml.ws-api:2.3.3")
runtimeOnly("jakarta.annotation:jakarta.annotation-api:1.3.5")