Since its birth Apache Syncope developers faced the problem (and the challenge) to have an easy-to-use, intuitive, but complete front-end application to let plain users self-registering, managing own profile, resetting their passwords and other self operations. Up to Syncope 1.2, some features used to be provided via the admin console, but the need for a more dedicated tool was raising.Therefore Apache Syncope developers, decided to deliver with Apache Syncope 2.0 an easy-to-use, client-side, highly customizable AngularJS Enduser application. In his work Andrea Patricelli will explain his personal contribution to development of Apache Syncope 2.0, innovative approaches used to develop Enduser, challenges faced while developing and future perspectives opened by this new Apache Syncope module.
Apache Syncope is a powerful and flexible open-source Identity Management solution. Apache Camel is an integration framework that comes with a huge list of messaging components. Wouldn't it be cool to be able to plug in an integration framework like Camel into an Identity Management solution like Syncope, so that you can easily write custom routing and mediation rules for Identity provisioning?
Well with Syncope 2.0.0 you can do just this with the new Apache Camel provisioning manager! In this talk, we will provide an overview of the exciting new features available in the Apache Syncope 2.0.0 release. In particular, we will focus on how it integrates with Apache Camel. We will go through some practical use-cases to illustrate how to exploit this new feature.
Encapsulating functionality: Web Components – set of new standards from Google. It’s time to adopt or maybe look back? It’s seems, we have had something similar, or it is absolutely different? JSF components – Oh, no! Or give a chance? Go forward to a client’s browser or review new features in server? How to start using Polymer under Spring Boot or maybe it will be PrimeFaces. Glance from back-end (and slightly manager) perspectives.
Through years of work have been trying many of Java frameworks which provides different level of abstractions on both server and client-side. Pure Servlet+JSP, JSF, GWT, Struts, Spring MVC, Vaadin, Play!, DWR, you name it. Sometimes it felt good, sometimes not, and with each year number of “good” applications reduced to the critical minimum.
Later I tried to bring all the good points I had ever seen together to create “a perfect being” and after years of struggling I feel that I have reached the goal. Let me share it…
Injecting custom code into authentication and authorization in ASP.NET has always been tedious at best. AspNet.Identity is a new library shipping with MVC 5, built to replace both ASP.NET Membership and Simple Membership. AspNet.Identity makes it much easier to implement custom authentication and authorization without the need to rewrite core components. In this session I will go deep into the abstractions that AspNet.Identity builds atop of, and show how to take advantage of these hook points to implement a custom membership system.
Apache Syncope is a powerful and flexible open-source Identity Management solution. Apache Camel is an integration framework that comes with a huge list of messaging components. Wouldn't it be cool to be able to plug in an integration framework like Camel into an Identity Management solution like Syncope, so that you can easily write custom routing and mediation rules for Identity provisioning?
Well with Syncope 2.0.0 you can do just this with the new Apache Camel provisioning manager! In this talk, we will provide an overview of the exciting new features available in the Apache Syncope 2.0.0 release. In particular, we will focus on how it integrates with Apache Camel. We will go through some practical use-cases to illustrate how to exploit this new feature.
Encapsulating functionality: Web Components – set of new standards from Google. It’s time to adopt or maybe look back? It’s seems, we have had something similar, or it is absolutely different? JSF components – Oh, no! Or give a chance? Go forward to a client’s browser or review new features in server? How to start using Polymer under Spring Boot or maybe it will be PrimeFaces. Glance from back-end (and slightly manager) perspectives.
Through years of work have been trying many of Java frameworks which provides different level of abstractions on both server and client-side. Pure Servlet+JSP, JSF, GWT, Struts, Spring MVC, Vaadin, Play!, DWR, you name it. Sometimes it felt good, sometimes not, and with each year number of “good” applications reduced to the critical minimum.
Later I tried to bring all the good points I had ever seen together to create “a perfect being” and after years of struggling I feel that I have reached the goal. Let me share it…
Injecting custom code into authentication and authorization in ASP.NET has always been tedious at best. AspNet.Identity is a new library shipping with MVC 5, built to replace both ASP.NET Membership and Simple Membership. AspNet.Identity makes it much easier to implement custom authentication and authorization without the need to rewrite core components. In this session I will go deep into the abstractions that AspNet.Identity builds atop of, and show how to take advantage of these hook points to implement a custom membership system.
PortalGuard is a brandable hybrid cloud portal that promotes on-demand logins, self-service password reset, and pain-free navigation to your everyday business or education web applications.
PortalGuard comes out-of-the-box with support for multiple Single Sign-on protocols, Two-factor authentication methods, and integration with existing web portal software for a seamless authentication experience.
Discover what are OWIN and Katana projects, and how Microsoft became able to release a family of modular components rather than a monolithic framework.
Hire laravel-php-developers- Hire Laravel ProgrammersSummation IT
Hire Laravel PHP Developers from Summation IT. We have dedicated Laravel PHP Programmers with different experience levels on various industry domains. Hire laravel programmers from Summation IT proficient in working with advanced Laravel tools.
Azure cloud for the web frontend developersMaxim Salnikov
It’s impossible to reason about modern web application without mentioning its front-end part – extensive, feature-rich, performant, sometimes with quite sophisticated structure and build process, but after all not requiring server-side code to construct it in the runtime, i.e. static. In the Azure cloud, we now have a special service for this kind of apps (including both classic SPAs and statically generated ones), empowering developers to focus on the business logic rather than the infrastructure that builds and hosts them.
In my technical session & demo, let's go through the full development flow: we scaffold a web front-end app, push it to the GitHub, set up Azure Static Web App service, enjoy the fully automatic build, and deploy to global high-availability hosting - all in a few minutes!
CloudStack-UI at the JAX London СonferenceOlga Nikienko
On 11th of October at the JAX conference the Bitworks team has introduced the CloudStack-UI product. Our development team leader Ilya Zolotukhin performed at the Cloud And Modern Infrastructure track.
PortalGuard is a brandable hybrid cloud portal that promotes on-demand logins, self-service password reset, and pain-free navigation to your everyday business or education web applications.
PortalGuard comes out-of-the-box with support for multiple Single Sign-on protocols, Two-factor authentication methods, and integration with existing web portal software for a seamless authentication experience.
Discover what are OWIN and Katana projects, and how Microsoft became able to release a family of modular components rather than a monolithic framework.
Hire laravel-php-developers- Hire Laravel ProgrammersSummation IT
Hire Laravel PHP Developers from Summation IT. We have dedicated Laravel PHP Programmers with different experience levels on various industry domains. Hire laravel programmers from Summation IT proficient in working with advanced Laravel tools.
Azure cloud for the web frontend developersMaxim Salnikov
It’s impossible to reason about modern web application without mentioning its front-end part – extensive, feature-rich, performant, sometimes with quite sophisticated structure and build process, but after all not requiring server-side code to construct it in the runtime, i.e. static. In the Azure cloud, we now have a special service for this kind of apps (including both classic SPAs and statically generated ones), empowering developers to focus on the business logic rather than the infrastructure that builds and hosts them.
In my technical session & demo, let's go through the full development flow: we scaffold a web front-end app, push it to the GitHub, set up Azure Static Web App service, enjoy the fully automatic build, and deploy to global high-availability hosting - all in a few minutes!
CloudStack-UI at the JAX London СonferenceOlga Nikienko
On 11th of October at the JAX conference the Bitworks team has introduced the CloudStack-UI product. Our development team leader Ilya Zolotukhin performed at the Cloud And Modern Infrastructure track.
Dreamforce 2017 - Up close and personal with Lightning Experience as Platformandyinthecloud
Lightning Experience is not just a pretty face, it’s a sophisticated application container for modern web applications. Understand how to leverage Lightning's numerous extensibility to build Lightning applications like a pro without reinventing the wheel. We will look in detail at Lightning, Actions, Action Overrides, Utility Bar and the rich features of the multi-tabbed Lighting Console App.
What does it take to get an application into production? Many processes, tools and automation surround that application to deliver it to the customer. As it becomes more common for development teams to autonomously deliver and run their software, the focus of the traditional operational teams shifts towards an as-a-service mindset. But how is such a team positioned within the company? And is Platform Engineering any different from Software Engineering?
In this talk I’ll share my experiences as a platform engineer and explain why I believe that every company should be conscious about why and how to setup this responsibility. I’ll also discuss the biggest challenges surrounding it - and how to tackle them.
Дмитрий Хоревич "Cloud native security with UAA \ Как защитить микросервисы с...Tanya Denisyuk
Вопросы безопасности в больших корпоративных приложениях всегда стоят на первом плане. В монолитной архитектуре эти вопросы решаются достаточно единообразно, так как приложение является единым целым. Но сложности начинаются, когда мы решаем перейти к микросервисной архитектуре. Ведь по сути мы имеем дело с несколькими приложениями, доступ к которым нужно контролировать. В докладе мы обсудим:
· Какие существуют подходы обеспечения безопасности микросервисных приложений
· Их достоинства и недостатки
· Как защитить микросервесы с помощью CloudFoundry User Account and Authentication (UAA) Server
Apigility is a tool introduced in 2013 by Zend and the Zend Framework community, designed to handle in a simple graphical interface the configuration, management and creation of APIs, and provides classes to support API development.
This presentation is a quick but hopefully interesting introduction to this tool, aiming to demonstrate some of the most important features.
My presentation about how to couple Asp.NEt MVC and Angular on how to use this 2 web technologies to achieve a solution. This presentation born from the experience i had in the last 1 year with this couple.
Innomatic Platform is the open source platform for building multi-tenant web applications in PHP.
This presentation provides an overview of Innomatic architecture and main frameworks.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
2. Apache Syncope
committer since 2013
→ PMC member in
October 2016
➔ Apache Syncope dev since 1.1.X release
➔ Apache Syncope Enduser UI
➔ Syncope Docker
https://github.com/andrea-patricelli/syncope-docker
About me
3. Agenda
Introduction to the IdM world
Who is the end user and why a console
Enduser UI: from 1.0 to 2.0
How we made it
Innovations brought
Future perspectives
4. What's IdM about?
● Data records that contains a collection
of data about a person
● “Data record” → Account
● “A person” → Identity
● The joint effort of business
5. ● Identity Stores
○ Storage of user information
● Provisioning
○ Synchronize account data across identity stores and a
broad range of data formats, models, meanings and
purposes
● Access Management
○ Security mechanisms that take place when a user is
accessing a specific system or functionality
IdM technologies
8. Apache Syncope
● Inception by Tirasa in 2010
● Entered ASF incubator in February 2012
● Graduated as TLP in November 2012
● Active community
○ 18 committers, 6 contributors
○ ~200 mailing list subscribers, stable traffic
○ 37 releases
9. Who is the end user
“Users whose identities are stored into Apache Syncope IdM, but that are not
directly involved into other identities (administration) management flow. They
interact with Apache Syncope IDM only to manage their own profile.
The set of the operations provided to end users can be addressed as self-
management.”
10. ➔ Intuitive and Easy-to-use admin console developed
with Apache Wicket.
➔ Complete frontend interface of all Apache Syncope
features.
➔ Role-based access to the console features:
user can access to console sections only if provided
with determined entitlements associated
to admin specified roles.
Once upon a time the Console 1.X...
12. Console 1.X for self-management
Introduced since Apache Syncope 1.0.0
Self-management as integrating part of the Console.
Enabled/Disabled through Apache Syncope properties, accessible from the same
Console.
★ Self-registration
★ Self-update
★ Password reset
15. The need for a more dedicated tool was raising
➔ Need to have an application completely separated from the Console.
➔ Self-management operations must be unrelated to the Core.
➔ Enduser UI should be an highly customizable component, though you can use it as-
is.
➔ You can provide it with Syncope or not (i.e enable or disable self-management
features).
➔ Enduser UI should also provide a certain level of configurability (we will clarify
later...)
Yes but...
16. A client-side application very near to the end-user would bring (generally
speaking) some not negligible advantages:
★ Parsed by the user’s browser.
★ Reacts to user input.
★ Can be seen and edited by the user in full.
★ Cannot store anything that lasts beyond a page refresh (except cookies).
★ Cannot read files off of a server directly, must communicate
via HTTP requests.
Why not a client-side JS application?
17. It would have guaranteed all requirements needed
High customizability
Decoupling of the self-management features from the Console and the
Core.
Modularization of self-management features
Better fit to customers needs about frontend console appearance
From Apache Syncope architectural POV
21. Development challenges
It was not sunshine and rainbows…
Integration AngularJS → Apache Wicket little explored
E2E testing integration with Maven lifecycle
EndUser UI and Admin console: sometimes similar
requirements but distinct implementations because of
different technologies
22. Main functional requirements...
➔ Login page simple and linear like admin Console one
➔ Wizard-like form
➔ Form validation with custom messages
➔ Session and authentication management
➔ Integration Tests suite, integrated into Maven lifecycle
➔ User Self create/update
23. …and not functional
➔ Highly customizable interface
➔ Easy to use
➔ Enduser console should be a “proposal”, from which the customer
can start to develop his own UI
➔ Should implement all the functionalities required to self-
management → not incomplete.
➔ Follow admin console evolution and replicate some core
24. Enduser UI innovations: Usage
★ Interactive and intelligent breadcrumb
★ Configurable wizard panels, possibility to add/remove
them
★ Configurable validation
★ Configurable Password strength validator
★ Easy to configure i18n
“playgound zone” at syncope-vm.apache.org:9080/syncope-enduser
25. Enduser UI innovations: Security
★ Authentication delegated to Apache Syncope
★ XSRF-token validation
★ Captcha validation before submitting form
★ Possibility to integrate with Google re-Captcha
★ Possibility to enable/disable security features
26. Enduser UI innovations: Testing
★ IT made with ProtractorJS
★ Maven-driven build process
★ Tests executed in a real browser, simulating user interaction
→ ProtractorJS is and e2e testing framework for web-based
application written in AngularJS
30. Enduser UI will follow Apache Syncope evolution, they are indissolubly related,
but (at the same time) it will ever follow a parallel flow.
➔ Social registration (Google, Facebook, LinkedIn)
➔ Deploy on lightweight containers (Payara) VS full JS backend
➔ AngularJS 2.0 support
➔ Google re-Captcha easy enabling
➔ HTML templating → custom themes
Enduser UI future perspectives
Console is a complete and ready-to-use application
We considered all possible solutions, also the one to vary a bit from the actual Console architecture and technology.
Why Apache Wicket
Well known Apache framework
Very easy creation of Web Application and RESTful resources
Already used in Syncope, no need of new imports or new technologies, we had the solution at home
Why AngularJS?
Mvc done right: Most frameworks implement MVC by asking you to split your app into MVC components, then require you to write code to string them up together again
Well documented
Well known to us, we did not start from scratch. Previously experienced
Data models are POJO: Data models in Angular are plain old JavaScript objects (POJO) and don’t require extraneous getter and setter functions
Directives: Directives are Angular’s way of bringing additional functionality to HTML
ProtractorJS: easy to use end-to-end test framework for AngularJS applications
Highly customizable interface: appearance, enable/disable functionalities, etc.
Actual catpcha implementation made with Wicket
As we can see more requirements are involvedAs you can understand, Protractor needs a sort of environment to be prepared and made available, including dependency resolution, on-the-fly during the Apache Syncope (Maven-driven) build process!
PortractorJS runs on top of NodeJS, that needs to be installed upfront. Moreover, Protractor requires a webdriver, acting as a mediator to access browsers API; we have finally chosen the implementation provided by Selenium.
Maven installs PhantomJS, Node and Protractor (pre-integration-test): once everything has been set up, end-to-end tests are finally executed (integration-test). When application is up and running (embedded mode), e2e tests can be re-executed without need of restarting anything, speeding up the test development process.
Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.