Giter VIP home page Giter VIP logo

abixen / abixen-platform Goto Github PK

View Code? Open in Web Editor NEW
679.0 102.0 211.0 83.59 MB

Abixen Platform is a microservices based software platform for building enterprise applications delivering functionalities through creating particular microservices and integrating by provided CMS.

Home Page: http://www.platform.abixen.com

License: GNU Lesser General Public License v2.1

Java 51.19% FreeMarker 0.17% JavaScript 30.57% HTML 8.53% Shell 0.20% Groovy 6.90% Batchfile 0.06% Dockerfile 0.12% SCSS 2.26%
microservices architecture aws business-intelligence charts angularjs netflixoss spring-cloud spring-boot cloud

abixen-platform's Introduction

Build Status

What is Abixen Platform

Short introduce

Abixen Platform is a microservices based software platform for building enterprise applications. The main goal of the project is a creation of functionalities through creating particular microservices and integrating by provided CMS.

All you have to do in order to create an entirely new functionality is to implement a new, separated microservice. Now you can register it in Abixen Platform and start using by delivered configuration wizards and CMS. There is also an Abixen Platform API, which allows you to accelerate the process of new microservices creation.

A sample application built using Abixen Platform can look like in the following screenshot: Abixen Platform Demo

Abixen Platform's organizational division consists of pages and modules. User with appropriate privileges can create any page and select a layout. Finally, add to the page instances of modules deployed on Abixen Platform. Each of the modules can have many instances, configured by different parameters.

One of the most important mechanisms built-in into Abixen Platform is own security system, which ensures a full control access to pages, modules and even the data displayed and used by the modules.

Abixen Platform delivers out of the box functional microservices.

Business Intelligence Service is one of the delivered functional modules.

This module allows to do reporting charts and tables. A business administrator can create the charts and feed it by a following flow:

  • Create a database connection to one of supported databases (H2, MySQL, PostgreSQL, Oracle, MSSQL). Instead of database connection, there is an opportunity to use an excel or CSV file
  • Create a data source using above database connection or file.
  • Add a new business intelligence instance on a page
  • Configure a chart series selecting a data source
  • Set permissions for particular users' roles

Web Content Service is another one of the delivered functional modules.

This module allows to do articles. A business administrator can create articles in two ways:

  • Simple Web Content (just fill out a simple form with rich text editor)
  • Advanced Web Content (using structures and templates)

The spectrum of possible modules developer can create is unlimited. There can be e.g. modules showing data in a tabular way, modules of data entry, where users enter data, edit and present.

The main architectural emphasis was placed on the rapid creation of new modules. Therefore, an original architecture has been implemented based on microservices, which allows to create modules functionally independent of the other elements. When programmer creates a module, compiles only his module and his microservice. This provides a tremendous time saving comparing to monolithic systems.

Technology stack

Abixen Platform Microservices Technology Stack

Architecture overview

One of the biggest advantage is the architecture based on microservices concept. With loosely coupled components, it opens up a possibility of a efficient division of work between development teams and for a simple and inexpensive system maintenance. Creating a new module, a new functionality, a developer must not interfere with the existing source code. He can create a new microservice, being a separate spring boot application. Then, implementing necessary interfaces achieves opportunity to integrate the newly created microservice with Abixen Platform structure. Finally, a business administrator may use it over the platform. Abixen Platform supplies out of the box a few functional modules closed in the Business Intelligence Service and in the Web Content Service. This is a good example, how to create the own microservice. Mentioned services provide mainly visualisation functionalities, such as charts, micro charts, KPIs. As well as a web content management, such as templates, structures, articles. However opportunities to develop data entry modules are still opened! Abixen Platform Microservices Architecture

AWS compatible

