Emergency Services V2: Installation Guide

I’m back again with another post about the Emergency Services Application to show the new features that we just add and how to get started with the project. Some new modules were added but the start up time was reduced dramatically. During this posts I will show how to download, start and use the application in your machine.

Introduction

After doing the first release of the second version we (@calcacuervo, @ilesteban and @salaboy) were focused on allowing the builds to be much easier and correct some well known issues. We also work to get the iPhone Accelerometer and the Android Accelerometer exposed with some applications to be able to use the generated event stream to simulate the patient vital sign.

This application was built to show how to architect applications using BPM, a Rule Engine and Complex Event Processing. The aim of the application is to provide a generic architecture to implement flexible solution t hat uses the previous mentioned topics as basic principles.

The application is right now decoupled in 7 logical modules that are responsible for different activities. We tried to maintain as decoupled as possible each module to provide a flexible and pluggeable architecture. If you don’t like the implementation of one of these modules, you can easily replace it for one that cover all your needs.

Each module is a functional block that allow the overall application to run and interact with different services. This allows you to customize each module configuration to run smoothly on your specific environment.

Main Modules Introduction

The following sections describe each module responsibility:

Project Modules

Model

This module contains your domain objects that represent the information that your application is interested to handle. This module now contains some extra utility classes and some WorkItemHandlers that will be used by the core module. I’m planning to create a separate module with these technical assets, but for now they can live there for practical reasons.

Core

The core module contains all the Domain Specific Services interfaces and implementations. This project can be expanded as a multi module pom project in the future for storing one single service per project, allowing more flexibility for deployments.

World UI

This module allows us to see what is happening in the real world. You need to think about this module as a view of our world that allows to generate interactions. For real implementations this module can be seen as external sources of events that will be directly plugged to the core module with external connectors

Task Lists UI

We currently have two different implementations of this module. This module represent the software that is being used inside the Emergency Services company. You will find in the project source code that a Standalone implementation and a Web Application provide the same functionality. Two more implementations are being created for demonstrating best practices and for mobile phones.

Running the Application

We first need to download the source code using git from: https://github.com/Salaboy/emergency-service-drools-app

Once you get the source code in your machine go inside the project structure and run:

mvn clean install

This will build all the modules and allow you to start playing with the application. If you get problems with maven dependencies you need to add a new certificate to your JDK to allow maven download snapshots from Plug Tree (org) repositories hosted in cloudbees.com. I strongly recommend you doing this to get always the latest version of our projects.

Make sure that java trusts the PlugTree repository by adding it’s public key to the cacerts file. To do that, follow these steps:

  • Browse to  https://repository-plugtree-org.forge.cloudbees.com/snapshot/
  • Select “Tools->Page Info” from the menu.
  • Select the “Security” icon and then click the “View Certificate” button.
  • Select the “Details” tab.
  • In the “Certificate Hierarchy” pane, select “*.forge.cloudbees.com” and then click the “Export…” button at the bottom of the dialog.
  • Save the certificate in a file (I used “publickey.forge.cloudbees.com”) and select the “X.509 Certificate (PEM)” format.
  • Execute the following command (you may need to adjust the arguments for alias, keystore, and file based on your installation and where you saved the public key):
sudo keytool -import -alias mail.redhat.com -keystore /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/security/cacerts -file ~/publickey.forge.cloudbees.com

When prompted, the default keystore password is “changeit”. ” -> copied from the project wiki: https://github.com/Salaboy/emergency-service-drools-app/wiki/Fedora-14-install

The Run Module

We have developed a special module that facilitates running all the application modules. we are planing to create a graphical interface to start up all the modules but it is still work in progress. Right now you can start the application using maven and one terminal per module that you want to start up.

To start up the application there are are some dependency restrictions. We obviously need to start the application core before starting the UIs.
If we are planing to use an external event generator (sensor) we need to bind it before generating emergencies in the world UI application. If we are not planning to use external sensors we can go ahead without running the sensors module.

Let’s run the following modules:
emergency-service-core, emergency-service-world-ui, emergency-service-tasklist-ui-web
For starting the application you should open three different terminals/consoles in your computer and have maven installed.

