Git Product home page Git Product logo

wso2 / micro-integrator Goto Github PK

View Code? Open in Web Editor NEW
193.0 88.0 197.0 100.15 MB

The cloud-native configuration driven runtime that helps developers implement composite microservices.

Home Page: https://wso2.com/integration/

License: Apache License 2.0

Batchfile 0.34% Shell 1.65% Dockerfile 0.05% Java 95.81% TSQL 0.09% XSLT 0.44% PLSQL 0.22% JavaScript 0.27% Ruby 0.10% XQuery 0.01% HTML 0.01% SQLPL 0.10% Ballerina 0.13% Jinja 0.79%
integration wso2 messaging synapse cloud-native services rest api soap microservices kubernetes

micro-integrator's Introduction

WSO2 Micro Integrator

Build Status License

WSO2 Micro Integrator is the integration runtime of WSO2 Enterprise Integrator (EI), which is an open-source, hybrid integration platform. Please refer to the official documentation for further information.

The Micro Integrator runtime is lightweight, fast, scalable, and supports centralized ESB-style integration architectures as well as decentralized microservices architectures:

  • Centralized integration architecture esb integration architecture

  • Decentralized integration architecture microservices architecture

Developers can create integrations graphically by using WSO2 Integration Studio and deploy them in the Micro Integrator runtime.

Summary

Why Micro Integrator?

The Micro Integrator provides developers with a flawless experience in developing, testing, and deploying integration solutions. The Micro Integrator developer experience is especially tuned for;

  • Integration developers who prefer a config-driven approach to integration (centralized or decentralized).
  • Integration developers who are looking for a solution to integrate brownfield (i.e. legacy systems) solutions with new microservices-based solutions.
  • Existing WSO2 EI and integration middleware users who want to move into cloud-native or microservices architectures.

The Micro Integrator offers an enhanced experience for container-based architectures by simplifying Docker/Kubernetes deployments.

Refer the developer guide in the documentation for details.

Getting Started

See the following topics to get started with the product:

See the Tutorials and Examples to try out the main integration use cases. You can also find more resources in the WSO2 Library.

Contributing

If you are planning on contributing to the development efforts of WSO2 Micro Integrator, you can do that by checking out the latest development version. The master branch holds the latest unreleased source code.

Building from the source

Please follow the steps below to build WSO2 Micro Integrator from the source code.

  1. Clone or download the source code from this repository (https://github.com/wso2/micro-integrator).
  2. Run the maven command mvn clean install from the root directory of the repository.
  3. The generated Micro Integrator distribution can be found at micro-integrator/distribution/target/wso2mi-<version>.zip.

Please note that the product can be build using only JDK 11 but the integration tests can be run in either JDK 11 or 17.

Building the Docker image

You can build the Docker image for the Micro Integrator by setting the docker.skip system property to false when running the maven build. This builds and pushes the micro-integrator Docker image to the local Docker registry.

mvn clean install -Ddocker.skip=false

License

WSO2 Micro Integrator is licensed under the Apache License.

Survey On Open Source Community Communication

WSO2 wants to learn more about our open source software (OSS) community and your communication preferences to serve you better.

In addition, we may reach out to a small number of respondents to ask additional questions and offer a small gift.

Link to survey: https://forms.gle/h5q4M3K7vyXba3bK6

Copyright

(c) 2020, WSO2 Inc. All Rights Reserved.

micro-integrator's People

Contributors

a5anka avatar anugayan avatar arunans23 avatar chanikag avatar dedunukarunarathne avatar dependabot-support avatar dnwick avatar drifftr avatar dulanjalidilmi avatar gdlmadushanka avatar isuruuy429 avatar madushadhanushka avatar malakaganga avatar menuka94 avatar milindaperera avatar nipunich avatar nirothipan avatar pasant9 avatar prabushi avatar ridmir avatar rosensilva avatar sachithkay avatar sajiniekavindya avatar sajithaliyanage avatar sanojpunchihewa avatar sdkottegoda avatar senthuran16 avatar tharsanan1 avatar vathsan avatar wso2-jenkins-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

micro-integrator's Issues

Additional logs related to TCPEventServer getting printed at the server startup

Description:
Following additional logs getting printed at the server startup

INFO - ManagementModeConfigurationLoader CEP started in Persistence enabled HA mode
2019-04-24 14:01:51,722 INFO [org.wso2.micro.integrator.integration.ServerLogReader] - [2019-04-24 14:01:51,722] [micro-integrator] INFO - TCPEventServer EventServer starting event listener on 0.0.0.0:11010
2019-04-24 14:01:51,728 INFO [org.wso2.micro.integrator.integration.ServerLogReader] - [2019-04-24 14:01:51,728] [micro-integrator] INFO - EventHandler Event Management TCPEventServer for EventReceiver started on port 11010

Have to add a scenario replacing SecureProxy scenario for performance tests

microeiisfailingatsecureproxyservices.zip

Description:
SecureProxy scenario is not supported in Micro EI. A supporting secure proxy scenario has to be implemented.

Affected Product Version:
Micro EI 6.4.0

OS, DB, other environment details and versions:
Any environment

Steps to reproduce:
Try to invoke Performance Test scenario SecureProxy in repo, "performance-ei" and the following exception could be observed.

java.lang.RuntimeException: org.wso2.carbon.security.util.ServerCrypto Not Found at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:203) at org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFactory.java:95) at org.apache.rampart.util.RampartUtil.getSignatureCrypto(RampartUtil.java:390) at org.apache.rampart.RampartEngine.process(RampartEngine.java:166) at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:93) at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340) at org.apache.axis2.engine.Phase.invoke(Phase.java:313) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:415) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

  1. Deploy the attached CAR file in Micro EI and start.
  2. Load the attached jmx script
  3. In the HTTP Request section, set the file path of the attached XML file as the File Path of Files Upload tab
  4. Once the request is sent above exception will happen.
  5. When the issue is fixed the below exception will come as the backend service is unavailable.

[EI-Core] WARN - ConnectCallback Connection refused or failed for : netty:8688

Related Issues:
[1] wso2/performance-ei#10

Update the doc Working With Micro Integrator.

Description:
The document working with MI [1] instructs to create MI from EI using profile-creator script and proceed. We need to update this as it is available now as a separate run time.

[1] - https://docs.wso2.com/display/EI6xx/Working+with+the+Micro+Integrator

Also we need to update the folder paths in that document since we have restructured it.

In case, if we are going only with git docs, we may need to remove the above docs since it is no more valid.

Use the MI version as the CLI version

Currently, the version used for MI CLI is different from the product version. Shall we use the same version for CLI too since it is easier to correlate?

We need to make sure the CLI version upgrade also happens whenever we do an MI release.

Facilitate enabling Prometheus publishing via a system property

Description:

Currently it is disabled by default in promethus-conf.xml and we have to edit this file to enable it.

<PrometheusPublishingConfig>
    <Enabled>false</Enabled>
</PrometheusPublishingConfig>

We need this to be facilitated via a system property in order to have seamless integration with docker for MI.

In the server startup OSGI issue occurs

Description:

At server start-up following exception getting printed in osgi configuration logs,

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at org.wso2.carbon.event.processor.manager.core.internal.CarbonEventManagementService.init(CarbonEventManagementService.java:228)
at org.wso2.carbon.event.processor.manager.core.internal.ds.EventManagementServiceDS.setConfigurationContextService(EventManagementServiceDS.java:73)

Improvements to Micro Integrator Cli

Description:

Currently, a client program to connect to micro integrator and observe details is being written. I would like if we can simulate what mysql is doing here.

We can run a container for mysql like below.

- docker run --name=myContainer -d mysql/mysql-server

And then mysql client can be run like below in the same container

docker exec -it mysqlDataStore mysql -uroot -p

At the very first time you start, server will generate a random password for the client to connect. It will be on logs of the server.

User need to get that password and connect when prompted. Then he can reset the password like below.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

So the improvements suggested here are

  1. The client for micro integrator should be able to run using docker exec -it <container name>
  2. We can use above password handling mechanism for security.
  3. User does not need to pull any additional image to run the client.
  4. User does not need to enable anything on server specifically to do this.

Affected Product Version:

1.0.0

OS, DB, other environment details and versions:

Docker platform .

JDK 11 support

We need to make sure,

  • the distribution runs on JDK 11 (can be compiled with JDK 8)
  • the distribution can be built and run using JDK 11

List and show integrator artifacts

Commands to list and show artifacts deployed in the micro-integrator

Tasks

  • Carbon Application

    • List
    • Show
  • APIs

    • List
    • Show
  • Endpoints

    • List
    • Show
  • Inbound Endpoint

    • List
    • Show
  • Sequences

    • List
    • Show
  • Proxy Services

    • List
    • Show
  • Tasks

    • List
    • Show

WARN log printed at startup

Description:
The following WARN log is printed during micro-integrator startup during VFS listener initialization

WARN - PollTableEntry transport.vfs.FileURI parameter is missing in the proxy service configuration

Reorganize the files in the distribution

Currently, the file structure in the distribution is very similar to the one we had with the micro integrator profile. Since we are creating a separate build for micro integrator we can move most of these files to top level.

  • Document folder structure
    • Update micro-integrator/doc/working-with-the-micro-integrator.md

Issue in Getting Started Guide

Description:

Following doc

It states to execute command

$ docker build -t wso2/mi-order-process-be .

But it did not states from where it needs to run this. By inspecting I could find it needs to run from

/micro-integrator/examples/getting-started/order-process-be

It is not clear in the document

Bash into micro integrator image does not work

Description:

docker exec -it <containerIdOrName> bash

should give access to bash of micro integrator image. But it gives below error once executed.

OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown

Remove synapse-configs folder

Description:

We deploy to micro integrator via EI Tooling. EI tooling always creates a CAPP which is deployable to Micro Integrator.

As there is no Web UI or any place we can create and deploy individual artifacts. Thus better to remove synapse-configs folder altogether and keep carbonapps folder only.

There are some more deployment specific folders like axis2modules, axis2services etc which is not relevant to MI usecase.

Libthrift jar is duplicated in the distribution

There are two libthrift jars (libthrift_0.12.0.wso2v1.jar and libthrift_0.9.2.wso2v1.jar) in wso2/components/plugins folder.

libthrift_0.12.0.wso2v1.jar is coming from the carbon-mediation dependencies. libthrift_0.9.2.wso2v1.jar is from the analytics-common. We could not upgrade the libthrift version in analytics-common due to some failures in IS analytics components.

Related PRs

CLI binary distribution

Description

The binaries generated for the CLI tool are platform dependent. Need a proper way of distributing the binaries

Message processors are not activated

Description:

Message processors are not started

Affected Product Version:

wso2mi-1.0.0-m6-SNAPSHOT

OS, DB, other environment details and versions:

Steps to reproduce:

  1. Edit conf/jndi.properties to have

queue.testQueue=testQueue

  1. Copy following jar files to /lib folder
-rw-r--r--@ 1 hasitha  wheel   2.2M Apr 29 18:56 andes-client-3.2.97.jar
-rw-r--r--@ 1 hasitha  wheel    28K Apr 29 18:56 geronimo-jms_1.1_spec-1.1.0.wso2v1.jar
-rw-r--r--@ 1 hasitha  wheel    78K Apr 29 18:57 org.wso2.securevault-1.0.0-wso2v2.jar
  1. Copy the attached CAR file with MS/MP

  2. Start MI. You will see below on logs.

[2019-04-29 19:54:21,128] [micro-integrator]  INFO - NioSelectorPool Using a shared selector for servlet write/read
[2019-04-29 19:54:21,135] [micro-integrator]  INFO - StartupFinalizerServiceComponent WSO2 Micro Integrator started in 6 sec
[2019-04-29 19:54:21,253] [micro-integrator]  INFO - AbstractQuartzTaskManager Task scheduled: [-1234][ESB_TASK][MSMP_myMP0][Paused]
[2019-04-29 19:54:21,254] [micro-integrator]  INFO - ScheduledMessageProcessor Started message processor. [myMP].
[2019-04-29 19:54:21,256] [micro-integrator]  INFO - AbstractQuartzTaskManager Task scheduled: [-1234][ESB_TASK][fileInbound-FILE--SYNAPSE_INBOUND_ENDPOINT]

The consumer is not created at the broker side.

micro-integrator.sh stop gives errors

When executed the micro-integrator.sh stop gives and pause without returning the command prompt.

/home/asanka/wso2mi-1.0.0-m3-SNAPSHOT/wso2/micro-integrator/bin/wso2server.sh: line 135: warning: command substitution: ignored null byte in input
/home/asanka/wso2mi-1.0.0-m3-SNAPSHOT/wso2/micro-integrator/bin/wso2server.sh: line 188: warning: command substitution: ignored null byte in input
/home/asanka/wso2mi-1.0.0-m3-SNAPSHOT/wso2/micro-integrator/bin/wso2server.sh: line 135: warning: command substitution: ignored null byte in input
/home/asanka/wso2mi-1.0.0-m3-SNAPSHOT/wso2/micro-integrator/bin/wso2server.sh: line 188: warning: command substitution: ignored null byte in input
/home/asanka/wso2mi-1.0.0-m3-SNAPSHOT/wso2/micro-integrator/bin/wso2server.sh: line 188: kill: (31586) - No such process

Ideally, the command prompt should return without any errors.

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.