Abixen Platform is fully compatible with AWS cloud and utilizes the following services:

  • EC2 - used as a base for hosts running docker in ECS Cluster
  • ALB - modern version of load balancer aligned with microservices architecture topology
  • ECS - container orchestrator and scheduler for all services running as docker containers
  • ECR - private container registry for docker images
  • Route53 - allows to use internal dns names for communication between microservices
  • CloudWatch - used as a central monitoring and logging
  • Elasticache - used internally by Abixen Platform components
  • RDS - database store for all components
  • SES - used for email communication

Abixen Platform AWS Deployment diagram

Logging and monitoring

All containers from Abixen Platform send logs to Elasticsearch via Logstash. You can use Kibana's interface as well. All metrics are exposed on each component with Jolokia and fetched from there using Telegraf. They are sent to InfluxDB and are accessible on Grafana dashboards Abixen Platform Logging and Monitoring

History

Abixen Platform has been started in March 2015 by Mariusz Kumor (see LinkedIn profile). Preliminary the main idea was to learn more about microservices, Spring Cloud stuff and extend knowledge about AngularJS. The project was developing to December 2015 at free time. Substantial part of the time involved analysis and prototypes. Since that day it took some time but now, in October 2016 he decided to publish the source code on GitHub. As well Mariusz Kumor decided to begin further development. The great motivation were flattering words of his friends, also some companies about the project and its ideas.

Give a Star ⭐

Creating this product I put emphasis primarily on quality and value for end users. It is also very important for me that the software is built based on the cutting-edge technologies (but in the same time stable ones) and the best design patterns and practices. As you can guess, it takes a lot of time, and the product is open source - so everyone can use the effects of my and other Contributors work for free. If you like this project, learned something or you are using it, please give it a star ⭐. This is the best motivation for me to continue on. Thank you!

Share It

There are not many similar open source products like this type of application. If in your opinion this repository makes a difference and deserves it - please share it with your friends, mates and on social networks. I will be very grateful.

Known issues

There are some known issues. We work on fixes and improvements.

  • Not all translations are done
  • Multi Visualisation Service needs some user interface improvement and optimization. Also needs more tests.
  • In some places CSS is not perfect
  • There is a small technical debt (non functional issue)

Get it started

The documentation is available under https://github.com/abixen/abixen-platform/wiki page.

We are looking for experienced Contributors

Are you good at Java and / or frontend technologies like AngularJS, CSS, HTML? Or maybe are you an UI/UX expert and you are willing to enhance Abixen Platform's design? Would you like to join geek guys? If so, we are ready to do short but powerful training for you from Abixen Platform. After the training you will be able to develop together with us the amazing Abixen Platform. Just mail us [email protected]. In a message please let us know, why would you like to contribute and what could you bring to the project.

License

Copyright (c) 2010-present Abixen Systems. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

abixen-platform's People

Contributors

adamturski avatar adorjanszeles avatar alishahrivarian avatar anilbhaila avatar asteriskbimal avatar cloudowski avatar cykeromens avatar cypraxpuch avatar devbhuwan avatar inallib avatar karkiriks avatar konradkwisniewski avatar lbamburski avatar mariuszkumor avatar nagukothapalli avatar nandishkotadia avatar ppolakiewicz avatar rajanpupa avatar rajsingh8220 avatar rbharath26 avatar rishi29 avatar sandiptripathi avatar shaposhi avatar shreeraj avatar sudaredd avatar tajbist avatar vinodpandey1 avatar yashodeepv avatar yogenraii 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abixen-platform's Issues

Minimum length of password in "Database Connection Form" is too high

Postgres database allow to setting password with 4 character . Input of password in "Database Connection Form" allow to enter password with 5 or more characters.
It's possible that i want to have password with 4 character on database.
We should consider to reduce minimal length of password.
Also we should consider changing input type from text to password, to hide password. #

Attach an xml content to a saved layout's object

At this time, there is mockup in LayoutController in the method:

@RequestMapping(value = "/api/admin/layouts", method = RequestMethod.POST)
public Layout createLayout(@requestbody Layout layout) {
log.debug("save() - layout: " + layout);
//TODO
layout.setContent("111111111111111");
return layoutService.createLayout(layout);
}

Please remove line:
layout.setContent("111111111111111");

And in LayoutServiceImpl service in methods:

@OverRide
public Layout createLayout(Layout layout) {
log.debug("createLayout() - layout: " + layout);
return layoutRepository.save((Layout) layout);
}

@Override
public Layout updateLayout(Layout layout) {
    log.debug("updateLayout() - layout: " + layout);
    return layoutRepository.save((Layout) layout);
}

add conversion before save from xml received from frontend to JSON. Use method:
public String htmlLayoutToJson(String htmlString)

Write an unit test in LayoutServiceTest testing layout creation and update process. Make valuable assertions.

Error when start web platforme

GRAVE: Servlet.service() for servlet [dispatcherServlet] in context with path []
threw exception [Request processing failed; nested exception is com.netflix.hys
trix.exception.HystrixRuntimeException: ResourceClient#getAllUniqueResources() f
ailed and no fallback available.] with root cause
com.netflix.client.ClientException: Load balancer does not have available server
for client: abixen-platform-core
at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalance
r(LoadBalancerContext.java:468)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBala
ncerCommand.java:184)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBala
ncerCommand.java:180)
at rx.Observable.unsafeSubscribe(Observable.java:10211)
at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.
java:94)
at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.
java:42)
at rx.Observable.unsafeSubscribe(Observable.java:10211)
at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber$1.c
all(OperatorRetryWithPredicate.java:127)
at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadSchedule
r.enqueue(TrampolineScheduler.java:73)
at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadSchedule
r.schedule(TrampolineScheduler.java:52)
at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onN
ext(OperatorRetryWithPredicate.java:79)
at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onN
ext(OperatorRetryWithPredicate.java:45)
at rx.internal.util.ScalarSynchronousObservable$WeakSingleProducer.reque
st(ScalarSynchronousObservable.java:276)
at rx.Subscriber.setProducer(Subscriber.java:209)
at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(Sca
larSynchronousObservable.java:138)
at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(Sca
larSynchronousObservable.java:129)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.subscribe(Observable.java:10307)
at rx.Observable.subscribe(Observable.java:10274)
at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.j
ava:445)
at rx.observables.BlockingObservable.single(BlockingObservable.java:342)

    at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBal

ancer(AbstractLoadBalancerAwareClient.java:102)
at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClien
t.execute(LoadBalancerFeignClient.java:63)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHand
ler.java:97)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:7
6)
at feign.hystrix.HystrixInvocationHandler$1.run(HystrixInvocationHandler
.java:108)
at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:299)
at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:295)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46)

    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)

    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.Observable.unsafeSubscribe(Observable.java:10211)
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)

    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)

    at rx.Observable.unsafeSubscribe(Observable.java:10211)
    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.ja

va:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.ja
va:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10211)
at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.
java:94)
at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction
$1.call(HystrixContexSchedulerAction.java:56)
at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction
$1.call(HystrixContexSchedulerAction.java:47)
at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction
.call(HystrixContexSchedulerAction.java:69)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
at java.lang.Thread.run(Thread.java:745)

