Giter Club home page Giter Club logo

teiid-syndesis's Introduction

teiid-syndesis

Build Status

Teiid tooling is now part of the Syndesis project. This works a component inside Syndesis to provide data integration capabilities. This document is for developers who like to setup a workspace locally for testing or for development purposes.

Prerequisites for Developers

  • Install JDK 1.8 or higher
  • Install maven 3.2+
  • Install Go Lang These instructions are for Linux, find similar for your platform.
  • Install minishift 3.9+; which is available for all the major operating systems (Linux, OS X and Windows). The following examples assume that you have Minishift installed and can be called with minishift from the command line. So, minishift is supposed to be available in your search path, i.e. located in a directory contained in your $PATH environment variable (Linux, macOS) or in a directory from your system path (Windows)
  • Clone the Syndesis libraries.
[email protected]:syndesisio/syndesis.git
cd syndesis
  • Clone Teiid Syndesis Repository
git clone [email protected]:teiid/teiid-syndesis.git
  • Now follow below script
cd syndesis
minishift addons enable admin-user

# install syndesis in minishift
tools/bin/syndesis minishift --install --project syndesis --full-reset --memory 8GB --disk-size 40GB --cpus 4 --datavirt --nodev

# wait until the Minishift is started and you logged using oc login, then proceed with next step

oc login -u system:admin

Note: If you are developer and want your locally built images to be deployed to this minishift instance, then change --nodev in above command to --dev, however this will end up with few images in not started position. To fix that, you can do

cd teiid-syndesis
./fix4dev.sh

It will fix the images, and also when you update the image from local development, it will not be overridden anymore.

At this point Syndesis should be running with syndesis-dv in it, now if you are working on any changes for development in teiid-syndesis, make you code edits, once done execute below

cd teiid-syndesis
oc login -u developer (if new terminal)
oc project syndesis (if current project is myproject)
mvn install -Pimage [-DskipTests]

Once the above build is done, it will replace the existing syndesis-dv instance with latest one that has been just built with your latest changes.

Avoid updating with remote instance when working locally

When working in the development mode, the server image will automatically will be replaced with one in the Docker repo in 15 minutes, to avoid it run the following on your OpenShift after above installation.

oc edit syndesis app 
# then add below flag under "spec" section
spec:
  devSupport: true

save and exit. Now on your development machine when you do

mvn install -Pimage [-DskipTests]

The image generated will be the new syndesis-dv image

Remote Debugging

To enable the debugging of "syndesis-dv" instance, go to the OpenShift console where the application is deployed, and in the syndesis-dv deployment config's Environment variables add JAVA_DEBUG to true and then recycle the current pod such that new pod will be generated with new environment property.

The built images are deployed with java virtual machine debugging enabled, using port 5005. This allows for developers to remotely connect to the running dv using an IDE like Eclipse.

The port 5005 is not offered by any of the routes, although a route can be setup if preferred. A quick alternative is to port-forward the port to the localhost using the following command:

oc get pods

oc port-forward syndesis-dv-x-yyyy 5005:5005

where dv-x-yyyy is the latest deployed syndesis-dv pod.

If using Eclipse, open the Debugging Configurations window and create a new Remote Java Application configuration. Setting the host to localhost and the port to 5005, the configuration can then be executed. The debug perspective will indicate the connection has been successfully undertaken and all breakpoints will be fired by the dv image.

Troubleshooting

Hostname

In Minishift, the VM is unable to see hostnames documented in the host OS' /etc/hosts file yet it is possible to resolve IP addresses. Only if the hostnames are inserted in the VM's own /etc/hosts will they be resolved correctly.

OpenShift Storage Space

OpenShift and Docker are responsible for generating a significant amount of content which can fill up HDD space, including docker images and persistent volumes. If space becomes too low then errors can start to appear. Cleaning up docker images in Minishift can require secure-shell into the VM then manually deleting the images using the native docker commands. Likewise, persistent volumes can require manually deletion of their directories.

Memory and Storage Capacity Variables

By default, Minishift starts with 2GB of memory and 20GB of storage. This can quickly prove insufficient for developing syndesis-dv. It is advisable to increase these values, eg.

minishift config set disk-size 60GB

minishift config set memory 8GB

See also the optional parameters you can supply on the "syndesis minishift" command to achieve the same.

Licenses

The default license is the Apache Software License (ASL) v2.0

Where applicable individual modules or JavaScript libraries will provide other copyright and license information.

=======

teiid-syndesis's People

Contributors

apupier avatar asmigala avatar blafond avatar cunningt avatar elvisisking avatar mdrillin avatar phantomjinx avatar rareddy avatar rkorytkowski avatar shawkins avatar tejones avatar vhalbert avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.