}
try{
// TODO Crear notificació que permeti la descàrrega de versions completes
// No cal assignar-li ID perquè serà una notificació de tipus únic
SimpleNotification notification = new SimpleNotification();
notification.setCaption("Tasca de comprobació d'actualitzacions");
notification.setMessage("Hi ha disponible una nova versió de l'aplicació per descarregar");
notification.setIconPath("/org/fenrir/yggdrasil/ui/icons/upgrade_22.png");
eventNotificationService.notifyNamedEvent(IApplicationNotificationListener.class,
IApplicationNotificationListener.EVENT_SINGLE_NOTIFICATION_ID, notification);
}
catch(Exception e){
log.error("Error reportant notificació: {}", e.getMessage(), e);
// TODO Mostrar error per pantalla
}
}
// En el cas que es pugui actualitzar directament, es comproven les actualitzacions dels artifacts
else{
Map.Entry<String, String> artifactsEntry = (Map.Entry<String, String>)updates.entrySet().toArray()[0];
List<ArtifactUpdateDescriptor> artifactDescriptors = updateService.checkArtifacts(artifactsEntry.getKey(), artifactsEntry.getValue());
if(!artifactDescriptors.isEmpty()){
if(log.isDebugEnabled()){
log.debug("S'han trobat {} components per actualitzar", artifactDescriptors.size());
}
updateService.createActionsFile(artifactDescriptors);
IApplicationNotification notification = (IApplicationNotification)ApplicationContext.getInstance().getRegisteredComponent(IApplicationNotification.class, NotificationEventConstants.NOTIFICATION_APPLICATION_UPDATED);
eventNotificationService.notifyNamedEvent(IApplicationNotificationListener.class,
IApplicationNotificationListener.EVENT_SINGLE_NOTIFICATION_ID, notification);
}
else{
if(log.isDebugEnabled()){
log.debug("No s'han trobat noves actualitzacions per l'aplicació");
}
}
}
}
catch(Exception e){
log.error("Error buscant actualitzacions de l'aplicació: {}", e.getMessage(), e);
IApplicationNotification notification = (IApplicationNotification)ApplicationContext.getInstance().getRegisteredComponent(IApplicationNotification.class, NotificationEventConstants.NOTIFICATION_ERROR);
notification.setMessage("Error a l'execució de la tasca d'actualització de l'aplicació");
notification.setParameter(NotificationEventConstants.NOTIFICATION_PARAMETER_ERROR_DESCRIPTION, "Error a l'execució de la tasca d'actualització de l'aplicació");
notification.setParameter(NotificationEventConstants.NOTIFICATION_PARAMETER_ERROR_THROWABLE, e);
try{
eventNotificationService.notifyNamedEvent(IApplicationNotificationListener.class,
IApplicationNotificationListener.EVENT_SINGLE_NOTIFICATION_ID, notification);
}
catch(Exception e2){