The document discusses various techniques for customizing entity attributes in Oracle ADF such as:
1. Setting a default attribute value programmatically by storing it in the user session.
2. Defining custom attribute properties and using them for UI hints.
3. Overriding the getHistoryContextForAttribute method to track change history.
4. Creating a custom EntityAttributeHints class to define hints programmatically.
5. Using Groovy expressions to define attribute properties.
The techniques aim to make attributes customizable through Java code instead of relying on entity definitions alone.
The document discusses issues with testing business logic in Orleans grains that access grain state. Specifically, the business logic code is duplicated across grain methods and calling the logic directly in tests fails because the grain state is null. The solution is to use Orleans' declarative persistence by defining a grain state interface and inheriting from Grain, which allows the state to be initialized for tests.
This document discusses using Jasmine to test JavaScript code. It describes Jasmine as a behavior driven development framework for JavaScript testing. It then provides instructions on installing Jasmine, creating spec files to contain test cases, and including source code files. The document uses an example of testing a master-slave checkbox relationship to demonstrate how to set up tests, DOM elements, and code the tests against the actual code implementation.
The document provides an overview of JavaScript, including that it is used to make web pages interactive, runs in browsers, and supports built-in. It discusses the DOM, common events, using the console, variables, operators, comments, conditionals, loops, arrays, objects, type checking, functions, events, timers, accessing and manipulating DOM elements, working with CSS/classes, and AJAX requests.
This document provides an introduction to jQuery, including examples of how to use jQuery. It discusses jQuery plugins, performance tips for jQuery, and jQuery deferreds/promises. Some key points:
- jQuery is a JavaScript library that allows DOM manipulation and event handling via JavaScript
- jQuery code uses $ as an alias for jQuery functions
- Plugins can extend jQuery's functionality
- For performance, cache selections, append outside loops, detach/reattach elements being modified
- Deferreds/promises allow asynchronous functions to be chained together
Workshop JavaScript Testing. Frameworks. Client vs Server Testing. Jasmine. Chai. Nock. Sinon. Spec Runners: Karma. TDD. Code coverage. Building a testable JS app.
Presentado por ing: Raúl Delgado y Mario García
Building complex async applications is really hard. Whether you use callbacks, Promises, or EventEmitters, Error objects should have a place in your utility belt. They are indispensable when it comes to managing work flows in a highly asynchronous environment.
This talk covers patterns for using JavaScript Error (with a capital E) objects to build resilient applications, and introduce some modules that can be used to build errors with an elegant history of stack traces even through multiple asynchronous operations. Try/catch, callbacks, and other error handling mechanisms will be examined, revealing some potential deficiencies in the JavaScript language for dealing with errors.
Video: https://www.youtube.com/watch?v=PyCHbi_EqPs
This document discusses JavaScript unit testing with Jasmine. It provides an overview of Jasmine's syntax including describes, contexts, matches, spies and stubs. It also discusses tools that can be used with Jasmine like jasmine-jquery for DOM testing and jasmine-given for behavior-driven development style tests.
The document discusses a tool called HATARI that helps identify risky locations in code based on past fix-inducing changes. HATARI calculates a risk score for each location based on the number of past fix-inducing changes compared to the total number of changes. It visualizes risk scores with annotations to show developers potentially risky areas. HATARI will be made open source on November 1st and is available at http://www.st.cs.uni-sb.de/softevo/.
How do you create applications with an incredible level of extendability without losing readability in the process? What if there's a way to separate concerns not only on the code, but on the service definition level? This talk will explore structural and behavioural patterns and ways to enrich them through tricks of powerful dependency injection containers such as Symfony2 DIC component.
This is the support of a course to teach mainly Redux, and Redux with React for Java and C# programmers. It is the third part of the course to recycle programmers from desktop app programming to web app programming. This course covers from history of Redux, its origin, step by step what is a reducer, and later concepts like reducer splitting, action handling, async and many more.
You also can use repositories:
- https://github.com/drpicox/learn-redux-bytesting
- https://github.com/drpicox/learn-redux-zoo-bytesting
To improve your skills.
A lot of people using PHPunit for testing their source code. While I was observing my team I recognized most of them are only using the standard assertions like 'assertEquals()' and are complaining about how hard it is to test the code even when the tests are written first. This talk is about all the stuff not used on a daily basis and it digs deep into uncommon features of PHPUnit.
The document appears to be notes on Backbone.js. It includes summaries of Backbone models, events, views and how to bind events. It demonstrates creating a model with defaults, getting/setting attributes, and binding event handlers. It also shows creating a view with tagName, className and attributes, and logging the generated HTML element.
international PHP2011_Bastian Feder_jQuery's Secrets
This document contains a summary of jQuery secrets presented by Bastian Feder. It discusses various techniques including saving and removing state from DOM elements using jQuery.data() and jQuery.removeData(), extending jQuery functionality through plugins, and customizing AJAX requests and event handling. The presentation provides code examples for working with jQuery's data storage methods, namespaces, promises/deferreds, global AJAX settings, and extending jQuery.
The document discusses refactoring legacy PHP code, specifically dealing with code that has no separation between PHP and HTML. It recommends separating code into controllers and views by gathering all code, separating controller and view code, assigning variables to a view object, changing variable references in the view code, and splitting the files. Specific problems in legacy PHP code like no separation of concerns, global variables, and reliance on includes can be addressed through techniques like creating view classes, encapsulating logic in objects, and wrapping includes in functions to untangle dependency webs. The goal is to safely change code implementation without changing behavior through refactoring.
The document discusses Ruby and Ruby on Rails. It notes that Ruby is an object-oriented programming language created by Yukihiro Matsumoto in 1995. Ruby on Rails is a web application framework built on Ruby that was created by David Heinemeier Hansson in 2004. It follows the model-view-controller architectural pattern, separating applications into models, views, and controllers.
- Ruby is an interactive, object-oriented programming language created by Yukihiro Matsumoto in 1995.
- Ruby on Rails is a web application framework built on Ruby that emphasizes convention over configuration and is optimized for programmer happiness.
- The document discusses Ruby and Ruby on Rails, providing an overview of their history, key principles like MVC, REST, and conventions used in Rails. It also provides examples of modeling data with classes and ActiveRecord in Rails.
Oracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Slides from Oracle's ADF Architecture TV series covering the Design phase of ADF projects, considering integrating PLSQL into your ADF applications.
Like to know more? Check out:
- Subscribe to the YouTube channel - http://bit.ly/adftvsub
- Design Playlist - http://www.youtube.com/playlist?list=PLJz3HAsCPVaSemIjFk4lfokNynzp5Euet
- Read the episode index on the ADF Architecture Square - http://bit.ly/adfarchsquare
Discover all of the latest statistics and trends in the malware industry. See the infographic here: http://anti-virus-software-review.toptenreviews.com/how-infected-are-we.html
This document provides an overview of the key components of Cloud Foundry, including:
- The Cloud Controller which manages application deployments, services, user roles, and more.
- Buildpacks which stage and compile applications to create droplets run by DEAs on VMs.
- DEAs which manage application container lifecycles using Warden containers for isolation.
- Routers which route traffic to applications and maintain dynamic routing tables.
- Services which provide interfaces to both native and 3rd party services running on Service Nodes.
- UAA which handles user authentication, authorization, and manages OAuth access credentials.
It also describes how organizations and spaces segment the platform and how domains
Cloudfoundry is the open platform as a service providing a faster and easier way to build, test, deploy and scale applications.Deploy & Scale in seconds on your choice of clouds.
This presentation covers both the Cloud Foundry Elastic Runtime (known by many as just "Cloud Foundry") as well as the Operations Manager (known by many as BOSH). For each, the main components are covered with interactions between them.
JavaFX 8 est disponible depuis mars 2014 et apporte son lot de nouveautés. Gradle est en version 2 depuis juillet 2014. Deux technologies plus que prometteuses: JavaFX donne un coup de jeune au développement d’applications desktop en Java en apportant un navigateur web intégré, le support des WebSockets, de la 3D, et bien d’autres. Gradle est l’outil de d’automatisation de build à la mode, apportant de superbes possibilités par rapport rapport à maven, outil vieillissant, grâce à l’engouement de la communauté vis à vis de cet outil mais aussi par le fait de la technologie utilisée en son sein: groovy. Venez découvrir comment il est possible de réaliser rapidement une application à la mode en JavaFX avec un outil à la mode également. Bref venez à une session trendy.
Rewrite few familiar Cocoa Touch code examples from Obj-C to Swift by learning to use Closures, Enums, Switch-Case with Pattern matching, Singleton, GCD, CoreGraphics.
Presented at Tel Aviv iOS Developers Meetup.
Phactory is an alternative to database fixtures for defining test data in PHP unit tests. It allows developers to define database objects in code and dynamically create them, rather than loading static datasets. Phactory provides a lightweight ORM and works with MySQL, SQLite, and MongoDB. It supports defining object blueprints, creating objects with associations, retrieving objects, and integrating with PHPUnit for testing database code.
The document discusses various code smells related to dependency injection and constructor usage, such as constructors doing real work instead of just setting fields, digging into collaborator objects instead of using their interfaces, and relying on global state and singletons. It provides examples of these code smells and proposes fixes using dependency injection and interfaces to make the code more testable and flexible.
The document discusses techniques for enabling communication between JavaScript and Objective-C in iOS applications, including setting global variables accessible to both, making Objective-C selectors and properties available to JavaScript, and handling callbacks from JavaScript to Objective-C such as when the web view location changes or a form is submitted. Code snippets provide examples of implementing these techniques.
This document discusses integrating Java Contexts and Dependency Injection (CDI) with other Java technologies like Spring and JavaServer Faces (JSF). It covers CDI concepts like the Inversion of Control pattern and dependency injection. It also provides examples of using CDI with Spring, integrating CDI and JSF, and using CDI interceptors. The document recommends some libraries for CDI integration and provides sample code links.
The Fetch API is a modern replacement of the XMLHTTPRequest object. It is based on promises and makes making AJAX/API calls easier to manage and code.
This slide deck is a quick introduction to the API.
The document discusses integrating ReactJS and Webpack into Ruby on Rails applications. It covers using modules with CommonJS, RequireJS, and ECMAScript 6. It also discusses using Webpack for bundling assets, setting up entry points, loaders, and plugins. Webpack can be configured to work with Rails by defining webpack.config.js and using the assets:webpack task for deployment. This provides a modular approach for JavaScript development while still leveraging Rails.
The talk presents how we established a TDD cycle within the complex AEM technology stack using a "unified testing API". It illustrates how such an API can be built and discusses various advantages over other approaches such as the Sling Testing API.
This document discusses dependency injection (DI) and inversion of control (IOC) design patterns. It explains that DI allows defining dependencies externally rather than hardcoding them, improving testability. IOC builds on DI by having a lightweight container manage object construction and dependency graph. The document uses JavaScript examples to demonstrate an InversifyJS library that implements IOC for JavaScript applications in a similar way that Spring Framework does for Java apps.
A portlet-API based approach for application integration
This document discusses using a portlet API-based approach for integrating applications into Magnolia. It describes the portlet API concept of separate action and render phases. Implementing portlets as JSR-168 components allows seamless integration into Magnolia by adding a portlet filter and rendering portlets during page generation. Configuration is done through content types and portlet parameters can be accessed. Real-world use has shown this approach works well for small applications but has limitations for more complex integrations.
The document summarizes what's new and noteworthy in Java EE 8, including updates to CDI 2.0, Bean Validation 2.0, JPA 2.2, JSF 2.3, JSON-B 1.0, Servlet 4.0, JAX-RS 2.1, and odds and ends like JSON-P and the Java EE Security API. It also discusses the status of Java EE 8 implementations from GlassFish, Payara, and Open Liberty, as well as the future of Java EE.
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
Presented at GeeCON 2011: JavaFX Script is going away, but the JavaFX Platform is getting a new face with pure Java APIs. In this session, you will see how you can leverage the new JavaFX 2.0 APIs from a host of different JVM languages, including JRuby, Clojure, Groovy, and Scala.
JavaFX Your Way: Building JavaFX Applications with Alternative Languages
JavaFX is more than a language. It is also a platform for building immersive applications with graphics, animation, and rich media. In this session, you will see how you can leverage JavaFX from a host of different JVM languages, including Java, JRuby, Groovy, Scala, and Clojure.
Jenkins User Conference 2012
Only by the third plugin do you get the hang of writing a plugin. I thought as a developer coming to the build side of things it'd be easy to jump in and write some plugins. I was wrong. Don't be fooled by the extremely friendly Jenkins community, writing a plugin from scratch is harder than they let on. This talk will explain the hurdles that I had to cross to make writing plugins easy.
The document discusses the evolution of the author's views on JavaScript and front-end frameworks. It begins by expressing dislike for JavaScript but acknowledging the need for it. Various frameworks like Backbone, Angular, and Ember are explored but found lacking. React is then introduced and praised for its declarative and composable approach similar to HTML. The author comes to understand JSX and how React implements unidirectional data flow to separate the UI from data logic. This allows building full-stack applications with React handling both client and server rendering based on shared intentions, state, and data flow patterns.
Software development is riddled with explicit and implicit costs. Every decision you make has a cost attached to it. When you're writing code, you're making an investment, the size of which will for a long time define the costs of your future growth. Making right decision about these investments is very tricky and the cost of wrong decisions might be crippling for both business and teams that support it.
Extreme Programming and Test Driven Development in particular are practices that are aiming at supporting development effort by making it easier to introduce change. That said, sometimes those tools can become a problem of its own when applied in the wrong way or for the wrong context. Understanding software cost forces is a very important skill of successful teams and something that helps understand how to apply XP and TDD in different contexts.
The document provides an overview of the qooxdoo framework and toolkit. It demonstrates how to download and explore the qooxdoo SDK which contains over 15,000 files. Code examples are provided to illustrate defining a class with properties, mixins, inheritance and interfaces. Additional features highlighted include extensive documentation, GUI components, easy key/command binding, layouts for positioning elements, and REST call capabilities.
The document discusses issues with testing business logic in Orleans grains that access grain state. Specifically, the business logic code is duplicated across grain methods and calling the logic directly in tests fails because the grain state is null. The solution is to use Orleans' declarative persistence by defining a grain state interface and inheriting from Grain, which allows the state to be initialized for tests.
Testing your javascript code with jasmineRubyc Slides
This document discusses using Jasmine to test JavaScript code. It describes Jasmine as a behavior driven development framework for JavaScript testing. It then provides instructions on installing Jasmine, creating spec files to contain test cases, and including source code files. The document uses an example of testing a master-slave checkbox relationship to demonstrate how to set up tests, DOM elements, and code the tests against the actual code implementation.
The document provides an overview of JavaScript, including that it is used to make web pages interactive, runs in browsers, and supports built-in. It discusses the DOM, common events, using the console, variables, operators, comments, conditionals, loops, arrays, objects, type checking, functions, events, timers, accessing and manipulating DOM elements, working with CSS/classes, and AJAX requests.
This document provides an introduction to jQuery, including examples of how to use jQuery. It discusses jQuery plugins, performance tips for jQuery, and jQuery deferreds/promises. Some key points:
- jQuery is a JavaScript library that allows DOM manipulation and event handling via JavaScript
- jQuery code uses $ as an alias for jQuery functions
- Plugins can extend jQuery's functionality
- For performance, cache selections, append outside loops, detach/reattach elements being modified
- Deferreds/promises allow asynchronous functions to be chained together
Workshop JavaScript Testing. Frameworks. Client vs Server Testing. Jasmine. Chai. Nock. Sinon. Spec Runners: Karma. TDD. Code coverage. Building a testable JS app.
Presentado por ing: Raúl Delgado y Mario García
Building complex async applications is really hard. Whether you use callbacks, Promises, or EventEmitters, Error objects should have a place in your utility belt. They are indispensable when it comes to managing work flows in a highly asynchronous environment.
This talk covers patterns for using JavaScript Error (with a capital E) objects to build resilient applications, and introduce some modules that can be used to build errors with an elegant history of stack traces even through multiple asynchronous operations. Try/catch, callbacks, and other error handling mechanisms will be examined, revealing some potential deficiencies in the JavaScript language for dealing with errors.
Video: https://www.youtube.com/watch?v=PyCHbi_EqPs
This document discusses JavaScript unit testing with Jasmine. It provides an overview of Jasmine's syntax including describes, contexts, matches, spies and stubs. It also discusses tools that can be used with Jasmine like jasmine-jquery for DOM testing and jasmine-given for behavior-driven development style tests.
The document discusses a tool called HATARI that helps identify risky locations in code based on past fix-inducing changes. HATARI calculates a risk score for each location based on the number of past fix-inducing changes compared to the total number of changes. It visualizes risk scores with annotations to show developers potentially risky areas. HATARI will be made open source on November 1st and is available at http://www.st.cs.uni-sb.de/softevo/.
How do you create applications with an incredible level of extendability without losing readability in the process? What if there's a way to separate concerns not only on the code, but on the service definition level? This talk will explore structural and behavioural patterns and ways to enrich them through tricks of powerful dependency injection containers such as Symfony2 DIC component.
This is the support of a course to teach mainly Redux, and Redux with React for Java and C# programmers. It is the third part of the course to recycle programmers from desktop app programming to web app programming. This course covers from history of Redux, its origin, step by step what is a reducer, and later concepts like reducer splitting, action handling, async and many more.
You also can use repositories:
- https://github.com/drpicox/learn-redux-bytesting
- https://github.com/drpicox/learn-redux-zoo-bytesting
To improve your skills.
A lot of people using PHPunit for testing their source code. While I was observing my team I recognized most of them are only using the standard assertions like 'assertEquals()' and are complaining about how hard it is to test the code even when the tests are written first. This talk is about all the stuff not used on a daily basis and it digs deep into uncommon features of PHPUnit.
The document appears to be notes on Backbone.js. It includes summaries of Backbone models, events, views and how to bind events. It demonstrates creating a model with defaults, getting/setting attributes, and binding event handlers. It also shows creating a view with tagName, className and attributes, and logging the generated HTML element.
This document contains a summary of jQuery secrets presented by Bastian Feder. It discusses various techniques including saving and removing state from DOM elements using jQuery.data() and jQuery.removeData(), extending jQuery functionality through plugins, and customizing AJAX requests and event handling. The presentation provides code examples for working with jQuery's data storage methods, namespaces, promises/deferreds, global AJAX settings, and extending jQuery.
The document discusses refactoring legacy PHP code, specifically dealing with code that has no separation between PHP and HTML. It recommends separating code into controllers and views by gathering all code, separating controller and view code, assigning variables to a view object, changing variable references in the view code, and splitting the files. Specific problems in legacy PHP code like no separation of concerns, global variables, and reliance on includes can be addressed through techniques like creating view classes, encapsulating logic in objects, and wrapping includes in functions to untangle dependency webs. The goal is to safely change code implementation without changing behavior through refactoring.
The document discusses Ruby and Ruby on Rails. It notes that Ruby is an object-oriented programming language created by Yukihiro Matsumoto in 1995. Ruby on Rails is a web application framework built on Ruby that was created by David Heinemeier Hansson in 2004. It follows the model-view-controller architectural pattern, separating applications into models, views, and controllers.
- Ruby is an interactive, object-oriented programming language created by Yukihiro Matsumoto in 1995.
- Ruby on Rails is a web application framework built on Ruby that emphasizes convention over configuration and is optimized for programmer happiness.
- The document discusses Ruby and Ruby on Rails, providing an overview of their history, key principles like MVC, REST, and conventions used in Rails. It also provides examples of modeling data with classes and ActiveRecord in Rails.
Oracle ADF Architecture TV - Design - Architecting for PLSQL IntegrationChris Muir
Slides from Oracle's ADF Architecture TV series covering the Design phase of ADF projects, considering integrating PLSQL into your ADF applications.
Like to know more? Check out:
- Subscribe to the YouTube channel - http://bit.ly/adftvsub
- Design Playlist - http://www.youtube.com/playlist?list=PLJz3HAsCPVaSemIjFk4lfokNynzp5Euet
- Read the episode index on the ADF Architecture Square - http://bit.ly/adfarchsquare
Discover all of the latest statistics and trends in the malware industry. See the infographic here: http://anti-virus-software-review.toptenreviews.com/how-infected-are-we.html
Cloud foundry architecture and deep diveAnimesh Singh
This document provides an overview of the key components of Cloud Foundry, including:
- The Cloud Controller which manages application deployments, services, user roles, and more.
- Buildpacks which stage and compile applications to create droplets run by DEAs on VMs.
- DEAs which manage application container lifecycles using Warden containers for isolation.
- Routers which route traffic to applications and maintain dynamic routing tables.
- Services which provide interfaces to both native and 3rd party services running on Service Nodes.
- UAA which handles user authentication, authorization, and manages OAuth access credentials.
It also describes how organizations and spaces segment the platform and how domains
Cloudfoundry is the open platform as a service providing a faster and easier way to build, test, deploy and scale applications.Deploy & Scale in seconds on your choice of clouds.
This presentation covers both the Cloud Foundry Elastic Runtime (known by many as just "Cloud Foundry") as well as the Operations Manager (known by many as BOSH). For each, the main components are covered with interactions between them.
JavaFX 8 est disponible depuis mars 2014 et apporte son lot de nouveautés. Gradle est en version 2 depuis juillet 2014. Deux technologies plus que prometteuses: JavaFX donne un coup de jeune au développement d’applications desktop en Java en apportant un navigateur web intégré, le support des WebSockets, de la 3D, et bien d’autres. Gradle est l’outil de d’automatisation de build à la mode, apportant de superbes possibilités par rapport rapport à maven, outil vieillissant, grâce à l’engouement de la communauté vis à vis de cet outil mais aussi par le fait de la technologie utilisée en son sein: groovy. Venez découvrir comment il est possible de réaliser rapidement une application à la mode en JavaFX avec un outil à la mode également. Bref venez à une session trendy.
Rewrite few familiar Cocoa Touch code examples from Obj-C to Swift by learning to use Closures, Enums, Switch-Case with Pattern matching, Singleton, GCD, CoreGraphics.
Presented at Tel Aviv iOS Developers Meetup.
Phactory is an alternative to database fixtures for defining test data in PHP unit tests. It allows developers to define database objects in code and dynamically create them, rather than loading static datasets. Phactory provides a lightweight ORM and works with MySQL, SQLite, and MongoDB. It supports defining object blueprints, creating objects with associations, retrieving objects, and integrating with PHPUnit for testing database code.
Clean code via dependency injection + guiceJordi Gerona
The document discusses various code smells related to dependency injection and constructor usage, such as constructors doing real work instead of just setting fields, digging into collaborator objects instead of using their interfaces, and relying on global state and singletons. It provides examples of these code smells and proposes fixes using dependency injection and interfaces to make the code more testable and flexible.
The document discusses techniques for enabling communication between JavaScript and Objective-C in iOS applications, including setting global variables accessible to both, making Objective-C selectors and properties available to JavaScript, and handling callbacks from JavaScript to Objective-C such as when the web view location changes or a form is submitted. Code snippets provide examples of implementing these techniques.
Java EE 6 CDI Integrates with Spring & JSFJiayun Zhou
This document discusses integrating Java Contexts and Dependency Injection (CDI) with other Java technologies like Spring and JavaServer Faces (JSF). It covers CDI concepts like the Inversion of Control pattern and dependency injection. It also provides examples of using CDI with Spring, integrating CDI and JSF, and using CDI interceptors. The document recommends some libraries for CDI integration and provides sample code links.
The Fetch API is a modern replacement of the XMLHTTPRequest object. It is based on promises and makes making AJAX/API calls easier to manage and code.
This slide deck is a quick introduction to the API.
The document discusses integrating ReactJS and Webpack into Ruby on Rails applications. It covers using modules with CommonJS, RequireJS, and ECMAScript 6. It also discusses using Webpack for bundling assets, setting up entry points, loaders, and plugins. Webpack can be configured to work with Rails by defining webpack.config.js and using the assets:webpack task for deployment. This provides a modular approach for JavaScript development while still leveraging Rails.
The talk presents how we established a TDD cycle within the complex AEM technology stack using a "unified testing API". It illustrates how such an API can be built and discusses various advantages over other approaches such as the Sling Testing API.
This document discusses dependency injection (DI) and inversion of control (IOC) design patterns. It explains that DI allows defining dependencies externally rather than hardcoding them, improving testability. IOC builds on DI by having a lightweight container manage object construction and dependency graph. The document uses JavaScript examples to demonstrate an InversifyJS library that implements IOC for JavaScript applications in a similar way that Spring Framework does for Java apps.
A portlet-API based approach for application integrationwhabicht
This document discusses using a portlet API-based approach for integrating applications into Magnolia. It describes the portlet API concept of separate action and render phases. Implementing portlets as JSR-168 components allows seamless integration into Magnolia by adding a portlet filter and rendering portlets during page generation. Configuration is done through content types and portlet parameters can be accessed. Real-world use has shown this approach works well for small applications but has limitations for more complex integrations.
The document summarizes what's new and noteworthy in Java EE 8, including updates to CDI 2.0, Bean Validation 2.0, JPA 2.2, JSF 2.3, JSON-B 1.0, Servlet 4.0, JAX-RS 2.1, and odds and ends like JSON-P and the Java EE Security API. It also discusses the status of Java EE 8 implementations from GlassFish, Payara, and Open Liberty, as well as the future of Java EE.
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...Stephen Chin
Presented at GeeCON 2011: JavaFX Script is going away, but the JavaFX Platform is getting a new face with pure Java APIs. In this session, you will see how you can leverage the new JavaFX 2.0 APIs from a host of different JVM languages, including JRuby, Clojure, Groovy, and Scala.
JavaFX Your Way: Building JavaFX Applications with Alternative LanguagesStephen Chin
JavaFX is more than a language. It is also a platform for building immersive applications with graphics, animation, and rich media. In this session, you will see how you can leverage JavaFX from a host of different JVM languages, including Java, JRuby, Groovy, Scala, and Clojure.
Jenkins User Conference 2012
Only by the third plugin do you get the hang of writing a plugin. I thought as a developer coming to the build side of things it'd be easy to jump in and write some plugins. I was wrong. Don't be fooled by the extremely friendly Jenkins community, writing a plugin from scratch is harder than they let on. This talk will explain the hurdles that I had to cross to make writing plugins easy.
Talk given in French at ConFoo 2015
Le TDD (Test Driven Development) gagne en popularité dans la communauté PHP. C’est maintenant une pratique accepté. Mais commencer peut sembler difficile.
Dans cette session, nous allons voir ce qu’est le TDD. Nous allons commencer par voir les principes. Puis les outils utilisés, et comment s’en servir au quotidien. Nous allons aussi voir les difficultés souvent rencontrées et comment les contourner.
Call India AmanTel allows you to call from any country in the world including India to the USA and Canada at the cheapest rate Limited offers new users some free minutes.
Risks & Business Risks Reduce - investment.pdfHome
In this presentation, I have shown major risks that are to face in a business investment. Also I have shown their classification and sources.
This information have taken from my text book -" Investment Analysis and Portfolio Management ~chapter 2 Investment~ " For complete this Presentation I used Figma and Canva.
My Role:
a. Student Final year - Accounting
b. Presentation Designer
stackconf 2024 | Using European Open Source to build a Sovereign Multi-Cloud ...NETWAYS
The European Commission has clearly identified open source as a strategic tool for bringing some balance to an EU cloud market currently dominated by a handful of non-EU hyperscalers. Part of that commitment comes through a series of ambitious, multi-million EU projects like the SIMPL platform for Data Spaces and the multi-country “Important Project of Common European Interest on Next Generation Cloud Infrastructure and Services” (IPCEI-CIS). For the first time in the history of the European Union, it is the EU industry who will be leading large-scale open source projects aimed at building European strategic technologies. In this talk we will explain in detail how specific European open source technologies are being brought together as part of some of those projects to start building Sovereign Multi-Cloud solutions that ensure interoperability and digital sovereignty for European users while preventing vendor lock-in in the cloud market, opening up competition in the emerging 5G/edge.
A study on drug utilization evaluation of bronchodilators using DDD methodDr. Afreen Nasir
The abstract was published as a conference proceeding in a Newsletter after being presented as an e-posture and secured 2nd prize during the scientific proceedings of "National Conference on Health Economics and Outcomes Research (HEOR) to Enhance Decision Making for Global Health" held at Raghavendra Institute of Pharmaceutical Education and Research (RIPER)- Autonomous in association with the International Society for Pharmacoeconomics and Outcomes Research (ISPOR)-India Andhra Pradesh Regional Chapter during 4th& 5th August 2023.
Nasir A. A study on drug utilization evaluation of bronchodilators using the DDD method. RIPER - PDIC Bulletin ISPOR India Andhra Pradesh Regional Chapter Newsletter [Internet]. 2023 Sep;11(51):14. Available from: www.riper.ac.in
stackconf 2024 | Buzzing across the eBPF Landscape and into the Hive by Bill ...NETWAYS
The buzz around the Linux kernel technology eBPF is growing quickly and it can be hard to know where to start or how to keep up with this technology that is reshaping our infrastructure stack. In this talk, Bill will trace how he got into eBPF, explore some of the applications leveraging eBPF today, and teach others how to dive into the hive of activity around eBPF. People just beginning with eBPF will learn how eBPF makes it possible to have efficient networking, observability without instrumentation, effortless tracing, and real-time security (among other things) without needing your own kernel team. Those already familiar with eBPF will get an overview of the eBPF landscape and learn about many new and expanding eBPF applications that allow them to harness the power without needing to dive into the bytecode. The audience will walk away with an understanding of the buzz around eBPF and knowledge of new tools that may solve some of their problems in networking, observability, and security.
stackconf 2024 | On-Prem is the new Black by AJ JesterNETWAYS
In a world where Cloud gives us the ease and flexibility to deploy and scale your apps we often overlook security and control. The fact that resources in the cloud are still shared, the hardware is shared, the network is shared, there is not much insight into the infrastructure unless the logs are exposed by the cloud provider. Even an air gap environment in the cloud is truly not air gapped, it’s a pseudo-private network. Moreover, the general trend in the industry is shifting towards cloud repatriation, it’s a fancy term for bringing your apps and services from cloud back to on-prem, like old school how things were run before the cloud was even a thing. This shift has caused what I call a knowledge gap where engineers are only familiar with interacting with infrastructure via APIs but not the hardware or networks their application runs on. In this talk I aim to demystify on-prem environments and more importantly show engineers how easy and smooth it is to repatriate data from cloud to an on-prem air gap environment.
Destyney Duhon personal brand explorationminxxmaree
Destyney Duhon embodies a singular blend of creativity, resilience, and purpose that defines modern entrepreneurial spirit. As a visionary at the intersection of artistry and innovation, Destyney fearlessly navigates uncharted waters, sculpting her journey with a profound commitment to authenticity and impact.This Brand exploration power point is a great example of her dedication to her craft.
5. public
class
VBoatImpl
extends
ViewObjectImpl
implements
VBoat
{
public
void
setupOfficeName(String
officeName)
{
En0tyDefImpl
boatEn0tyDef
=
getEn0tyDef(BOAT);
AQributeDefImpl
ad
=
(AQributeDefImpl)
boatEn0tyDef.findAQributeDef("RegisterOffice");
ad.setDefaultValue(officeName);
}
5
Default
AQribute
Value.
Bad
Idea
Ø Setup office name as default attribute value
Ø Invoke the VO method on task flow entry
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
6. <af:inputText
value="#{bindings.Length.inputValue}"
visible="#{bindings.Length.hints.viewableOnInsert}"
label="#{bindings.Length.hints.label}"
…
6
Custom
AQribute
Proper0es
Ø Define a custom entity attribute property
Ø Use the property in the JSF visible attribute as UI hint
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
7.
public
void
setBoatclass(String
value)
{
setAQributeInternal(BOATCLASS,
value);
setupViewableOnInsert(value);
}
private
void
setupViewableOnInsert(String
boatClass)
{
for
(int
aQr
:
SIZE_ATTRIBUTES)
{
AQributeDefImpl
aQrDef
=
(AQributeDefImpl)
getDefini0onObject().getAQributeDef(aQr);
aQrDef.setProperty(VIEWABLE_ON_INSERT,
!SMALL.equals(boatClass));
}
}
7
Custom
AQribute
Proper0es.
Bad
Idea
Ø Update custom property value in the Boat Class setter
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
9.
public
void
setupOfficeName(String
officeName)
{
Applica0onModule
am
=
getApplica0onModule();
am.getSession().getUserData().put("officeName",
officeName);
}
9
Default
AQribute
Value.
Good
Idea
Ø Keep office name in a user session data map
Ø Use a Groovy expression in the Default Value
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
10. @Override
protected
Object
getHistoryContextForAQribute(AQributeDefImpl
aQr)
{
if
(aQr.getHistoryKind()
==
AQributeDefImpl.HISTORY_CREATE_USER)
{
return
getDBTransac0on().getSession().getUserData().get("officeName");
}
else
{
return
super.getHistoryContextForAQribute(aQr);
}
}
10
Tracking
Change
History
Ø Mark the attribute as ”Created By” history column
Ø Override getHistoryContextForAttribute in the EntityImpl
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
11. protected
En0tyAQrHintsImpl
createEn0tyAQrHints(AQributeDefImpl
aQrDef)
{
return
new
CustomEn0tyAQrHintsImpl(aQrDef,
this);
}
public
class
CustomEn0tyAQrHintsImpl
extends
En0tyAQrHintsImpl
{
@Override
public
String
getHint(LocaleContext
locale,
String
sHintName)
{
if
(VIEWABLE_ON_INSERT.equals(sHintName))
{
String
boatClass
=
((BoatImpl)
getEn0tyImpl()).getBoatclass();
return
Boolean.toString(!SMALL.equals(boatClass));
}
return
super.getHint(locale,
sHintName);
}
11
Custom
AQribute
Proper0es.
Good
Idea
Ø Create a custom Entity Attribute Hints implementation class
Ø Override createEntityAttrHints in the EntityImpl
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
12. @Override
public
void
resolveDefObject()
{
super.resolveDefObject();
setupViewableOnInsert();
}
private
void
setupViewableOnInsert()
{
for
(String
aQr
:
SIZE_ATTRIBUTES)
{
AQributeDefImpl
aQrDef
=
(AQributeDefImpl)
findAQributeDef(aQr);
aQrDef.setPropertyExpression(VIEWABLE_ON_INSERT,
"Boatclass
!=
'1'");
}
}
12
Custom
AQribute
Proper0es.
Groovy
Expressions
Ø Create a custom Entity Definition class
Ø Override resolveDefObject method
Ø Setup a Groovy expression with setPropertyExpression method
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
15. 15
LOVs
in
a
Search
Form
Ø Define a separate LOV for a search form
Ø Add a LOV-switcher attribute
Ø Use adf.isCriteriaRow expression to switch the LOVs
JBO-‐35111:
LOV
in
a
search
form
cannot
use
a
view
accessor
defined
on
an
En0ty.
Change
LOV_En0ty_BoaQype
to
use
a
view
accessor
defined
in
the
view
object
(adf.isCriteriaRow)
?
"LOV_VO_BoaQype"
:
"LOV_En0ty_BoaQype”
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
16. 16
LOVs
in
a
Search
Form
SELECT
*
FROM
BOAT
Boat
WHERE
Boat.BoatClass
=
:boatClass
public
String
getBoatClass()
{
return
someCalculatedBoatClass;
}
if
(adf.isCriteriaRow)
return
dataProvider.viewCriteria.viewObject.boatClass;
else
return
viewObject.boatClass;
JBO-‐25077:
Name
boatClass
not
found
in
the
given
object:
oracle.adf.model.bean.DCDataVO.
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
22.
public
class
VBoatImpl
extends
ViewObjectImpl
{
protected
void
create()
{
super.create();
addListener(new
DetailRowSetsListener());
}
public
class
DetailRowSetsListener
implements
RowSetListener
{
@Override
public
void
navigated(Naviga0onEvent
event)
{
ViewObject
vo
=
(ViewObject)
event.getSource();
for
(RowSet
detail
:
vo.getDetailRowSets())
{
detail.closeRowSet();
}
}
22
Master/Detail
Pirates
Ø Use separate VO instances for different use-cases
Ø Add RowSetListener to the master VO instance
Ø Reproduced only when AM pooling is enabled
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
27. 27
Ac0va0on/Passiva0on
Vortex
Ø Retain View Link Accessor Rowset
Ø Passivated transient VO attributes
Ø Dynamic VO attributes
Ø Close VO row set when it is not needed anymore
public
void
flowFinalizer()
{
BindingContext
bc
=
BindingContext.getCurrent();
Applica0onModule
am
=
bc.findDataControl("SampleModelServiceDataControl").getApplica0onModule();
ViewObject
vo
=
am.findViewObject("VBoat");
vo.closeRowSet();
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
28. 28
Enabling
AM
Pooling
Programma0cally
Ø Create custom ApplicationPool implementation class
Ø Specify PoolClassName in the AM Configuration
Ø Override isAMPoolingEnabled method
public
class
CustomApplica0onPoolImpl
extends
Applica0onPoolImpl
{
@Override
public
boolean
isAMPoolingEnabled()
{
return
getYourOwnAMPoolingEnabled();
}
…
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
30. 30
Separate
View
Objects
for
Different
Use-‐Cases
Ø Different sets of attributes
Ø Different View Links, View Accessors, LOVs, View Crierias, etc.
Ø Different attributes UI hints
Ø Different SQL execution tuning options
VSailorBrowse VSailorInsert
Sailor
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
31. 31
Associa0on
(View
Link)
Consistency
Ø View Objects are based on the same entity
Ø Only one primary entity usage
Ø All secondary entity usages are references
VSailorBrowse VSailorInsert
Sailor
Entity Cache
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
32. 32
Associa0on
Consistency
Piyall
Ø New row should fit with memory filter
Ø rowQualifies()
Ø RowMatch
Ø Disabled when Where Clause is applied at runtime
Ø Use setAssociationConsistent(true) to enable
protected
void
executeQueryForCollec0on(Object
qc,
Object[]
params,
int
noUserParams)
{
super.executeQueryForCollec0on(qc,
params,
noUserParams);
setAssocia0onConsistent(true);
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
36. 36
UI
Component
Binding
Challenge
Ø UI components are not serializable
Ø High
Availability
mode
Ø ADF
Controller
save
points
Ø Transient variable is not an option
Ø UI component tree should not be hard referenced
<af:table
value="#{bindings.VBoat.collec0onModel}"
var="row"
binding="#{BrowseBean.table}"
private
RichTable
table;
public
RichTable
getTable()
{
return
table;
}
public
void
setTable(RichTable
table)
{
this.table
=
table;
}
Request or Backing Bean
Scope!
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
37. 37
UI
Component
Binding
Example
binding="#{BrowseBean.table}"
headerText="#{BrowseBean.searchTitle}"
public
class
BrowseBoats
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
boats";
}
binding="#{BrowseBean.table}”
headerText="#{BrowseBean.searchTitle}"
public
class
BrowseSailors
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
sailors";
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
38. 38
Request
Scope
Managed
Beans
Ø One instance of the bean within request
public
class
BrowseSailors
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
sailors";
}
public
class
BrowseBoats
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
boats";
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
39. 39
Backing
Bean
Scope
Managed
Beans
Ø One instance of the bean per region within request
public
class
BrowseSailors
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
sailors";
}
public
class
BrowseBoats
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
boats";
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
40. 40
Backing
Bean
Scope
Managed
Beans
Ø One instance of the bean per region within request
public
class
BrowseBoats
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
boats";
}
public
class
BrowseSailors
{
private
RichTable
table;
public
String
getSearchTitle()
{
return
"Search
sailors";
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
42. 42
UI
Component
Reference
Ø Use ComponentReference to hold the UI component reference
Ø Serializable
Ø Avoids
hard
references
to
UI
components
Ø Good enough for any memory scope
public
class
BrowseSailors
{
private
ComponentReference
tableReference;
public
void
setTable(RichTable
table)
{
tableReference
=
ComponentReference.newUIComponentReference(table);
}
public
RichTable
getTable()
{
return
(tableReference
==
null
?
null
:
(RichTable)
tableReference.getComponent());
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
46. 46
Must
Have
Excep0on
Handler
Ø Pop the task flow from the stack if there is no Exception Handler
Ø Repeat until Exception Handler is located
Task Flow 0
Task Flow 1
No Exception HandlerTask Flow 2
No Exception HandlerTask Flow 3
TaskFlowStack
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
48. 48
Immediate
aQribute
Ø Validation and ValueChangeEvent at Apply Request Values phase
Ø The Lifecycle does not stop
Ø The rest of phases are not skipped
<af:inputText
value="#{bindings.Lengthh.inputValue}"
visible="#{bindings.Lengthh.hints.viewableOnInsert}"
par0alTriggers="socBoatClass"
<af:selectOneChoice
value="#{bindings.Boatclass.inputValue}"
autoSubmit="true"
immediate="true"
id="socBoatClass”
public
void
valueChangeListenerBoatClass(ValueChangeEvent
valueChangeEvent)
{
UIComponent
c
=
valueChangeEvent.getComponent();
c.processUpdates(FacesContext.getCurrentInstance());
FacesContext.getCurrentInstance().renderResponse();
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com
49. 49
Programma0cally
Refreshing
Components
Ø Dependent components don’t participate in the request
Ø Add components as partial targets to the AdfFacesContext
<af:inputText
value="#{bindings.Lengthh.inputValue}"
id="itLength"
visible="#{bindings.Lengthh.hints.viewableOnInsert}"
<af:outputText
value="(meters)"
id="otLength"
visible="#{bindings.Lengthh.hints.viewableOnInsert}”
public
void
valueChangeListenerBoatClass(ValueChangeEvent
valueChangeEvent)
{
UIComponent
c
=
JsfU0ls.findComponentInRoot("itLength");
AdfFacesContext.getCurrentInstance().addPar0alTarget(c);
c
=
JsfU0ls.findComponentInRoot("otLength");
AdfFacesContext.getCurrentInstance().addPar0alTarget(c);
…
}
Eugene
Fedorenko
adfprac0ce-‐fedor.blogspot.com