2016-11-09 11:15:59 144 [DEBUG] [c=ApplicationViewController] renderApplicationP
age()
nov. 09, 2016 11:15:59 AM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [dispatcherServlet] in context with path []
threw exception [Request processing failed; nested exception is com.netflix.hys
trix.exception.HystrixRuntimeException: ResourceClient#getAllUniqueResources() f
ailed and no fallback available.] with root cause
com.netflix.client.ClientException: Load balancer does not have available server
for client: abixen-platform-core
at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalance
r(LoadBalancerContext.java:468)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBala
ncerCommand.java:184)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBala
ncerCommand.java:180)
at rx.Observable.unsafeSubscribe(Observable.java:10211)
at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.
java:94)
at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.
java:42)
at rx.Observable.unsafeSubscribe(Observable.java:10211)
at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber$1.c
all(OperatorRetryWithPredicate.java:127)
at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadSchedule
r.enqueue(TrampolineScheduler.java:73)
at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadSchedule
r.schedule(TrampolineScheduler.java:52)
at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onN
ext(OperatorRetryWithPredicate.java:79)
at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onN
ext(OperatorRetryWithPredicate.java:45)
at rx.internal.util.ScalarSynchronousObservable$WeakSingleProducer.reque
st(ScalarSynchronousObservable.java:276)
at rx.Subscriber.setProducer(Subscriber.java:209)
at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(Sca
larSynchronousObservable.java:138)
at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(Sca
larSynchronousObservable.java:129)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.subscribe(Observable.java:10307)
at rx.Observable.subscribe(Observable.java:10274)
at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.j
ava:445)
at rx.observables.BlockingObservable.single(BlockingObservable.java:342)

    at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBal

ancer(AbstractLoadBalancerAwareClient.java:102)
at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClien
t.execute(LoadBalancerFeignClient.java:63)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHand
ler.java:97)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:7
6)
at feign.hystrix.HystrixInvocationHandler$1.run(HystrixInvocationHandler
.java:108)
at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:299)
at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:295)
at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46)

    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)

    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.Observable.unsafeSubscribe(Observable.java:10211)
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)

    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)

    at rx.Observable.unsafeSubscribe(Observable.java:10211)
    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.ja

va:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.ja
va:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10211)
at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.
java:94)
at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction
$1.call(HystrixContexSchedulerAction.java:56)
at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction
$1.call(HystrixContexSchedulerAction.java:47)
at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction
.call(HystrixContexSchedulerAction.java:69)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51
1)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
at java.lang.Thread.run(Thread.java:745)

Columns in add/edit Connection DataSet Form are not editable

Replication bug's path:

  1. Create "Connection" to database
  2. Create "Connection DataSet" for a connection. Select all, many,one or do not choose any column and Save it.
  3. Now. Try to edit and change chosen columns in a "Connection DataSet". From the Front-end side saving look fine but when you again return to edit a "Connection DataSet" a selected columns are not changed.

There isn't error on server side. Probably it is problem with cascade saving a domain object.

error when mvn install -DskipDocker

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.22:
install-node-and-npm (install node and npm) on project abixen-platform-modules:
Execution install node and npm of goal com.github.eirslett:frontend-maven-plugin
:0.0.22:install-node-and-npm failed: A required class was missing while executin
g com.github.eirslett:frontend-maven-plugin:0.0.22:install-node-and-npm: org/slf
4j/helpers/MarkerIgnoringBase
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>com.github.eirslett:frontend-maven-plugin:0.0.22
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/D:/works/maven/repository/com/github/eirslett/frontend-m
aven-plugin/0.0.22/frontend-maven-plugin-0.0.22.jar
[ERROR] urls[1] = file:/D:/works/maven/repository/com/github/eirslett/frontend-p
lugin-core/0.0.22/frontend-plugin-core-0.0.22.jar
[ERROR] urls[2] = file:/D:/works/maven/repository/org/codehaus/jackson/jackson-m
apper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar
[ERROR] urls[3] = file:/D:/works/maven/repository/org/codehaus/jackson/jackson-c
ore-asl/1.9.13/jackson-core-asl-1.9.13.jar
[ERROR] urls[4] = file:/D:/works/maven/repository/org/apache/commons/commons-com
press/1.5/commons-compress-1.5.jar
[ERROR] urls[5] = file:/D:/works/maven/repository/org/tukaani/xz/1.2/xz-1.2.jar
[ERROR] urls[6] = file:/D:/works/maven/repository/commons-io/commons-io/1.3.2/co
mmons-io-1.3.2.jar
[ERROR] urls[7] = file:/D:/works/maven/repository/org/apache/httpcomponents/http
client/4.3.1/httpclient-4.3.1.jar
[ERROR] urls[8] = file:/D:/works/maven/repository/org/apache/httpcomponents/http
core/4.3/httpcore-4.3.jar
[ERROR] urls[9] = file:/D:/works/maven/repository/commons-logging/commons-loggin
g/1.1.3/commons-logging-1.1.3.jar
[ERROR] urls[10] = file:/D:/works/maven/repository/commons-codec/commons-codec/1
.6/commons-codec-1.6.jar
[ERROR] urls[11] = file:/D:/works/maven/repository/javax/enterprise/cdi-api/1.0/
cdi-api-1.0.jar
[ERROR] urls[12] = file:/D:/works/maven/repository/javax/annotation/jsr250-api/1
.0/jsr250-api-1.0.jar
[ERROR] urls[13] = file:/D:/works/maven/repository/com/google/guava/guava/10.0.1
/guava-10.0.1.jar
[ERROR] urls[14] = file:/D:/works/maven/repository/com/google/code/findbugs/jsr3
05/1.3.9/jsr305-1.3.9.jar
[ERROR] urls[15] = file:/D:/works/maven/repository/org/sonatype/sisu/sisu-guice/
3.1.0/sisu-guice-3.1.0-no_aop.jar
[ERROR] urls[16] = file:/D:/works/maven/repository/aopalliance/aopalliance/1.0/a
opalliance-1.0.jar
[ERROR] urls[17] = file:/D:/works/maven/repository/org/eclipse/sisu/org.eclipse.
sisu.inject/0.0.0.M2a/org.eclipse.sisu.inject-0.0.0.M2a.jar
[ERROR] urls[18] = file:/D:/works/maven/repository/asm/asm/3.3.1/asm-3.3.1.jar
[ERROR] urls[19] = file:/D:/works/maven/repository/org/codehaus/plexus/plexus-co
mponent-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[20] = file:/D:/works/maven/repository/org/apache/maven/plugin-tools
/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar
[ERROR] urls[21] = file:/D:/works/maven/repository/com/googlecode/slf4j-maven-pl
ugin-log/slf4j-maven-plugin-log/1.0.0/slf4j-maven-plugin-log-1.0.0.jar
[ERROR] urls[22] = file:/D:/works/maven/repository/org/sonatype/plexus/plexus-bu
ild-api/0.0.7/plexus-build-api-0.0.7.jar
[ERROR] urls[23] = file:/D:/works/maven/repository/org/codehaus/plexus/plexus-ut
ils/1.5.8/plexus-utils-1.5.8.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------: org.slf4j.helpers
.MarkerIgnoringBase
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContaine
rException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command

[ERROR] mvn -rf :abixen-platform-modules

Duplicatate login process

After login on the login page user is redirected to the main view and then on request of avatar file he need to login again on the base form
unnamed
After login again or refresh site, image is displaying properly.

Schama validation error in the modules microservice

Without -DcreateDbSchema=true flag there is

Schema-validation: wrong column type encountered in column [value] in table [data_source_value_float]; found [double (Types#DOUBLE)], but expecting [float (Types#FLOAT)]

Change an input on a popup in the Magic Number configuration panel of the Icon Class field.

Needed selection of icons from the fontawesome.

http://fontawesome.io/icons/

screen shot 2016-11-05 at 21 54 49

When user click the input, a modal window should open as in the below picture:

screen shot 2016-12-21 at 15 03 34

Content of the modal should have all icons from the fontawesome. Icon must be selectable as the screen presented. Must be added vertical scrollbar, because there will be a lot of icons. In the input should be put icon class name: i. e. fa fa-bar-chart
Buttons save and cancel make similarly as in other places in the application.

Please create an AngularJS component of the modal window in web client microservice and apply for the above input. Modal window will be using for another one functionality in the application, that's why must be generic and located in common.

screen shot 2016-12-21 at 18 49 33

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.