Skip to content

Commit

Permalink
1.0.0.alpha 7 release
Browse files Browse the repository at this point in the history
  • Loading branch information
andreabattaglia committed Sep 18, 2021
1 parent d3b044b commit 2169d16
Show file tree
Hide file tree
Showing 19 changed files with 156 additions and 67 deletions.
1 change: 0 additions & 1 deletion build.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#!/bin/sh

echo "Edge - Machinery Service"
./mvnw clean package -U -Pnative -Dquarkus.native.container-build=true
docker rmi quay.io/qiotmanufacturing/edge-machinery:1.0.0-alpha7 --force
docker build -f src/main/docker/Dockerfile.native -t quay.io/qiotmanufacturing/edge-machinery:1.0.0-alpha7 .
Expand Down
26 changes: 19 additions & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
<modelVersion>4.0.0</modelVersion>
<groupId>io.qiot.manufacturing.edge</groupId>
<artifactId>machinery-service</artifactId>
<version>1.0.0.alpha7-SNAPSHOT</version>
<version>1.0.0.alpha7</version>
<parent>
<groupId>io.qiot.manufacturing</groupId>
<artifactId>parent</artifactId>
<version>1.0.0.alpha7-SNAPSHOT</version>
<version>1.0.0.alpha7</version>
</parent>
<scm>
<connection>scm:git:https://github.com/qiot-project/qiot-manufacturing-edge-machinery.git</connection>
Expand Down Expand Up @@ -46,24 +46,36 @@
<dependency>
<groupId>io.qiot.manufacturing.all</groupId>
<artifactId>domain-model</artifactId>
<version>1.0.0.alpha7-SNAPSHOT</version>
<version>1.0.0.alpha7</version>
</dependency>
<dependency>
<groupId>io.qiot.manufacturing.factory</groupId>
<artifactId>domain-model</artifactId>
<version>1.0.0.alpha7-SNAPSHOT</version>
<version>1.0.0.alpha7</version>
</dependency>
<dependency>
<groupId>io.qiot.manufacturing.all</groupId>
<artifactId>utilities</artifactId>
<version>1.0.0.alpha7-SNAPSHOT</version>
<version>1.0.0.alpha7</version>
</dependency>
<dependency>
<groupId>io.qiot.manufacturing.factory</groupId>
<artifactId>utilities</artifactId>
<version>1.0.0.alpha7-SNAPSHOT</version>
<version>1.0.0.alpha7</version>
</dependency>
<!-- REST -->
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jackson</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-openapi</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-swagger-ui</artifactId>
</dependency>
<!-- REST CLIENT -->
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client-jackson</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.qiot.manufacturing.edge.machinery.domain.event.chain;

import io.qiot.manufacturing.commons.domain.productionvalidation.AbstractProductionChainEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.AbstractProductionChainEventDTO;
import io.quarkus.runtime.annotations.RegisterForReflection;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.qiot.manufacturing.edge.machinery.domain.event.chain;

import io.qiot.manufacturing.commons.domain.productionvalidation.AbstractProductionChainEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.AbstractProductionChainEventDTO;
import io.quarkus.runtime.annotations.RegisterForReflection;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/**
*
*/
package io.qiot.manufacturing.edge.machinery.rest;

import java.util.Map;
import java.util.UUID;

import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.slf4j.Logger;

import io.qiot.manufacturing.edge.machinery.domain.ProductionCountersDTO;
import io.qiot.manufacturing.edge.machinery.service.production.CountersService;

/**
* @author andreabattaglia
*
*/
@Path("/counters")
public class CountersResource {

@Inject
Logger LOGGER;
@Inject
CountersService countersService;

@GET
@Path("/")
@Produces(MediaType.APPLICATION_JSON)
public Map<UUID, ProductionCountersDTO> getFactoryId() {
return countersService.getCounters();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package io.qiot.manufacturing.edge.machinery.rest;
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,8 @@ public MachineryDataDTO checkRegistration()
// machineryId = UUID.randomUUID().toString();
// }
// else
machineryId = registrationService.register(machineryData.serial,
machineryData.name, ksPassword);
machineryId = registrationService.register(MACHINERY_SERIAL,
MACHINERY_NAME, ksPassword);

machineryData.id = machineryId.toString();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.qiot.manufacturing.edge.machinery.service.production;

import java.util.Map;
import java.util.UUID;

import io.qiot.manufacturing.all.commons.domain.production.ProductionChainStageEnum;
import io.qiot.manufacturing.edge.machinery.domain.ProductionCountersDTO;

/**
* @author andreabattaglia
Expand All @@ -16,4 +18,6 @@ public interface CountersService {
void recordStageSuccess(int itemId, UUID productLineId, ProductionChainStageEnum stage);

void recordStageFailure(int itemId, UUID productLineId, ProductionChainStageEnum stage);

Map<UUID, ProductionCountersDTO> getCounters();
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,21 @@

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ser.std.StdJdkSerializers;

import io.qiot.manufacturing.all.commons.domain.production.ProductionChainStageEnum;
import io.qiot.manufacturing.edge.machinery.domain.ProductionCountersDTO;
import io.quarkus.runtime.annotations.RegisterForReflection;

/**
* @author andreabattaglia
*
*/
@ApplicationScoped
@RegisterForReflection(targets = {
StdJdkSerializers.AtomicIntegerSerializer.class,
StdJdkSerializers.AtomicBooleanSerializer.class,
StdJdkSerializers.AtomicLongSerializer.class })
public class CountersServiceImpl implements CountersService {

@Inject
Expand All @@ -34,6 +40,11 @@ public CountersServiceImpl() {

productionCounters = new TreeMap<UUID, ProductionCountersDTO>();
}

@Override
public Map<UUID, ProductionCountersDTO> getCounters(){
return productionCounters;
}

@Override
public int recordNewItem(UUID productLineId) {
Expand Down Expand Up @@ -101,12 +112,15 @@ public void recordStageFailure(int itemId, UUID productLineId,
}

void logProductLine() {
try {
String json = MAPPER.writerWithDefaultPrettyPrinter()
.writeValueAsString(productionCounters);
LOGGER.info("Production summary:\n\n{}", json);
} catch (JsonProcessingException e) {
LOGGER.error("an error occurred printing the production summary.");
}
if (LOGGER.isDebugEnabled())
try {
String json = MAPPER.writerWithDefaultPrettyPrinter()
.writeValueAsString(productionCounters);
LOGGER.info("Production summary:\n\n{}", json);
} catch (JsonProcessingException e) {
LOGGER.error(
"An error occurred printing the production summary.",
e);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.qiot.manufacturing.edge.machinery.service.registration;

import javax.validation.Valid;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
Expand All @@ -10,7 +9,7 @@
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

import io.qiot.manufacturing.all.commons.domain.landscape.SubscriptionResponse;
import io.qiot.manufacturing.commons.domain.registration.EdgeSubscriptionRequest;
import io.qiot.manufacturing.factory.commons.domain.registration.EdgeSubscriptionRequest;

/**
* @author andreabattaglia
Expand All @@ -24,6 +23,6 @@ public interface FacilityManagerClient {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public SubscriptionResponse subscribeMachinery(
@Valid EdgeSubscriptionRequest request);
EdgeSubscriptionRequest request);

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,23 @@
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.slf4j.Logger;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;

import io.qiot.manufacturing.all.commons.domain.landscape.SubscriptionResponse;
import io.qiot.manufacturing.all.commons.exception.SubscriptionException;
import io.qiot.manufacturing.commons.domain.registration.EdgeSubscriptionRequest;
import io.qiot.manufacturing.edge.machinery.service.machinery.MachineryService;
import io.qiot.manufacturing.factory.commons.domain.registration.EdgeSubscriptionRequest;

@ApplicationScoped
public class RegistrationServiceImpl implements RegistrationService {
@Inject
Logger LOGGER;

@Inject
ObjectMapper MAPPER;

@ConfigProperty(name = "qiot.runtime.ks.path")
String ksPathString;
Expand All @@ -41,36 +49,64 @@ public class RegistrationServiceImpl implements RegistrationService {
@Override
public UUID register(String serial, String name, String ksPassword)
throws SubscriptionException {
SubscriptionResponse subscriptionResponse = null;
EdgeSubscriptionRequest registerRequest = null;
SubscriptionResponse subscriptionResponse = null;

registerRequest = new EdgeSubscriptionRequest();
registerRequest.serial = serial;
registerRequest.name = name;
registerRequest.keyStorePassword = ksPassword;

try {
String jsonTest=MAPPER.writeValueAsString(registerRequest);
LOGGER.debug(
"Serialized value: {}",
jsonTest);
EdgeSubscriptionRequest registerRequestTest=MAPPER.readValue(jsonTest, EdgeSubscriptionRequest.class);
LOGGER.debug(
"Deserialized value: {}",
registerRequestTest);
} catch (JsonProcessingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}



LOGGER.debug(
"Attempting subscription process with the following data: {}",
registerRequest);

while (subscriptionResponse == null) {
// TODO: put sleep time in application.properties
long sleepTime = 2000;
// while (subscriptionResponse == null) {
// // TODO: put sleep time in application.properties
// long sleepTime = 2000;
// try {
//
// subscriptionResponse = facilityManagerClient
// .subscribeMachinery(registerRequest);
// } catch (Exception e) {
// LOGGER.info(
// "An error occurred registering the machinery. "
// + "Retrying in {} millis.\n Error message: {}",
// sleepTime, e.getMessage());
// try {
// Thread.sleep(sleepTime);
// } catch (InterruptedException ie) {
// Thread.currentThread().interrupt();
// }
// }
// }

try {

subscriptionResponse = facilityManagerClient
.subscribeMachinery(registerRequest);
} catch (Exception e) {
LOGGER.info(
"An error occurred registering the machinery. "
+ "Retrying in {} millis.\n Error message: {}",
sleepTime, e.getMessage());
try {
Thread.sleep(sleepTime);
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
}
"An error occurred registering the machinery. \n Error message: {}",
e.getMessage());
throw new SubscriptionException(e);
}
}

LOGGER.debug("Registratior process results: {}", subscriptionResponse);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
import javax.inject.Inject;

import io.qiot.manufacturing.all.commons.domain.production.ItemDTO;
import io.qiot.manufacturing.commons.domain.productionvalidation.AbstractValidationRequestEventDTO;
import io.qiot.manufacturing.commons.domain.productionvalidation.ColoringValidationRequestEventDTO;
import io.qiot.manufacturing.commons.domain.productionvalidation.PackagingValidationRequestEventDTO;
import io.qiot.manufacturing.commons.domain.productionvalidation.PrintingValidationRequestEventDTO;
import io.qiot.manufacturing.commons.domain.productionvalidation.WeavingValidationRequestEventDTO;
import io.qiot.manufacturing.edge.machinery.service.machinery.MachineryService;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.AbstractValidationRequestEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.ColoringValidationRequestEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.PackagingValidationRequestEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.PrintingValidationRequestEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.WeavingValidationRequestEventDTO;

/**
* @author andreabattaglia
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@
import com.fasterxml.jackson.databind.ObjectMapper;

import io.qiot.manufacturing.all.commons.domain.cdi.BootstrapCompletedEventDTO;
import io.qiot.manufacturing.commons.domain.productionvalidation.ValidationResponseDTO;
import io.qiot.manufacturing.edge.machinery.domain.event.chain.ValidationFailedEvent;
import io.qiot.manufacturing.edge.machinery.domain.event.chain.ValidationSuccessfullEvent;
import io.qiot.manufacturing.edge.machinery.service.machinery.MachineryService;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.ValidationResponseDTO;
import io.qiot.manufacturing.factory.commons.util.producer.ValidationReplyToQueueNameProducer;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;

import io.qiot.manufacturing.all.commons.domain.production.ProductionChainStageEnum;
import io.qiot.manufacturing.commons.domain.productionvalidation.AbstractValidationRequestEventDTO;
import io.qiot.manufacturing.edge.machinery.service.machinery.MachineryService;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.AbstractValidationRequestEventDTO;
import io.qiot.manufacturing.factory.commons.util.producer.ValidationReplyToQueueNameProducer;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import org.slf4j.Logger;

import io.qiot.manufacturing.all.commons.domain.production.ProductionChainStageEnum;
import io.qiot.manufacturing.commons.domain.productionvalidation.ColoringValidationRequestEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.ColoringValidationRequestEventDTO;

/**
* @author andreabattaglia
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import org.slf4j.Logger;

import io.qiot.manufacturing.all.commons.domain.production.ProductionChainStageEnum;
import io.qiot.manufacturing.commons.domain.productionvalidation.PackagingValidationRequestEventDTO;
import io.qiot.manufacturing.factory.commons.domain.productionvalidation.PackagingValidationRequestEventDTO;

/**
* @author andreabattaglia
Expand Down
Loading

0 comments on commit 2169d16

Please sign in to comment.