From the first terminal, standing inside the run/ module you need to run:
mvn -Pcore

Once core is started you can start world ui and task lists web ui.

From a different terminal you need to run: mvn -Pworld-ui
From a different terminal you need to run: mvn -Ptasklists-ui-web

Interacting with the application

Now that we have the main three modules running we can start interacting with the application. Let’s create and emergency and let’s try to solve it. The following video guides you through the Heart Attack Scenario.

Video direct URL: http://www.vimeo.com/25374405

Useful URLs

Git: http://git-scm.com/

Maven: http://maven.apache.org/download.html

Emergency Services Source Code: https://github.com/Salaboy/emergency-service-drools-app

To clone the source code (for having a local copy of the source code) run in your terminal:

git clone git://github.com/Salaboy/emergency-service-drools-app.git

Task Lists UI – Web Implementation: http://localhost:8081/emergency-services/

Extra Modules

I will be covering the following modules in the next blog posts:

  • Dashboard UI
  • Sensors
  • Documentation

Sum Up

About these ads
Tagged , , , , , , , , , , , , , , , , , , , , , , ,

26 thoughts on “Emergency Services V2: Installation Guide

  1. Gary Struthers says:

    Thank you again for providing these

    After adding Maven proxies to get all the jar files I get compile errors

    [INFO] Installing /Users/gs/drools/emergency-service-drools-app/emergency-service-taskslists-ui-swing/pom.xml to /Users/gs/.m2/repository/com/wordpress/salaboy/emergencyservice/emergency-service-taskslists-ui-swing/1.0-SNAPSHOT/emergency-service-taskslists-ui-swing-1.0-SNAPSHOT.pom
    [INFO]
    [INFO] ————————————————————————
    [INFO] Building Emergency Service – Tasks List UI (Web) 1.0-SNAPSHOT
    [INFO] ————————————————————————
    [INFO]
    [INFO] — maven-resources-plugin:2.4.3:resources (default-resources) @ emergency-service-taskslists-ui-web —
    [INFO] Using ‘UTF-8′ encoding to copy filtered resources.
    [INFO] Copying 7 resources
    [INFO]
    [INFO] — maven-compiler-plugin:2.3.2:compile (default-compile) @ emergency-service-taskslists-ui-web —
    [INFO] Compiling 9 source files to /Users/gs/drools/emergency-service-drools-app/emergency-service-taskslists-ui-web/target/classes
    [INFO] ————————————————————-
    [ERROR] COMPILATION ERROR :
    [INFO] ————————————————————-
    [ERROR] /Users/gs/drools/emergency-service-drools-app/emergency-service-taskslists-ui-web/src/main/java/com/wordpress/salaboy/emergencyservice/web/task/AbstractTaskFormController.java:[17,62] package com.wordpress.salaboy.smarttasks.formbuilder.api.output does not exist

  2. salaboy says:

    Hi Gary, did you add the certificates to the plugtree-org repositories?

    “Make sure that java trusts the PlugTree repository by adding it’s public key to the cacerts file. To do that, follow these steps:

    Browse to https://repository-plugtree-org.forge.cloudbees.com/snapshot/
    Select “Tools->Page Info” from the menu.
    Select the “Security” icon and then click the “View Certificate” button.
    Select the “Details” tab.
    In the “Certificate Hierarchy” pane, select “*.forge.cloudbees.com” and then click the “Export…” button at the bottom of the dialog.
    Save the certificate in a file (I used “publickey.forge.cloudbees.com”) and select the “X.509 Certificate (PEM)” format.
    Execute the following command (you may need to adjust the arguments for alias, keystore, and file based on your installation and where you saved the public key):

    sudo keytool -import -alias mail.redhat.com -keystore /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/security/cacerts -file ~/publickey.forge.cloudbees.com

    When prompted, the default keystore password is “changeit”. ”

    Sorry, it was my fault, you should do the steps with this repository: https://repository-plugtree-org.forge.cloudbees.com/snapshot/
    and not this one: https://repository-plugtree.forge.cloudbees.com/snapshot/
    I’m updating now the post

    Cheers

  3. Gary Struthers says:

    My settings.xml re-directs all dependencies to my installation of Nexus so others in my organization won’t have to repeat this. I added proxies for the repositories in your pom and in the pom for slick. I hope someday everything will be in Maven Central. I saw your notes on the certificate but Nexus proxies them all right without it. I think I am getting all the jars now. I no longer get unsatisfied dependency errors. I am only seeing compile errors.

  4. salaboy says:

    Yes it’s a temporal issue.. It’s terrible but alfresco’s repo goes down very often.

  5. Ok server is up but I ran into other issues. This may be because I am using mvn2 but Im unsure.

    The unit-tests need to be given at least one @Test method. I forked and will submit a pull request soon.
    Running the world-ui had to be started with an explicit goals $ mvn -Pworld-ui dependency:unpack exec:exec

  6. salaboy says:

    Hmm that’s weird.. you should use maven 3.0.3. and inside the run module you should run mvn -Pworld-ui.
    I will be waiting your pull request! if you want to participate adding more features please let me know.

  7. Jack says:

    where is the video? I dont know how to play the demo…

    • salaboy says:

      Hi Jack, You should be able to see the video that is hosted on vimeo. Sometimes, depending on your browser the vimeo player is not loaded correctly. I will add the link after the video frame just for you to access directly through the vimeo page.
      Cheers

  8. Franklin says:

    Thanks a lot for the sample. Am having a look at the HornetQ connector. However when I click on the Call 0->Phone Ringing!, I get the following NullPointerException

    Problem accessing /emergency-services/task/op/operator/Default/99b11f97-87e3-4a53-b471-f4f8d965ee11-@-1/Call0-%3EPhoneRinging!. Reason:

    INTERNAL_SERVER_ERROR
    Caused by:

    java.lang.NullPointerException
    at java.io.Reader.(Reader.java:61)
    at java.io.InputStreamReader.(InputStreamReader.java:55)
    at com.wordpress.salaboy.smarttasks.formbuilder.model.GraphTaskOperations.(GraphTaskOperations.java:48)
    at com.wordpress.salaboy.smarttasks.formbuilder.configuration.BuilderDefinitionsProvider.getTaskOperationsDefinition(BuilderDefinitionsProvider.java:82)
    at com.wordpress.salaboy.smarttasks.formbuilder.api.SmartTaskBuilder.getTaskOperations(SmartTaskBuilder.java:282)
    at com.wordpress.salaboy.emergencyservice.web.task.AbstractTaskFormController.taskInfo(AbstractTaskFormController.java:84)
    at com.wordpress.salaboy.emergencyservice.web.task.EmergencyOperatorController.taskInfo(EmergencyOperatorController.java:61)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)

    Any hints into where I should look. Got to figure out , its not being able to find a configuration file.But which one and where ?

    InputStream taskConfigurationFile = BuilderDefinitionsProvider.class.getClassLoader().getResourceAsStream(“operationDefinitions” + System.getProperty(“file.separator”) + fileName + “.config.json”);
    try
    {
    TaskOperationsDefinition operationsDefinitions = new GraphTaskOperations(taskConfigurationFile);

    }
    catch
    {

    }

    Best Regards,
    Franklin

  9. Suesas says:

    I got a lot of messages like that
    Downloading: https://repository-plugtree-org.forge.cloudbees.com/snapshot/org/jbpm/jbpm-workitems/5.2.0-SNAPSHOT/maven-metadata.xml
    [WARNING] Could not transfer metadata org.jbpm:jbpm-workitems:5.2.0-SNAPSHOT/maven-metadata.xml from/to PlugTree (https://repository-plugtree-org.forge.cloudbees.com/snapshot/): Not authorized, ReasonPhrase:Authorization Required.

    I’ve followed the instructions about keytool correctly, but something happens

    • salaboy says:

      Hi Suesas,
      It looks like the plugtree repository was wipe out -> http://repository-plugtree-org.forge.cloudbees.com/
      You shouldn’t be getting errors with that artifact, because that artifact should be also located inside jboss repositories.
      Can you check your local maven repository to see if you have that artifact? I imagine that you can also have troubles with smart-tasks artifacts.
      If you have those problems you can just download/clone the smart-tasks project (http://github.com/salaboy/smart-tasks), build it with mvn clean install and then you will not need to access the plugtree repositories anymore.

      Cheers

  10. Tu Bo says:

    Hi,

    I have downloaded the demo (version 0.3) with Drools 5.4.0.Final and jbpm5.2, and tried to run testcase “GenericEmergencyProcedureTest” and get the following error. Please help to show me what happened.

    Thanks,
    Tu Bo.
    >>>> I’m creating the DefaultHeartAttackProcedure procedure for emergencyId = Emergency-6694b7da-6c34-4532-8930-5be2bcefce62
    This InstanceId (just generated) = f1b0c1bc-616b-46ff-b59c-7838692577fe
    java.lang.NullPointerException
    at org.drools.command.runtime.KBuilderSetPropertyCommand.execute(KBuilderSetPropertyCommand.java:42)
    at org.drools.command.runtime.KBuilderSetPropertyCommand.execute(KBuilderSetPropertyCommand.java:27)
    at org.drools.grid.impl.GridNodeServer$1$1.execute(GridNodeServer.java:135)
    at org.drools.grid.impl.GridNodeServer.messageReceived(GridNodeServer.java:65)
    at org.drools.grid.impl.MultiplexSocket.messageReceived(MultiplexSocket.java:33)
    at org.drools.grid.remote.mina.MinaIoHandler.messageReceived(MinaIoHandler.java:69)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:716)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
    at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:427)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:245)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
    at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:692)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:645)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:634)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:66)
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1078)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    >>> Disconnecting Client = tasksQueue

  11. fuetit says:

    Hello everybody!

    I can’t run or compile Emergency Service project for some months, because I get a “Access denied” from this repository “https://repository-plugtree-org.forge.cloudbees.com/snapshot/”

    However I use:
    – alias: mail.redhat.com
    – password: changeit

    Downloading: https://repository-plugtree-org.forge.cloudbees.com/snapshot/org/drools/knowledge-api/5.3.1-SNAPSHOT/maven-metadata.xml
    [WARNING] Could not transfer metadata org.drools:knowledge-api:5.3.1-SNAPSHOT/maven-metadata.xml from/to PlugTree (https://repository-plugtree-org.forge.cloudbees.com/snapshot/): Access denied to https://repository-plugtree-org.forge.cloudbees.com/snapshot/org/drools/knowledge-api/5.3.1-SNAPSHOT/maven-metadata.xml. Error code 401, Authorization Required

    • salaboy says:

      Hi, thanks for the interest. I will be cleaning the code soon. I didn’t get time yet to review exactly what is happening with those servers.
      If you want to build the project as it is, I suggest you to clone the smart tasks projects and build it locally to resolve those dependencies.
      Everything should work if you do that and don’t rely on the cloudbees build for that.
      Cheers

  12. fuetit says:

    Thanks for your response

    I try that

  13. fuetit says:

    Hi Salaboy !

    I get this exception into the Core console, after click on “complete” button with “control” actor (Tasklists Web UI) :

    Exception in thread “Thread-38″ java.lang.RuntimeException: Client Exception with class class org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1 using port 5446
    at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:118)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.IllegalArgumentException: Unexpected collection type: class com.wordpress.salaboy.model.SelectedProcedures
    at org.jbpm.workflow.instance.node.ForEachNodeInstance$ForEachSplitNodeInstance.evaluateCollectionExpression(ForEachNodeInstance.java:134)
    at org.jbpm.workflow.instance.node.ForEachNodeInstance$ForEachSplitNodeInstance.internalTrigger(ForEachNodeInstance.java:81)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:185)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:150)
    at org.jbpm.workflow.instance.node.CompositeNodeInstance$CompositeNodeStartInstance.triggerCompleted(CompositeNodeInstance.java:260)
    at org.jbpm.workflow.instance.node.CompositeNodeInstance$CompositeNodeStartInstance.internalTrigger(CompositeNodeInstance.java:256)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122)
    at org.jbpm.workflow.instance.node.CompositeNodeInstance.internalTrigger(CompositeNodeInstance.java:88)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:185)
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:150)
    at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:47)
    at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:162)
    at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:143)
    at org.jbpm.workflow.instance.node.WorkItemNodeInstance.triggerCompleted(WorkItemNodeInstance.java:239)
    at org.jbpm.workflow.instance.node.HumanTaskNodeInstance.triggerCompleted(HumanTaskNodeInstance.java:90)
    at org.jbpm.workflow.instance.node.WorkItemNodeInstance.workItemCompleted(WorkItemNodeInstance.java:301)
    at org.jbpm.workflow.instance.node.WorkItemNodeInstance.signalEvent(WorkItemNodeInstance.java:277)
    at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:326)
    at org.drools.process.instance.impl.DefaultWorkItemManager.completeWorkItem(DefaultWorkItemManager.java:116)
    at org.jbpm.task.service.hornetq.CommandBasedHornetQWSHumanTaskHandler$GetResultContentResponseHandler.execute(CommandBasedHornetQWSHumanTaskHandler.java:303)
    at org.jbpm.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:153)
    at org.jbpm.task.service.hornetq.HornetQTaskClientHandler.messageReceived(HornetQTaskClientHandler.java:55)
    at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:107)
    … 1 more

    I think that JBPM5.xsd is missing because I get “Error 404″ with “http://plugtree.org/smart-tasks/JBPM5.xsd” URL. I found this link into UIHelper.config.xml (Tasklists Module)

    Can you send me by mail or add JBPM5.xsd file

    Thanks,
    Fuetit

  14. fuetit says:

    Hi
    I start Core, Tasklists and Citymap
    And I run master branch

    Thanks

  15. fuetit says:

    Hi Salaboy,

    I have moved honetQ properties (UIHelper.config.xml) into Java classes of SmartTask FormBuilder component and I get the same exception:

    RuntimeException: Client Exception with class class org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1 using port 5446
    at org.jbpm.task.service.hornetq.HornetQTaskClientConnector$1.run(HornetQTaskClientConnector.java:118)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.IllegalArgumentException: Unexpected collection type: class com.wordpress.salaboy.model.SelectedProcedures)
    ….

    I get this exception with master, v3, v4 branch and under linux and windows platform.

    Thanks

    • salaboy says:

      What exactly are you doing when that error happens?
      Can you share your screen with the error?
      Does it happens when you complete the task? Which values are you including in the form?

      • fuetit says:

        Hi Salaboy

        I find the problem, I change drools version 5.4.0 to 5.3.1 in master branch.

        The emergency service demonstration is running (1 Core, 2 Tasklists, 3 Citymap) and HeartAttack and Fire scenario are completed.

        Thanks

  16. salaboy says:

    Cool, thanks for reporting back!

  17. Nbhangur says:

    Hi Salaboy,

    I’m getting the failures with the core service:

    ERROR] Failed to execute goal on project emergency-service-core: Could not resolve dependencies for project com.wordpress.salaboy.emergencyservice:emergency-service-core:jar:0.3-SNAPSHOT: The following artifacts could not be resolved: com.wordpress.salaboy.smarttasks:smart-tasks-api:jar:1.0-SNAPSHOT, com.wordpress.salaboy.smarttasks:smart-tasks-jbpm5-impl:jar:1.0-SNAPSHOT: Could not find artifact com.wordpress.salaboy.smarttasks:smart-tasks-api:jar:1.0-SNAPSHOT in slickrepo (http://slick.cokeandcode.com/mavenrepo/) -> [Help 1]

    Appreciate help

    Cheers
    Nbhangur

  18. I do not even know how I stopped up here, however
    I believed this publish used to be great. I don’t recognise
    who you are however definitely you are going to a famous blogger
    in case you are not already. Cheers!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 976 other followers

%d bloggers like this: