Apache Lucene is the de-facto standard open source library for Java developers to implement full-text-search capabilities.
While it’s thriving in its field, it is rarely mentioned in the scope of Java EE development.
In this talk we will see for which features many developers love Lucene, make some concrete examples of common problems it elegantly solves, and see some best practices about using it in a Java EE stack.
Finally we'll see how some popular OSS projects such as Hibernate ORM (JPA provider), WildFly (Java EE runtime) and Infinispan (in-memory datagrid, JCache implementor) actually provide great Lucene integration capabilities.
CDI portable extensions are one of greatest features of Java EE allowing the platform to be extended in a clean and portable way. But allowing extension is just part of the story. CDI opens the door to a whole new eco-system for Java EE, but it’s not the role of the specification to create these extensions.
Apache DeltaSpike is the project that leads this brand new eco-system by providing useful extension modules for CDI applications as well as tools to ease the creation of new ones.
In this session, we’ll start by presenting the DeltaSpike toolbox and show how it helps you to develop for CDI. Then we’ll describe the major extensions included in DeltaSpike, including 'configuration', 'scheduling' and 'data'.
Google App Engine (GAE) is a popular PaaS offering. Where its scalable and reliable environment is hidden behind a custom API. This makes GAE apps hard to port over to other non-GAE environments.
But what if one could implement such similar environment? And you could simply move your GAE application’s .war file to this new environment and it would just work?
After all, at the end it’s all about the API, plus scalable and reliable services.
JBoss CapeDwarf project aims at making this a reality. This presentation will provide a glimpse into what it takes to implement something as GAE, ranging from runtime integration with JBoss Application Server, actual services implementation to last but not least, automated heavy testing.
Faster java ee builds with gradle [con4921]Ryan Cuprak
JavaOne 2016
It is time to move your Java EE builds over to Gradle! Gradle continues to gain momentum across the industry. In fact, Google is now pushing Gradle for Android development. Gradle draws on lessons learned from both Ant and Maven and is the next evolutionary step in Java build tools. This session covers the basics of switching existing Java EE projects (that use Maven) over to Gradle and the benefits you will reap, such as incremental compiling, custom distributions, and task parallelization. You’ll see demos of all the goodies you’ve come to expect, such as integration testing and leveraging of Docker. Switching is easier than you think, and no refactoring is required.
This document provides an overview of dependency injection and related concepts like inversion of control and aspect oriented programming. It discusses what dependency injection is, when and why to use it, and examples of how it can make code more organized and flexible. Specifically, it explains how dependency injection frameworks can manage object creation through configuration rather than code, allowing dependencies to be easily swapped. It also describes how inversion of control "flips" code to externalize default values and dependencies, and how aspect oriented programming allows cross-cutting concerns to be modularized.
Java(ee) mongo db applications in the cloud Shekhar Gulati
This document provides an agenda and summary for a workshop on developing MongoDB applications on OpenShift presented by Shekhar Gulati. The agenda includes getting started with OpenShift, developing a location-aware Java EE application using JAX-RS and CDI for REST services, and MongoDB for the database. The document discusses OpenShift, JAX-RS, CDI, and MongoDB concepts. It also outlines code samples and steps to create and deploy a sample Twitter-like application on OpenShift that supports creating, finding, and geo-searching statuses.
This document provides an overview of managed beans in IBM Domino applications. It discusses key concepts such as what managed beans are, how they are configured and used, and when they make sense to use over traditional server-side JavaScript. It then outlines steps to create a basic managed bean, including creating the Java class, adding properties and getters/setters, configuring in faces-config.xml, and using the bean in an XPage. The document also covers debugging managed beans and presents an example application where managed beans would be well suited to address complexity and persistence needs.
Microservices - java ee vs spring boot and spring cloudBen Wilcock
Spring Boot and Spring Cloud provide an easier and more productive framework for building cloud-native microservices compared to Java EE. Spring Boot simplifies the development, deployment, and management of microservices. Spring Cloud adds helpful capabilities for service discovery, external configuration, load balancing, and monitoring that are missing from Java EE. While Java EE adoption is declining, the use of Spring Boot and Spring Cloud is growing rapidly among developers.
A talk given to JCConf 2015 on 2015/12/05.
在程式設計領域,“immutable objects” 是相當重要的設計模式。同樣的,在虛擬化及雲端時代,“immutable infrastructure” 也成為新一代的顯學。在資源及流程的充分配合下,這將會大大簡化系統的複雜度,穩定性也會大大提升。
本演講將會從觀念出發,並佐以部份實作建議,讓大家有足夠資訊來評估此架構的好處。
Video: https://youtu.be/9j008nd6-A4
CDI portable extensions are one of greatest features of Java EE allowing the platform to be extended in a clean and portable way. But allowing extension is just part of the story. CDI opens the door to a whole new eco-system for Java EE, but it’s not the role of the specification to create these extensions.
Apache DeltaSpike is the project that leads this brand new eco-system by providing useful extension modules for CDI applications as well as tools to ease the creation of new ones.
In this session, we’ll start by presenting the DeltaSpike toolbox and show how it helps you to develop for CDI. Then we’ll describe the major extensions included in DeltaSpike, including 'configuration', 'scheduling' and 'data'.
Google App Engine (GAE) is a popular PaaS offering. Where its scalable and reliable environment is hidden behind a custom API. This makes GAE apps hard to port over to other non-GAE environments.
But what if one could implement such similar environment? And you could simply move your GAE application’s .war file to this new environment and it would just work?
After all, at the end it’s all about the API, plus scalable and reliable services.
JBoss CapeDwarf project aims at making this a reality. This presentation will provide a glimpse into what it takes to implement something as GAE, ranging from runtime integration with JBoss Application Server, actual services implementation to last but not least, automated heavy testing.
Faster java ee builds with gradle [con4921]Ryan Cuprak
JavaOne 2016
It is time to move your Java EE builds over to Gradle! Gradle continues to gain momentum across the industry. In fact, Google is now pushing Gradle for Android development. Gradle draws on lessons learned from both Ant and Maven and is the next evolutionary step in Java build tools. This session covers the basics of switching existing Java EE projects (that use Maven) over to Gradle and the benefits you will reap, such as incremental compiling, custom distributions, and task parallelization. You’ll see demos of all the goodies you’ve come to expect, such as integration testing and leveraging of Docker. Switching is easier than you think, and no refactoring is required.
This document provides an overview of dependency injection and related concepts like inversion of control and aspect oriented programming. It discusses what dependency injection is, when and why to use it, and examples of how it can make code more organized and flexible. Specifically, it explains how dependency injection frameworks can manage object creation through configuration rather than code, allowing dependencies to be easily swapped. It also describes how inversion of control "flips" code to externalize default values and dependencies, and how aspect oriented programming allows cross-cutting concerns to be modularized.
Java(ee) mongo db applications in the cloud Shekhar Gulati
This document provides an agenda and summary for a workshop on developing MongoDB applications on OpenShift presented by Shekhar Gulati. The agenda includes getting started with OpenShift, developing a location-aware Java EE application using JAX-RS and CDI for REST services, and MongoDB for the database. The document discusses OpenShift, JAX-RS, CDI, and MongoDB concepts. It also outlines code samples and steps to create and deploy a sample Twitter-like application on OpenShift that supports creating, finding, and geo-searching statuses.
This document provides an overview of managed beans in IBM Domino applications. It discusses key concepts such as what managed beans are, how they are configured and used, and when they make sense to use over traditional server-side JavaScript. It then outlines steps to create a basic managed bean, including creating the Java class, adding properties and getters/setters, configuring in faces-config.xml, and using the bean in an XPage. The document also covers debugging managed beans and presents an example application where managed beans would be well suited to address complexity and persistence needs.
Microservices - java ee vs spring boot and spring cloudBen Wilcock
Spring Boot and Spring Cloud provide an easier and more productive framework for building cloud-native microservices compared to Java EE. Spring Boot simplifies the development, deployment, and management of microservices. Spring Cloud adds helpful capabilities for service discovery, external configuration, load balancing, and monitoring that are missing from Java EE. While Java EE adoption is declining, the use of Spring Boot and Spring Cloud is growing rapidly among developers.
A talk given to JCConf 2015 on 2015/12/05.
在程式設計領域,“immutable objects” 是相當重要的設計模式。同樣的,在虛擬化及雲端時代,“immutable infrastructure” 也成為新一代的顯學。在資源及流程的充分配合下,這將會大大簡化系統的複雜度,穩定性也會大大提升。
本演講將會從觀念出發,並佐以部份實作建議,讓大家有足夠資訊來評估此架構的好處。
Video: https://youtu.be/9j008nd6-A4
Join us for this interactive event and get your hands dirty with some WildFly 9 hacking!
Our host Kabir Khan will explain how you can contribute to the WildFly project at many different levels, from properly reporting bugs in the forums and issue tracker, to actually being able to submit a pull request.
During this interactive event you will have a chance to play with WildFly 9 and try some of the following:
• Find a JIRA you want to work on.
• See how to check-out the code and setup your IDE.
• Build WildFly
• Code walkthrough - code organisation, jboss-modules etc.
• Debug something from a stack trace in a JIRA issue to nail down the problem.
• Try the testsuite
• And more!
The document discusses containerizing ASP.NET Core applications with Kubernetes. It begins with an overview of .NET Core and containers, and how they have converged. It then discusses Kubernetes and how it can help manage containers at scale. It covers Kubernetes building blocks like deployments, pods, labels, services, and replica sets. It provides examples of deploying containers with Kubernetes, including demonstrations of creating deployments, services, scaling applications, and rolling updates.
This document provides an overview of using Dropwizard, a Java framework for building production-grade RESTful web services, with Groovy. It discusses how Dropwizard combines popular Java libraries and frameworks, highlights some companies using Dropwizard with Groovy successfully, and describes key parts of a Dropwizard application like configurations, resources, representations, metrics, and deployment. The document emphasizes how Dropwizard enables service-oriented architectures and provides advantages like performance, testability, and easy deployment.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
Jenkins is used to automate testing for software projects, including continuous integration and continuous delivery. Over time, the number of tests and configurations grew substantially, creating challenges around speed and scaling. Solutions involved leveraging Jenkins plugins for capabilities like matrix configurations, cloud integration, and elasticity. This allowed parallelizing tests across different environments and machines. DVCS also helped with faster feedback by automatically triggering downstream tests upon code changes.
A presentation that guides you through the stages of testing your Java enterprise application. Finally it shows you that Arquillian is the best tool for that
Gradle is an open source build automation tool that uses Groovy for its build configuration files rather than XML like Maven. It offers features like incremental compilation, parallel task execution, and a built-in dependency management system. Projects can be configured as multi-module builds with hierarchical or flat layouts. Gradle supports plugins for tasks like compilation, testing, packaging, and publishing. It integrates with IDEs like IntelliJ, Eclipse, and NetBeans and can be used to build Java EE applications and other projects.
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationDevelopment Seed
Presentation to the IBM Drupal Users Group on improving configuration management in Drupal using the Features module and exportables. This is becoming a best practice for configuration management.
Microservices with apache_camel_barcelonaClaus Ibsen
Apache Camel is a very popular integration library that works very well with microservice architecture.
This talk introduces you to Apache Camel and how you can easily get started with Camel on your computer.
Then we cover how to create new Camel projects from scratch as micro services which you can boot using Camel or Spring Boot, or other micro containers such as Jetty or fat JARs.
We then take a look at what options you have for monitoring and managing your Camel microservices using tooling such as Jolokia, and hawtio web console.
The second part of this talk is about running Camel in the cloud.We start by showing you how you can use the Maven Docker Plugin to create a docker image of your Camel application and run it using docker on a single host. Then kubernetes enters the stage and we take a look at how you can deploy your docker images on a kubernetes cloud platform, and how the fabric8 tooling can make this much easier for the Java developers.
At the end of this talk you will have learned about and seen in practice how to take a Java Camel project from scratch, turn that into a docker image, and how you can deploy those docker images in a scalable cloud platform based on Google's kubernetes.
Developing modern java web applications with java ee 7 and angular jsShekhar Gulati
This document outlines an agenda for a workshop on developing modern Java web applications with Java EE 7 and AngularJS. The workshop will be presented by Shekhar Gulati and will take participants through steps to develop a conference application using these technologies, including creating the Java EE 7 project, developing REST and asynchronous resources, integrating a Twitter streaming client, building the AngularJS UI, and deploying the application to OpenShift.
Using Play Framework 2 in production
- Play Framework 2 is a web framework for Scala that embraces HTTP and allows codebases to stay readable and DRY as they grow large.
- As a startup, Play Framework 2 and Scala can attract developers who want to learn and find better ways to develop for the web using a powerful yet stable language and bleeding edge yet stable framework.
- Some early mistakes included slow CSS compilation, not properly configuring for asynchronous code like Slick, and not managing JavaScript, but Play is forgiving and allows replacing pieces as needs become more advanced.
With Java 9 modules coming to us soon, you want your existing code to be fully ready for the module system. Making code modular can be a daunting task, but Java 9 comes with a number features to ease migration. This includes automatic modules, the unnamed module and a number of command line arguments.
In this talk we will look at examples of migrating real code. It discusses common problems youll run into during migration, leading to practical tips and the ability to set realistic goals. Its also a good way to understand the module system itself and the various migration paths it supports. This talk is an excellent preparation to start migrating your own code.
* Understanding modules and the module path
* Automatic modules
* Mixing classpath and modulepath
* Dealing with reflection
* Escape switches
* Jdeps
All topics will be based on examples of often used libraries and frameworks.
Welcome to presentation on Spring boot which is really great and relatively a new project from Spring.io. Its aim is to simplify creating new spring framework based projects and unify their configurations by applying some conventions. This convention over configuration is already successfully applied in so called modern web based frameworks like Grails, Django, Play framework, Rails etc.
This document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
This presentation starts with an introduction to the rationale behind automated deployments in Continuous Delivery and DevOps. Then, I compare agent-based architectures, such as Chef and Puppet with the agentless architecture of the server orchestration engine Ansible. The presentation concludes with an automated deployment of Dynatrace into a simulated production environment.
Find out how to configure and package clustered Payara Micro with load balancing, automatic scaling and dedicated storage for building cloud-native microservices. Then with the help of cloud scripting and triggering, automate CI/CD for the deployed application and emulate the load to check the scaling and performance results.
Neo4j Stored Procedure Training Part 1Max De Marzi
This document provides instructions for creating and testing a stored procedure in Neo4j using Java and Maven. It discusses setting up a Maven project with the necessary dependencies, creating a stored procedure class with the @Procedure annotation, returning results with a custom Result class, and testing the procedure using the Neo4jRule to start an embedded Neo4j instance with the procedure deployed. The document contains code snippets and step-by-step explanations for setting up the project structure, procedure, and test.
React Native is an open source framework by Facebook that enables software engineers to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. I'll talk about what React Native actually is (and what it isn't), how it works under the hood, and why it was designed like that.
Join us for this interactive event and get your hands dirty with some WildFly 9 hacking!
Our host Kabir Khan will explain how you can contribute to the WildFly project at many different levels, from properly reporting bugs in the forums and issue tracker, to actually being able to submit a pull request.
During this interactive event you will have a chance to play with WildFly 9 and try some of the following:
• Find a JIRA you want to work on.
• See how to check-out the code and setup your IDE.
• Build WildFly
• Code walkthrough - code organisation, jboss-modules etc.
• Debug something from a stack trace in a JIRA issue to nail down the problem.
• Try the testsuite
• And more!
The document discusses containerizing ASP.NET Core applications with Kubernetes. It begins with an overview of .NET Core and containers, and how they have converged. It then discusses Kubernetes and how it can help manage containers at scale. It covers Kubernetes building blocks like deployments, pods, labels, services, and replica sets. It provides examples of deploying containers with Kubernetes, including demonstrations of creating deployments, services, scaling applications, and rolling updates.
This document provides an overview of using Dropwizard, a Java framework for building production-grade RESTful web services, with Groovy. It discusses how Dropwizard combines popular Java libraries and frameworks, highlights some companies using Dropwizard with Groovy successfully, and describes key parts of a Dropwizard application like configurations, resources, representations, metrics, and deployment. The document emphasizes how Dropwizard enables service-oriented architectures and provides advantages like performance, testability, and easy deployment.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
Jenkins is used to automate testing for software projects, including continuous integration and continuous delivery. Over time, the number of tests and configurations grew substantially, creating challenges around speed and scaling. Solutions involved leveraging Jenkins plugins for capabilities like matrix configurations, cloud integration, and elasticity. This allowed parallelizing tests across different environments and machines. DVCS also helped with faster feedback by automatically triggering downstream tests upon code changes.
A presentation that guides you through the stages of testing your Java enterprise application. Finally it shows you that Arquillian is the best tool for that
Gradle is an open source build automation tool that uses Groovy for its build configuration files rather than XML like Maven. It offers features like incremental compilation, parallel task execution, and a built-in dependency management system. Projects can be configured as multi-module builds with hierarchical or flat layouts. Gradle supports plugins for tasks like compilation, testing, packaging, and publishing. It integrates with IDEs like IntelliJ, Eclipse, and NetBeans and can be used to build Java EE applications and other projects.
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationDevelopment Seed
Presentation to the IBM Drupal Users Group on improving configuration management in Drupal using the Features module and exportables. This is becoming a best practice for configuration management.
Microservices with apache_camel_barcelonaClaus Ibsen
Apache Camel is a very popular integration library that works very well with microservice architecture.
This talk introduces you to Apache Camel and how you can easily get started with Camel on your computer.
Then we cover how to create new Camel projects from scratch as micro services which you can boot using Camel or Spring Boot, or other micro containers such as Jetty or fat JARs.
We then take a look at what options you have for monitoring and managing your Camel microservices using tooling such as Jolokia, and hawtio web console.
The second part of this talk is about running Camel in the cloud.We start by showing you how you can use the Maven Docker Plugin to create a docker image of your Camel application and run it using docker on a single host. Then kubernetes enters the stage and we take a look at how you can deploy your docker images on a kubernetes cloud platform, and how the fabric8 tooling can make this much easier for the Java developers.
At the end of this talk you will have learned about and seen in practice how to take a Java Camel project from scratch, turn that into a docker image, and how you can deploy those docker images in a scalable cloud platform based on Google's kubernetes.
Developing modern java web applications with java ee 7 and angular jsShekhar Gulati
This document outlines an agenda for a workshop on developing modern Java web applications with Java EE 7 and AngularJS. The workshop will be presented by Shekhar Gulati and will take participants through steps to develop a conference application using these technologies, including creating the Java EE 7 project, developing REST and asynchronous resources, integrating a Twitter streaming client, building the AngularJS UI, and deploying the application to OpenShift.
Using Play Framework 2 in production
- Play Framework 2 is a web framework for Scala that embraces HTTP and allows codebases to stay readable and DRY as they grow large.
- As a startup, Play Framework 2 and Scala can attract developers who want to learn and find better ways to develop for the web using a powerful yet stable language and bleeding edge yet stable framework.
- Some early mistakes included slow CSS compilation, not properly configuring for asynchronous code like Slick, and not managing JavaScript, but Play is forgiving and allows replacing pieces as needs become more advanced.
With Java 9 modules coming to us soon, you want your existing code to be fully ready for the module system. Making code modular can be a daunting task, but Java 9 comes with a number features to ease migration. This includes automatic modules, the unnamed module and a number of command line arguments.
In this talk we will look at examples of migrating real code. It discusses common problems youll run into during migration, leading to practical tips and the ability to set realistic goals. Its also a good way to understand the module system itself and the various migration paths it supports. This talk is an excellent preparation to start migrating your own code.
* Understanding modules and the module path
* Automatic modules
* Mixing classpath and modulepath
* Dealing with reflection
* Escape switches
* Jdeps
All topics will be based on examples of often used libraries and frameworks.
Welcome to presentation on Spring boot which is really great and relatively a new project from Spring.io. Its aim is to simplify creating new spring framework based projects and unify their configurations by applying some conventions. This convention over configuration is already successfully applied in so called modern web based frameworks like Grails, Django, Play framework, Rails etc.
This document provides an overview of Spring Boot and some of its key features. It discusses the origins and modules of Spring, how Spring Boot simplifies configuration and dependency management. It then covers examples of building Spring Boot applications that connect to a SQL database, use RabbitMQ for messaging, and schedule and run asynchronous tasks.
This presentation starts with an introduction to the rationale behind automated deployments in Continuous Delivery and DevOps. Then, I compare agent-based architectures, such as Chef and Puppet with the agentless architecture of the server orchestration engine Ansible. The presentation concludes with an automated deployment of Dynatrace into a simulated production environment.
Find out how to configure and package clustered Payara Micro with load balancing, automatic scaling and dedicated storage for building cloud-native microservices. Then with the help of cloud scripting and triggering, automate CI/CD for the deployed application and emulate the load to check the scaling and performance results.
Neo4j Stored Procedure Training Part 1Max De Marzi
This document provides instructions for creating and testing a stored procedure in Neo4j using Java and Maven. It discusses setting up a Maven project with the necessary dependencies, creating a stored procedure class with the @Procedure annotation, returning results with a custom Result class, and testing the procedure using the Neo4jRule to start an embedded Neo4j instance with the procedure deployed. The document contains code snippets and step-by-step explanations for setting up the project structure, procedure, and test.
React Native is an open source framework by Facebook that enables software engineers to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. I'll talk about what React Native actually is (and what it isn't), how it works under the hood, and why it was designed like that.
This document discusses using XHProf to perform performance tuning of PHP applications. It begins with an introduction of the speaker and their company Pardot. It then provides an overview of XHProf including how to install, configure, and use it to profile PHP applications. The document outlines various performance tips for PHP such as optimizing array operations, managing memory efficiently, and improving database queries. It also walks through some examples of profiling a sample Symfony application that involves getting click data from a database. The examples demonstrate how to optimize queries and object hydration to improve performance.
The document summarizes MySQL high availability (HA) solutions used by bwin games AB. It discusses HA concepts and components, requirements for bwin's database platform, solutions considered including MySQL replication and clustering, and the obstacles with each. Bwin ultimately chose Linux HA due to its free cost and minimal required application changes. The implementation uses shared storage with DRBD and heartbeat across bonded network interfaces. While the solution provides HA, long recovery times still cause interruptions. Faster recovery and multi-master replication are recommended for true high availability.
How to Build a Scalable Platform for Today's PublishersDick Olsson
Presented during DrupalCon Denver 2012, on the Site Building track.
http://denver2012.drupal.org/program/sessions/how-build-scalable-platform-todays-publishers
Riga Dev Day - Automated Android Continuous IntegrationNicolas Fränkel
This document discusses setting up continuous integration for Android projects. It describes issues with dependencies like Gradle and Robolectric not working properly due to proxy restrictions. It proposes solutions like using a local Maven repository, configuring Gradle properties, and creating a custom Robolectric test runner and dependency resolver. It also addresses problems updating the Android SDK due to needing proxy authentication and license agreements. An Expect script is created to automate providing the credentials and agreeing to licenses during the SDK update process.
The document discusses client-side development concepts for 2016. It covers background on how user interfaces have evolved to the web. Key concepts discussed include state, imperative vs functional programming, and reactive programming. API styles like RPC, REST, and GraphQL are compared. Popular frontend frameworks like Angular, React, and Vue are also mentioned. The document concludes that choices should consider whether the project requires learning something new or not, reusability, and handling data synchronization and performance over the short and long term. It suggests that separating application code from framework code can help ensure independence.
The document discusses the design and implementation of Usergrid, a multi-tenant, multi-server application platform built using Java, Spring, Jersey, Jackson, and Cassandra to provide user management, data storage, analytics and other features through a RESTful API in a scalable way that allows multiple teams and applications to easily build and deploy mobile and web apps. The document outlines some of the challenges in building such a platform and how Usergrid addresses issues like consistency, API design, permissions, built-in logic and operations.
Java EE 6 and NoSQL Workshop DevFest AustriaShekhar Gulati
This document provides an agenda for a workshop on developing a location aware application using Java EE 6, MongoDB and OpenShift. The workshop will cover getting started with OpenShift, developing a location aware application using JAX-RS for REST web services, CDI for dependency injection and MongoDB for the database. It will also cover deploying the application to OpenShift. The agenda includes sessions on OpenShift overview, setting up JAX-RS, configuring CDI and MongoDB, implementing CRUD operations and geospatial queries. Code examples will be provided on GitHub for attendees to follow along.
OpenDistro for Elasticsearch and how Bitergia is using it.Madrid DevOpsjavier ramirez
Talk done at Madrid DevOps October 2019. Javier Ramirez @supercoco9, Tech Evangelist en AWS, y Jose Manrique @jsmanrique, experto en Open Source y Mobile y CEO de Bitergia en Octubre vienen a Madrid Devops para contarnos qué es Open Distro for Elasticsearch, en qué se diferencia de la distribución oficial de Elastic y qué beneficios te puede dar si ya estás usando Elasticsearch. Además te contaremos un caso real de una migración a Open Distro y cómo se está utilizando para analizar métricas de proyectos Open Source.
Open Distro for ElasticSearch and how Grimoire is using it. Madrid DevOps Oct...javier ramirez
Bitergia uses Open Distro for Elasticsearch to provide analytics on software development projects. Open Distro is an Apache 2.0-licensed distribution of Elasticsearch that includes enterprise-grade security, alerting, SQL support, and performance analysis. It can be deployed flexibly on Docker or RPM/Debian and is easy to get started with. Bitergia analyzes activity, community, and performance metrics of projects to help organizations understand and improve their software development.
This document provides an overview of Apache Maven, including its history, key concepts, and ecosystem. Maven is a software project management tool that uses conventions for builds and dependencies. It manages a project's build process through a Project Object Model (POM) file and standardizes directory layout and build lifecycles. Maven allows for modular projects through a reactor and dependency management. Its ecosystem includes plugins, repository managers, and tools for testing, reporting and continuous integration.
Raptor is a PHP integration framework that aims to reduce cognitive load in development. It integrates technologies like Slim, Doctrine, and Twig to provide abstraction and synergy. Raptor has a standardized folder structure similar to Symfony and organizes bundles to modularize features. It implements security through protection from attacks and an RBAC system. An interactive user guide helps align developer and user mental models. The control panel provides access to configuration, component creation, UI building, and more. Raptor claims to reduce development time by 40-60% and allow new members to integrate within a day.
This document provides an overview of the Standard PHP Library (SPL) including common data structures, interfaces, exceptions and iterators. It discusses how SPL components like SplAutoload, SplFileInfo and various iterators are used in popular open source projects. The document encourages developers to get involved in improving SPL through code contributions and articles and provides contact information for the presenter.
Git workflows á la-carte, Presenation at jdays2013 www.jdays.se by Nicola Pao...hamidsamadi
This document discusses Git workflows and branching models. It recommends:
1. Using feature branches off a main branch like master for continuous delivery or release branches for product releases.
2. Merging feature branches rather than rebasing to maintain a clear history. Automatic merging is preferred with placeholders to avoid unwanted merges.
3. Setting up tools and automation through hooks for code quality, branch protection and continuous integration while allowing flexibility.
4. Embracing pull requests for collaboration while keeping the main repository structure clean through occasional rebases of feature branches.
The document discusses problems the author encountered with a third-party REST API and how GraphQL helped solve these issues. Some of the key problems included components being too tightly coupled to the API response, sending unnecessary data to clients, and inability to change data sources without rewriting the app. GraphQL provided instant documentation, allowed fetching related data in one query instead of multiple requests, encouraged better app structure, and provided more resilience to changing data sources. The author recommends GraphQL for applications that need to serve multiple clients, combine multiple data sources, or enforce better coding practices.
This document discusses GWT architectures and lessons learned from GWT development. It covers topics like structuring the UI with widgets, talking to servers, and shifting to rich internet applications. It provides tips for development like using MVP patterns, handling events, avoiding maintainability issues. It also discusses using GWT-RPC and generics for type-safe communications and batching commands for efficiency. Overall it focuses on architectural best practices, common problems, and solutions for building maintainable and performant GWT applications.
Django vs Laravel - Which is Better ? forBeacon Coders
Django and Laravel are powerful web development frameworks, each with its strengths. Django, written in Python, prioritizes simplicity and follows the "batteries-included" philosophy, offering a robust and integrated environment. Laravel, built with PHP, emphasizes elegant syntax and developer-friendly features, fostering rapid development. Choosing between them depends on preferences and project requirements. Django suits those favoring convention over configuration, while Laravel appeals to developers seeking expressive syntax and a vibrant ecosystem. Ultimately, both frameworks excel in different aspects, and the decision hinges on individual needs, language preferences, and the specific demands of the web development endeavor.
Similar to Apache Lucene for Java EE Developers (20)
The current hype around the Internet of Things (IoT) has led to a substantial amount of innovation thanks to open source software, open hardware, open standards, and community inspiration.
In this session, we will explore how you can use open source software to incorporate the physical world (the “Things”) into your traditional enterprise IT infrastructure. We will walk the path from a typical enterprise developer’s current focus on web desktop applications to mobile and devices, specifically developer prototyping platforms like Raspberry Pi, Intel Edison, Arduino, Particle.io, and several others.
Learn how to connect the physical world to your enterprise middleware backbone via sensors and actuators.
Burr Sutter: Technologist, innovator, creator, catalyst, an evangelist, product manager, teacher, and 'internal start-up' leader with the vision to see tomorrow's technology and the ability to focus and energize the engineers who build it and the communities who use it.
Areas of expertise include Java EE, SOA, Business Rules, BPM, PaaS, Mobile and IoT.
Scale changes everything. What once was quite adequate for enterprise messaging can't scale to support "Internet of Things". We need new protocols, patterns and architectures to support this new world. This session will start with basic introduction to the concept of Internet of Things. Next it will discuss general technical challenges involved with the concept and explain why it is becoming mainstream now. Now we’re ready to start talking about solutions. We will introduce some messaging patterns (like telemetry and command/control) and protocols (such as MQTT and AMQP) used in these scenarios. Finally we will see how Apache ActiveMQ is gearing up for this race. We will show tips for horizontal and vertical scaling of the broker, related projects that can help with deployments and what the future development road map looks like.
Martyn Taylor is a senior software engineer at Red Hat, with over 7 years’ experience working on cloud, middleware and messaging software. Martyn currently works on the Apache ActiveMQ suite of projects.
This session covers new improvements that will be introduced in WildFly 9:
• Wildfly-core will be extracted from the codebase and the ability to assemble a server on top of it will be introduced. WildFly 9 will be provided in two versions: Wildfly Web and Wildfly Full but users will be able to create their custom packaging of WildFly.
• Users will be able to shutdown the application server in a graceful manner - after the shutdown command is executed server will reject new requests and allow existing requests to finish before it shuts down.
• Support for HTTP/2, a new version of HTTP protocol based on SPDY, will be introduced.
• Users will be able to use WildFly as a load balancer. Consequently, it will be possible to manage the balancer with the same tools that are used to manage the rest of the domain. What is more, users will be able to use more efficient protocols, such as HTTP/2, for communication between the balancer and backend servers.
• An OpenShift cartridge, which will enable users to use WildFly 9 in cloud environment, will be provided.
• WildFly 9 will use OpenJDK ORB library instead of JacORB.
This document provides an overview of Narayana 5, an open source transaction manager. It discusses why transaction managers are needed, describes Narayana's features like supporting JTA 1.2 and REST-AT. It also covers using Narayana inside containers like WildFly and Docker. New features in Narayana 5 include a compensations framework, support for NoSQL, and software transactional memory. The document concludes with information on other areas Narayana is working on and links for more details.
Apache Deltaspike is a collection of CDI extensions that provide features like configuration, exception handling, internationalization, metadata builders, and more. It includes modules for container control, testing, security, scheduling, and data access using repositories. The data module implements the repository pattern and supports JPA out of the box to provide common data access methods and remove boilerplate JPA code.
Ceylon is a new modern, elegant programming language for the JVM and JavaScript VM, designed for team work. But it's more than that, it is a full platform with modularity, an SDK, tools and IDEs.
We will present Ceylon the language, the platform, and its ecosystem. You will see everything from starting a new project in the IDE to publishing it on Herd, our module repository, including using the SDK. We will also discuss the ongoing Ceylon projects such as the build system, Vert.x integration or Cayla, the new web framework.
Finally we will discuss the plans for Ceylon 1.2 and further.
The document discusses the benefits of meditation for reducing stress and anxiety. Regular meditation practice can help calm the mind and body by lowering heart rate and blood pressure. Studies have shown that meditating for just 10-20 minutes per day can have significant positive impacts on both mental and physical health over time.
This presentation provides an introduction to CDI (Contexts and Dependency Injection), covering the basic and intermediate features. It was authored by Antoine Sabot-Durand, the co-spec lead for CDI.
Arquillian is an innovative and highly extensible testing platform for the JVM that enables developers to easily create automated integration, functional and acceptance tests for Java middleware, from Java EE and beyond.
For years we’ve been exploring how to layer and separate our code to test in isolation on the unit level. We’ve kept integration and functional testing as a big ball of mud; jumping straight from unit to full system testing. But can we apply some of the same lessons learned from unit to integration testing?
Speaker Bio:
Arquillian project lead, Aslak Knutsen, is a Senior Software Engineer at Red Hat where he is working on projects such as Arquillian and ShrinkWrap, one of the founders of the JBoss Testing initiative and a speaker at major industry conferences including JavaOne, Devoxx, Jazoon, JFokus, Geecon, JUDCon and JBoss World.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...alexjohnson7307
Predictive maintenance is a proactive approach that anticipates equipment failures before they happen. At the forefront of this innovative strategy is Artificial Intelligence (AI), which brings unprecedented precision and efficiency. AI in predictive maintenance is transforming industries by reducing downtime, minimizing costs, and enhancing productivity.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
6. AGENDA
What is and how can it help you
Integrations with a JPA application via
How does this all relate with and
Lucene index management
Plans and wishlist for the future
Apache Lucene
Hibernate Search
Infinispan WildFly
10. LET'S REFRESH SOME HISTORY ON THE
WIKIPEDIA
Select * from WikipediaPages p where p.content LIKE ?;
Select * from WikipediaPages p where p.title LIKE ?;
Select * from WikipediaPages p where
(lowercase(p.content) LIKE %:1% OR
lowercase(p.content) LIKE %:2% OR
lowercase(p.content) LIKE %:3% OR
...);
11.
12.
13.
14. AM I CHEATING?
I'm quoting some very successfull web companies.
How many can you list which do not provide an effective
search engine?
Why is that?
15. REQUIREMENTS FOR A SEARCH ENGINE
Need to guess what you want w/o you typing all of the
content
We all hate forms
We want the results in the blink of an eye
We want the right result on top: Relevance
16.
17. SOME MORE THINGS TO CONSIDER:
Approximate word matches
Stemming / Language specific analysis
Typos
Synonyms, Abbreviations, Technical Language
specializations
18. BASICS: KEYWORD EXTRACTION
On how to improve running by Scott
1. Tokenization & Analysis:
how
improv
run
scott
2. Scoring
19. APACHE LUCENE
Open source Apache™ top level project
Primarily Java, ported to many other languages and
platforms
Extremely popular, it's everywhere!
High pace of improvement, excellent team
Most impressive testing
20. AS A JAVAEE DEVELOPER:
You are familiar with JPA
But Lucene is much better than a relational database to
address this problem
Easy integration with the platform is a requirement
21.
22. LET'S INTRODUCE APACHE LUCENE VIA
HIBERNATE SEARCH
Deeply but transparently integrated with Hibernate's
23. EntityManager
Internally uses advanced Apache Lucene features, but
protects your deadlines from the lower level details
Gets great performance out of it
Simple annotations, yet many flexible override options
24. Does not prevent you to perform any form of advanced /
native Lucene query
25. Transparent index state synchronization
Transaction integrations
Options to rebuild the index efficiently
Failover and clustering integration points
Flexible Error handling
32. INDEX FIELDS FOR ACTOR
id name
1 Harrison Ford
2 Kirsten Dunst
INDEX FIELDS FOR DVD
id title actors.name *
1 Melancholia {Kirsten Dunst, Charlotte Gainsbourg,
Kiefer Sutherland}
2 The Force
Awakens
{Harrison Ford, Mark Hamill, Carrie
Fisher}
33. RUN A LUCENE QUERY BUT GET JPA
MANAGED RESULTS
String[] productFields = { "title", "actors.name" };
org.apache.lucene.search.Query luceneQuery = // ...
FullTextEntityManager ftEm =
Search.getFullTextEntityManager( entityManager );
FullTextQuery query = // extends javax.persistence.Query
ftEm.createFullTextQuery( luceneQuery, DVD.class );
List dvds = // Managed entities!
query.setMaxResults(100).getResultList();
int totalNbrOfResults = query.getResultSize();
45. Indexes need to be stored, updated and read from.
You can have many indexes, managed independently
An index can be written by an exclusive writer only
Backends can be configured differently per index
Index storage - the Directory - can also be configured per
index
49. WHAT IS INFINISPAN?
In Memory Key/Value Store
ASL v2 License
Scalable
JTA Transactions
Persistence (File/JDBC/LevelDB/...)
Local/Clustered
Embedded/Server
...
50. INFINISPAN / JAVAEE?
JavaEE: JCache implementation
A core component of WildFly
"Embedded" mode does not depend on WildFly
Hibernate 2n level cache
51. INFINISPAN / APACHE LUCENE?
Lucene integrations for Querying the datagrid!
Lucene integrations to store the index!
Hibernate Search integrations!
52. HIBERNATE SEARCH & INFINISPAN
QUERY
Same underlying technology
Same API to learn
Same indexing configuration options
53.
54. Same annotations, not an entity:
@Indexed
@AnalyzerDef(name = "lowercaseKeyword",
tokenizer = @TokenizerDef(factory = KeywordTokenizerFactory.class),
filters = {@TokenFilterDef(factory = LowerCaseFilterFactory.class)}
)
@SerializeWith(CountryExternalizer.class)
public class Country {
@Field(store = Store.YES)
@Analyzer(definition = "lowercaseKeyword")
private String name;
55. Store the Java POJO classes in the cache directly:
Country uk = ...
cache.put("UK", uk );
70. QUERY - INFINISPAN INDEXMANAGER
Configuration configuration = new ConfigurationBuilder()
.indexing().index(Index.LOCAL)
.addProperty("default.worker.execution", "async")
.addProperty("default.indexmanager",
"org.infinispan.query.indexmanager.InfinispanIndexManager"
.build();
EmbeddedCacheManager cm = new DefaultCacheManager(configuration);
Cache<Integer, DaySummary> cache = cm.getCache();
71.
72. THE INFINISPAN LUCENE DIRECTORY
Storing the Apache Lucene index in an high-performance in
memory data grid
73. You don't need Hibernate Search to cluster your existing
Lucene application, but you'll need some external
coordination to guarantee the single IndexWriter.
74. INFINISPAN QUERY AND THE LUCENE
DIRECTORY IN ACTION
Weather Demo by Gustavo Nalle Fernandes
DEMO
Indexed
NOAA.gov data from 1901 to 2014
~10M summaries
Yearly country max recorded temperature by month
Cache<Integer, DaySummary>
75. WHAT'S ON THE HORIZON FOR
INFINISPAN
Improvements in indexing performance
Hadoop and Spark integration experiments
Combining indexed & non-indexed query capabilities,
including remote queries
76. WHAT'S COMING FOR HIBERNATE
SEARCH
Upgrading to Lucene 5
Experiment integrations with REST based Lucene servers
(Solr, ElasticSearch)
Improved backends to simplify clustering setup
GSOC: generic JPA support and improved developer
tooling
A lot more! See also the roadmap
77. THANK YOU!
Some references:
, the super simple
, the
The website, the by
The website
Our team's blog
(requires Chrome)
Apache Lucene website
Hibernate Search website Hibernate
Search JPA demo WildFly integration tests
Infinispan Weather Demo
@gustavonalle
WildFly
in.relation.to
Export these slides to PDF