Giter Club home page Giter Club logo

predix-microservice-cf-jsr's Introduction

view javadoc   view github pages

Predix Microservice CF JSR using CXF

Welcome to Predix Microservice CF JSR CXF, a Predix Backend Microservice Template.

Each Microservice Template project shares the following characteristics

  • Test cases and test case framework
  • Externalized Properties files
  • REST implementation and framework
  • Cloud ready with a Manifest file
  • Environment Aware for Local, DEV, QA, Stage, Prod
  • Continuous Integration capable

predix-microservice-cf-jsr

This project is a cloud-ready microservice that demonstrates how to create JSR - CXF based Services. You simply change the @Path url and begin adding your service implementation. It has SpringBoot, Spring Profiles and Property file management configured and ready for local development vs. cloud deployment. It is also set up for Test Driven Development with JUnit and Mockito.

The template has the following structure and can be used for any Predix microservice.

##To Download and Push predix-microservice-cf

  1. Download a DevBox and launch it in Virtual Box or install the Dependencies

  2. Prepare your environment and follow the steps below to get up and running on Cloud Foundry.

  3. Download the project

$ git clone https://github.com/PredixDev/predix-microservice-cf-jsr.git  

$ cd predix-microservice-cf-jsr

$ mvn clean package  

  note: mvn clean install may run integration tests against services you may not have set up yet
  1. To load in eclipse (you may skip to 'Push to Cloud' if desired)

Vanilla Eclipse or [Eclipse STS - Springsource Tool Suite(https://spring.io/tools/sts/all) are both supported

$ mvn eclipse:clean eclipse:eclipse  

File/Import/General/Existing Projects/Browse to predix-microservice-cf dir  

Check the box 'Search for nested projects'  
  1. Try it out locally
in Eclipse - Right Click predix-microservice-cf project / Run As / Application 
in Eclise STS - Right Click predix-microservice-cf project / Run As / Spring Boot Application 

Visit service at http://localhost:9092 - a Spring RestTemplate  

and http://localhost:9092/services/ping - a CXF Rest Endpoint  

and http://localhost:9092/services?_wadl - a CXF Rest descriptor
  1. Push to cloud

    Take a look at the predix-microservice-cf manifest.yml which provides properties and instructions for pushing cloud foundry apps

$ cf push  

visit http://(cloud-url-here)/services/ping - get the url from the output of cf push  

##Troubleshooting If you encounter a github acct/password issue then contact [email protected].

If you encounter a corporate proxy issue, you might need to set up your env vars as required by your IT department.

If you encounter a maven or artifactory account issue, add your predix.io username and encrypted password to a maven ~/.m2/settings.xml file on your laptop. It should be setup already if in a DevBox.

##Preparation Predix Microservice CF accesses code repos at https://github.com/PredixDev.

The best experience is to use a DevBox which has all the tools and settings pre-installed.

  • In DevBox,

    • add your encrypted predix.io username and password to the ~/.m2/settings.xml by replacing [email protected] with your Predix.io user and pass.

    • to avoid entering user/pass several times, run this command to cache it

    git config --replace-all --global credential.helper 'cache --timeout=7200'
    
    • OSX: To enable Copy/Paste using Left Command key.
      On Host: Please choose VirtualBox/Preferences/Input/Virtual Machine/Host Key Combination.  
      Set to Right ⌘.  
      On VM: Choose System/Preference/Keyboard/Layouts/Layout Options/Alt/Win Key Behavior/Ctrl is mapped to Win Keys(and the usual Ctrl keys)
    

    We have a second DevBox for GE employees which helps with corporate proxy settings.

    In your own IT environment you may need to configure the proxy settings Environment variables within the VM or your own laptop.

  • For non-DevBox users,
    For users wanting to install all the tools, please reference the DevBox settings, and also ensure you have the prerequisites installed from Predix.io Getting Started documentation.

    • add your encrypted predix.io username and password to the ~/.m2/settings.xml by replacing [email protected] with your Predix.io user and pass.

    • to avoid entering user/pass several times, run this command to cache it

    git config --global credential.helper cache --timeout=7200
    

##Dependencies If you are not using DevBox, ensure your development environment is configured with the tools listed here.

Required Version Note
Java 8
GitHub Acct n/a logged in
Git latest
Maven latest https://artifactory.predix.io/artifactory/PREDIX-EXT
CloudFoundry ClI 6.12.2 https://github.com/cloudfoundry/cli/tree/v6.12.2#downloads. There is bug on this page, so you have to manually get the URL and the add "&version=6.12.2". For example for Windows32 it would look like this...https://cli.run.pivotal.io/stable?release=windows32&source=github&version=6.12.2

Analytics

predix-microservice-cf-jsr's People

Contributors

racingcow avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.