The document provides an introduction to customizing and extending the Weblogic Console. It discusses reasons for customization such as rebranding to match corporate identity or differentiating environments. It describes extension points in the Weblogic Console UI hierarchy that allow for replacing or adding content. The document outlines steps to build a new Look and Feel including modifying configuration files, compiling JSPs, and creating a WAR file. It also discusses more complex customizations like using MBeans and adding new portlets.
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Kathy Brown
From IBM Connect 2014, Making Localization of XPages as easy as 1-2-3. We show what comes "out of the box" and also how to localize what isn't "out of the box".
Application distribution with Macs requires a bit of know-how in some cases; In this course we'll take a look at some best practices, how to package some common applications, and the key components of any packaging environment. Learn more: http://dell.to/1GDYpr8
Uno! Deux! Three! Making Localization of XPages as Easy as 1-2-3Kathy Brown
From IBM Connect 2014, Making Localization of XPages as easy as 1-2-3. We show what comes "out of the box" and also how to localize what isn't "out of the box".
Application distribution with Macs requires a bit of know-how in some cases; In this course we'll take a look at some best practices, how to package some common applications, and the key components of any packaging environment. Learn more: http://dell.to/1GDYpr8
Laravel Framework is a popular PHP framework that is taking the web development community by storm. Laravel is the Most Starred PHP Framework on Github: more than 30 000 developers from all over the world (mostly from the USA) use it for custom software development.
Three ways to install #OpenCart modules in OpenCart 3
- One through FTP
-One through admin section >> Extensions >> Installer
-One through admin section >> Extensions >> Marketplace
This presentation was shown at Spring Framework Meeting 2009 in Cagliari (Sardinia - Italy).
http://www.jugsardegna.org/vqwiki/jsp/Wiki?27giugno2009
Abstract:
Alfresco is the leading open source enterprise content management system and two of the most appreciated aspects of Alfresco are: the wide customization model and the high quality of source code.
Alfresco is strongly based on Spring Framework and thanks to this adoption we can find many ways to extend and inject our components. In this presentation will be shown many ways to extend Alfresco features and interfaces using Spring application context configuration.
MVCL pattern, web flow, code flow, request and response in OpenCartSelf
As described in “OpenCart theme and Module development” book, it says “OpenCart is an e-commerce shopping cart application built with its own in-house framework which uses MVCL (Model, view, controller and language) pattern. Thus, each module in OpenCart also follows the MVCL pattern. The controller creates logic and gathers data from the model and it passes data to display in the view.”
User request to the controller through website URL,
controller loads the language and set the variable for any text used in the data.
If data is needed from the database controller loads the model, ask for result and model send back results, then controller set results to data.
All these data are sent to View which renders and show the output
https://webocreation.com/blog/describing-files-folder-opencart-framework
OpenCart supports multistore
It supports multi-language
Multiple Layouts
oc_ is database prefix
If you are creating a table then better to make 4 tables, one which will contain language-specific contents here oc_information_description, another is non-language specific oc_information and other which joins with the store and last one which joins to the layout.
https://webocreation.com/blog/things-consider-creating-database
Social Connections 12 - IBM Connections AdminblastNico Meisenzahl
Buckle up, join Christoph and Nico and get ready to learn 50 tips and tricks you can implement right away to improve your IBM Connections environment. Your users will thank you as they too benefit from this best practice list gathered from real-world projects while deploying and administering IBM Connections On-premises. Walk away with knowledge covering anything from Orient Me, Cognos integration, Docs, CCM and Forms Experience Builder to the back end like IBM Cloud private, DB2, TDI and SSO.
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014Kathy Brown
IBM Connect 2014
XPages: Still No Experience Necessary
Step by Step see how to create an XPages application. Create a help desk ticket app, including CRUD (Create, Read, Update, Delete)
This is very basic laravel presentation. I tried to cover all the topics in this presentation. For more information, please feel free to email me - toufiqist@gmail.com
Laravel Framework is a popular PHP framework that is taking the web development community by storm. Laravel is the Most Starred PHP Framework on Github: more than 30 000 developers from all over the world (mostly from the USA) use it for custom software development.
Three ways to install #OpenCart modules in OpenCart 3
- One through FTP
-One through admin section >> Extensions >> Installer
-One through admin section >> Extensions >> Marketplace
This presentation was shown at Spring Framework Meeting 2009 in Cagliari (Sardinia - Italy).
http://www.jugsardegna.org/vqwiki/jsp/Wiki?27giugno2009
Abstract:
Alfresco is the leading open source enterprise content management system and two of the most appreciated aspects of Alfresco are: the wide customization model and the high quality of source code.
Alfresco is strongly based on Spring Framework and thanks to this adoption we can find many ways to extend and inject our components. In this presentation will be shown many ways to extend Alfresco features and interfaces using Spring application context configuration.
MVCL pattern, web flow, code flow, request and response in OpenCartSelf
As described in “OpenCart theme and Module development” book, it says “OpenCart is an e-commerce shopping cart application built with its own in-house framework which uses MVCL (Model, view, controller and language) pattern. Thus, each module in OpenCart also follows the MVCL pattern. The controller creates logic and gathers data from the model and it passes data to display in the view.”
User request to the controller through website URL,
controller loads the language and set the variable for any text used in the data.
If data is needed from the database controller loads the model, ask for result and model send back results, then controller set results to data.
All these data are sent to View which renders and show the output
https://webocreation.com/blog/describing-files-folder-opencart-framework
OpenCart supports multistore
It supports multi-language
Multiple Layouts
oc_ is database prefix
If you are creating a table then better to make 4 tables, one which will contain language-specific contents here oc_information_description, another is non-language specific oc_information and other which joins with the store and last one which joins to the layout.
https://webocreation.com/blog/things-consider-creating-database
Social Connections 12 - IBM Connections AdminblastNico Meisenzahl
Buckle up, join Christoph and Nico and get ready to learn 50 tips and tricks you can implement right away to improve your IBM Connections environment. Your users will thank you as they too benefit from this best practice list gathered from real-world projects while deploying and administering IBM Connections On-premises. Walk away with knowledge covering anything from Orient Me, Cognos integration, Docs, CCM and Forms Experience Builder to the back end like IBM Cloud private, DB2, TDI and SSO.
SHOW102 XPages: Still No Experience Necessary IBM Connect 2014Kathy Brown
IBM Connect 2014
XPages: Still No Experience Necessary
Step by Step see how to create an XPages application. Create a help desk ticket app, including CRUD (Create, Read, Update, Delete)
This is very basic laravel presentation. I tried to cover all the topics in this presentation. For more information, please feel free to email me - toufiqist@gmail.com
Drupal case study: Behind the scenes of website of University of TartuRené Lasseron
Story about migrating public website of one of the oldest universities in Europe from proprietary CMS to Drupal 7. Presented by Mekaia (http://mekaia.com) at DrupalCamp Baltics 2012 (http://www.drupalcamp.lv/).
Why would a developer whose framework of preference is Symfony2 pay attention to Drupal 8?
A general overview of Drupal, including pros and cons of using it.
Prepared and presented by Yaroslav Doroshchuk, CTO, Grossum. The presentation took place at DrupalCamp Kyiv 2014.
No Docker? No Problem: Automating installation and config with AnsibleJeff Potts
In this talk I show how to bring stability and repeatability to your Alfresco installation by automating install and config management with Ansible.
This talk was originally given at Alfresco DevCon 2020 (virtual edition).
Alfresco Share provides a rich platform for further development, allowing you to tweak and customize to your heart’s content, using only lightweight scripting and templating. But with great power, comes great responsibility, as they say. So this session looks at what it means to customize Share, before discussing how best to go about it, with tips and tricks based on real-world examples.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
2. • The Future Group
–TFG is a strong ICT entrepreneurs collective,
consisting of several partnerships. The largest
network of exclusively linked independent experts in
the Netherlands. Consists of 9 different collectives
each with its own specific knowledge area.
• Peter van Nes
– Partner within TFG and focussed on Oracle
technologies. Main expertise on Oracle middleware
(SOA, IDM, Weblogic, FMW) and Java.
2
ABOUT
3. • Rebrand
– Match Weblogic Console to the Corporate Identity
• Differentiate
– Dynamically adjust Look And Feel (LAF) to
environment (DTAP)
– Adjust Look And Feel to WL Role
• Extending with new functionality
3
REASONS TO CUSTOMIZE
4. • Extension point
–Location in Admin Console where content can be
replaced or added
• UI Control
–Has a unique label
–Each labeled UI Control is an Extension point
4
EXTENSION POINTS
5. • Provided by WebLogic Portal framework
– Supports (limited) extension of Weblogic Console
– No support for
• personalization (although we will see otherwise)
• interaction management
• content management
• etc.
5
WEBLOGIC CONSOLE
6. • Extensions are safe!
• Can be enabled/disabled anytime
– Preferences > Extensions
• Are merged with console.app in-memory
6
WEBLOGIC CONSOLE
7. – Open Preferences
– Tab extensions
– Select Show
Definition Labels
SHOW UI CONTROL LABELS
7
EXTENSION POINTS
8. – Open Preferences
– Tab extensions
– Select Show
Definition Labels
SHOW UI CONTROL LABELS
7
EXTENSION POINTS
9. – Open Preferences
– Tab extensions
– Select Show
Definition Labels
SHOW UI CONTROL LABELS
7
EXTENSION POINTS
10. – Open Preferences
– Tab extensions
– Select Show
Definition Labels
SHOW UI CONTROL LABELS
7
EXTENSION POINTS
14. 8
UI CONTROL HIERARCHY
DESKTOP
– top level UI hierarchy
DESKTOP
LOOK AND FEEL
– images
– CSS
– XML files
LOOK AND FEEL
BOOK
– pages
– books
– menu control
BOOK
19. • Start with laftemplate.zip
– located at
${wl.home}/server/lib/console-ext/templates/
– Specific for a Weblogic version
– Initial set of Look and Feel files
– Extract to working directory
• Create netuix-extension.xml
– Copy to WEB-INF folder
– Modify netuix-extension.xml
– Oracle published version is incorrect!
9
BUILDING A NEW LOOK AND FEEL
.
├── css
├── errors
├── framework
├── images
├── javascript
├── layouts
├── login
└── WEB-INF
LAFTEMPLATE
20. • netuix-extension.xml
• Modify provider-info elements
• title
• version
• description
• author
• support-url
• All optional, not influencing functionality
10
BUILDING A NEW LOOK AND FEEL
<provider-info>
<title>Reddipped 11g LAF</title>
<version>1.0</version>
<description>A customized look and feel for WLS 11g Weblogic Console</description>
<author>Peter van Nes</author>
<support-url>http://www.reddipped.com/</support-url>
</provider-info>
21. • netuix-extension.xml
• Modify desktop-extension elements
• attribute title, skin and attribute
• value same as extension name and war-file
• attribute definitionLabel and markupName
• Any value, not used
11
BUILDING A NEW LOOK AND FEEL
<desktop-extension>
<look-and-feel-content title="MyFirstLAF"
definitionLabel="MyFirstLAF"
markupName="myLookAndFeel"
skin="MyFirstLAF"
skin-path="framework/skins"
skeleton="MyFirstLAF"
skeleton-path="framework/skeletons"
default-window-icon="window-icon.gif"
default-window-icon-path="images/"/>
</desktop-extension>
22. 12
BUILDING A NEW LOOK AND FEEL
• Compile jsp files
• Create tmp folder
• Copy from ${wl_home}/server/lib/consoleapp/
webapp
• .jar, .tld, .jsp files and web.xml
• Keep directory structure from laf working
directory!
• Copy from working directory
• .jsp files and .java classes (optional)
.
├── errors
├── framework
│ ├── features
│ └── skeletons
│ ├── default
│ │ └── wlsworkspace
│ └── MyFirstLAF
├── layouts
├── login
└── WEB-INF
└── lib
JSP COMPILE DIR
23. 13
BUILDING A NEW LOOK AND FEEL
• Setup classpath, all jars in
• ${wl.home}/server/lib
• ${wl.home}/server/lib/consoleapp/APP-INF/lib
• ${wl.home}/server/lib/consoleapp/webapp/WEB-
INF/lib
.
├── errors
├── framework
│ ├── features
│ └── skeletons
│ ├── default
│ │ └── wlsworkspace
│ └── MyFirstLAF
├── layouts
├── login
└── WEB-INF
└── lib
JSP COMPILE DIR
24. 14
BUILDING A NEW LOOK AND FEEL
• Compile jsp files
• Execute wlappc
• wlappc source="{tmpdir}"
keepgenerated="true" classPath=“{classpath}”
• Copy compiled classes to laf working directory
• Create Look And Feel WAR
• jar -cf {laf name} {laf working dir}
.
├── errors
├── framework
│ ├── features
│ └── skeletons
├── layouts
├── login
└── WEB-INF
├── classes
│ └── jsp_ext
└── lib
JSP COMPILE DIR
.
├── css
├── errors
├── framework
├── images
├── javascript
├── layouts
├── login
└── WEB-INF
└── classes
└── jsp_ext
LAF WORKING DIR
25. 15
BUILDING A NEW LOOK AND FEEL
• build.laf.xml
• Ant build file to build look and feel war-file
• Contains all necessary targets to build and compile
• targets
• laf.project.initialize
• laf.build
• laf.deploy
• other supporting targets
.
├── errors
├── framework
│ ├── features
│ └── skeletons
├── layouts
├── login
└── WEB-INF
├── classes
│ └── jsp_ext
└── lib
JSP COMPILE DIR
.
├── css
├── errors
├── framework
├── images
├── javascript
├── layouts
├── login
└── WEB-INF
└── classes
└── jsp_ext
LAF WORKING DIR
26. • Setup Weblogic Domain
• Configure Netbeans
• Setup Look And Feel Project
• Customize Look And Feel
• Deploy and Test customization
16
LAB 1
27. • Learn from the code
• Dynamic HTML
– Java Server Pages (JSP)
– Java Standard Tag Library (JSTL)
– Javascript
• JD-GUI is your friend!
17
MORE COMPLEX CUSTOMIZATIONS
28. 18
MORE COMPLEX CUSTOMIZATIONS
• Goal: Dynamic LAF based on environment
• Recognize environment based on domain name
• Dynamic color LAF login page border
• Dynamic toolbar color
29. 18
MORE COMPLEX CUSTOMIZATIONS
• Goal: Dynamic LAF based on environment
• Recognize environment based on domain name
• Dynamic color LAF login page border
• Dynamic toolbar color
30. • How to get the domain name ?
• Explore MBeanUtils
– Imported with import attribute in page directive of
LoginForm.jsp
– Find jar with ‘grep -Ri “com/bea/console/utils/
MBeanUtils” *’.
19
MORE COMPLEX CUSTOMIZATIONS
31. • Use JD GUI to decompile console.jar
• Expand MBeanUtils class to show all methods
• getDomainName
• Returns String containing domain name
• getDomainRuntimeMBeanServerConnection
• Returns MBeanServerConnection
• Enables you to access Runtime MBeans
• MBean Reference
• Weblogic Server MBean Reference
20
MORE COMPLEX CUSTOMIZATIONS
32. • WL Server contains MBeans to
configure, monitor and manage
Weblogic Server resources
• Attributes
– Set / Read values
• Operations
– Execute actions
21
MBEANS AND JMX
33. • Organized into
– Runtime MBeans
•Info about runtime state of server and resource
•Non persistent, volatile
– Configuration Means
• Representation of config xml files
• Accessed through JMX (Java Management Extension)
22
MBEANS AND JMX
34. • Registered in an MBean server
– Domain Runtime MBean Server
•Domain-wide services
– Runtime MBean Server
•Service instance
23
MBEANS AND JMX
35. • Lab 2
– Retrieve domain name
– Make login page border color dependent on
domain name
– Domain name convention [DTAP]_{domain name}
•Test domain : T_MyDomain
•Production domain : P_MyDomain
– Make toolbar color depend on domain name
• Lab 3
– Using MBeans
– List Managed Servers and state on login page
24
LAB 2 & 3
82. 34
ADDING NODES TO DOMAINSTRUCTURE
• Add backingFile attribute
•Java backing class name
•Added to Book or Page
• Create backing Class
•Initialized by backingFile
attribute
•Passes pagebacking
context and page URL
STEPS
83.
BOOK FILE
<netuix:page markupName="page" markupType=“Page"
definitionLabel="DomainDemoPage1"
title="Demo Tab 1"
presentationClass=“page-content"
backingFile=“com.reddipped.DemoNavTreeExtension">
<netuix:meta name="skeleton-resource-bundle"
content=“Bundle"/>
<netuix:content>
…
35
ADDING NODES TO DOMAINSTRUCTURE
com.reddipped.DemoNavTreeExtension
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx, String extensionUrl
PageBackingContext
markupName
markupType
title
definitionLabel
String
http://localhost:7002/console/console.portal?_nfpb=true&_pageLabel=DomainDemoPage1
NavTreePortlet
84.
BOOK FILE
<netuix:page markupName="page" markupType=“Page"
definitionLabel="DomainDemoPage1"
title="Demo Tab 1"
presentationClass=“page-content"
backingFile=“com.reddipped.DemoNavTreeExtension">
<netuix:meta name="skeleton-resource-bundle"
content=“Bundle"/>
<netuix:content>
…
35
ADDING NODES TO DOMAINSTRUCTURE
com.reddipped.DemoNavTreeExtension
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx, String extensionUrl
PageBackingContext
markupName
markupType
title
definitionLabel
String
http://localhost:7002/console/console.portal?_nfpb=true&_pageLabel=DomainDemoPage1
NavTreePortlet
85.
BOOK FILE
<netuix:page markupName="page" markupType=“Page"
definitionLabel="DomainDemoPage1"
title="Demo Tab 1"
presentationClass=“page-content"
backingFile=“com.reddipped.DemoNavTreeExtension">
<netuix:meta name="skeleton-resource-bundle"
content=“Bundle"/>
<netuix:content>
…
35
ADDING NODES TO DOMAINSTRUCTURE
com.reddipped.DemoNavTreeExtension
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx, String extensionUrl
PageBackingContext
markupName
markupType
title
definitionLabel
String
http://localhost:7002/console/console.portal?_nfpb=true&_pageLabel=DomainDemoPage1
NavTreePortlet
86.
BOOK FILE
<netuix:page markupName="page" markupType=“Page"
definitionLabel="DomainDemoPage1"
title="Demo Tab 1"
presentationClass=“page-content"
backingFile=“com.reddipped.DemoNavTreeExtension">
<netuix:meta name="skeleton-resource-bundle"
content=“Bundle"/>
<netuix:content>
…
35
ADDING NODES TO DOMAINSTRUCTURE
com.reddipped.DemoNavTreeExtension
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx, String extensionUrl
PageBackingContext
markupName
markupType
title
definitionLabel
String
http://localhost:7002/console/console.portal?_nfpb=true&_pageLabel=DomainDemoPage1
NavTreePortlet
87. public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add TreeExtension to root of DomainStructure
NavTreeExtensionEvent evt =
new NavTreeExtensionEvent(“/",firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
36
ADDING NODES TO DOMAINSTRUCTURE
88. public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add TreeExtension to root of DomainStructure
NavTreeExtensionEvent evt =
new NavTreeExtensionEvent(“/",firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
36
ADDING NODES TO DOMAINSTRUCTURE
89. public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add TreeExtension to root of DomainStructure
NavTreeExtensionEvent evt =
new NavTreeExtensionEvent(“/",firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
36
ADDING NODES TO DOMAINSTRUCTURE
90. public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add TreeExtension to root of DomainStructure
NavTreeExtensionEvent evt =
new NavTreeExtensionEvent(“/",firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
36
ADDING NODES TO DOMAINSTRUCTURE
91. public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add TreeExtension to root of DomainStructure
NavTreeExtensionEvent evt =
new NavTreeExtensionEvent(“/",firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
36
ADDING NODES TO DOMAINSTRUCTURE
92. 36
ADDING NODES TO DOMAINSTRUCTURE
public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add TreeExtension to root of DomainStructure
NavTreeExtensionEvent evt =
new NavTreeExtensionEvent(“/Environment",firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
93. public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add additional pages using a hardcoded definitionLabel, title and url
TreeNode secondLevelNode2 = new TreeNode(“domainDemoSubPage2_1",
"Demo Sub Tab 1","/console/console.portal?
_nfpb=true&_pageLabel=domainDemoSubPage2_1",firstLevelNode);
TreeNode secondLevelNode3 = new TreeNode("domainDemoSubPage2_2",
"Demo Sub Tab 2”,"/console/console.portal?
_nfpb=true&_pageLabel=domainDemoSubPage2_2",firstLevelNode
37
ADDING NODES TO DOMAINSTRUCTURE
94. public class DemoNavTreeExtension extends NavTreeExtensionBacking {
public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
String extensionUrl){
// Construct the first TreeNode
TreeNode firstLevelNode = new TreeNode("myFirstLevelNode","Demo","") ;
// Add the Page as a child node to the first node
// based on backing context
TreeNode secondLevelNode1 = new TreeNode(ppCtx.getDefinitionLabel(),
ppCtx.getTitle(),extensionUrl,firstLevelNode);
// Add additional pages using a hardcoded definitionLabel, title and url
TreeNode secondLevelNode2 = new TreeNode(“domainDemoSubPage2_1",
"Demo Sub Tab 1","/console/console.portal?
_nfpb=true&_pageLabel=domainDemoSubPage2_1",firstLevelNode);
TreeNode secondLevelNode3 = new TreeNode("domainDemoSubPage2_2",
"Demo Sub Tab 2”,"/console/console.portal?
_nfpb=true&_pageLabel=domainDemoSubPage2_2",firstLevelNode
37
ADDING NODES TO DOMAINSTRUCTURE
95. NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environment”,
firstLevelNode,
NavTreeExtensionEvent.INSERT_ACTION);
NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environmet”,
firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environment”,
firstLevelNode,
NavTreeExtensionEvent.REPLACE_ACTION);
38
ADDING NODES TO DOMAINSTRUCTURE
96. NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environment”,
firstLevelNode,
NavTreeExtensionEvent.INSERT_ACTION);
NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environmet”,
firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environment”,
firstLevelNode,
NavTreeExtensionEvent.REPLACE_ACTION);
38
ADDING NODES TO DOMAINSTRUCTURE
97. NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environment”,
firstLevelNode,
NavTreeExtensionEvent.INSERT_ACTION);
NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environmet”,
firstLevelNode,
NavTreeExtensionEvent.APPEND_ACTION);
NavTreeExtensionEvent evt = new NavTreeExtensionEvent(“/Environment”,
firstLevelNode,
NavTreeExtensionEvent.REPLACE_ACTION);
38
ADDING NODES TO DOMAINSTRUCTURE
98. • Webserver
• JSONP format
MESSAGE SOURCE
• jQuery vTicker
• AngularJS
EXTENSION
39
LAB5
JSON_CALLBACK({
"P_MyDomain":{
"Description":"Development domain for Oracle FMW Technical team",
LAB
• Adding support info
pages based on
domain name
100. • System Statistics Graphs
• Show real-time system information in WL Console
• Historical view over last 15 minutes
• CPU load/#CPU
• Heapsize allocation
• Loaded classes
• All Managed Servers in one view
41
MORE ADVANCED EXTENSION
101. • System Statistics Graphs
• Show real-time system information in WL Console
• Historical view over last 15 minutes
• CPU load/#CPU
• Heapsize allocation
• Loaded classes
• All Managed Servers in one view
41
MORE ADVANCED EXTENSION
107. SysStats.ear
SysStats.war
44
MORE ADVANCED EXTENSION
SysStats
<listener-class>SystemInfoCollectorExecutor</listener-class>
web.xml
public class SystemInfoCollectorExecutor {
public void contextInitialized(ServletContextEvent sce) {
systemInfoCollectorHandle = scheduler.scheduleAtFixedRate(new
SystemInfoCollector(), 1, 1, TimeUnit.MINUTES);
public class SystemInfoCollector implements Runnable {
OperationsAttributes
SysStats.ear has Java
EE Module
SystStats.war
SysStats.war includes
listener class
Class executed by
scheduler invokes Take
operations on SysStats
MXBean.
Listener class initiates
scheduler on context
initalization
108. SysStats.ear
SysStats.war
44
MORE ADVANCED EXTENSION
SysStats
<listener-class>SystemInfoCollectorExecutor</listener-class>
web.xml
public class SystemInfoCollectorExecutor {
public void contextInitialized(ServletContextEvent sce) {
systemInfoCollectorHandle = scheduler.scheduleAtFixedRate(new
SystemInfoCollector(), 1, 1, TimeUnit.MINUTES);
public class SystemInfoCollector implements Runnable {
OperationsAttributes
SysStats.ear has Java
EE Module
SystStats.war
SysStats.war includes
listener class
Class executed by
scheduler invokes Take
operations on SysStats
MXBean.
Listener class initiates
scheduler on context
initalization
109. SysStats.ear
SysStats.war
44
MORE ADVANCED EXTENSION
SysStats
<listener-class>SystemInfoCollectorExecutor</listener-class>
web.xml
public class SystemInfoCollectorExecutor {
public void contextInitialized(ServletContextEvent sce) {
systemInfoCollectorHandle = scheduler.scheduleAtFixedRate(new
SystemInfoCollector(), 1, 1, TimeUnit.MINUTES);
public class SystemInfoCollector implements Runnable {
OperationsAttributes
SysStats.ear has Java
EE Module
SystStats.war
SysStats.war includes
listener class
Class executed by
scheduler invokes Take
operations on SysStats
MXBean.
Listener class initiates
scheduler on context
initalization
110. SysStats.ear
SysStats.war
44
MORE ADVANCED EXTENSION
SysStats
<listener-class>SystemInfoCollectorExecutor</listener-class>
web.xml
public class SystemInfoCollectorExecutor {
public void contextInitialized(ServletContextEvent sce) {
systemInfoCollectorHandle = scheduler.scheduleAtFixedRate(new
SystemInfoCollector(), 1, 1, TimeUnit.MINUTES);
public class SystemInfoCollector implements Runnable {
OperationsAttributes
SysStats.ear has Java
EE Module
SystStats.war
SysStats.war includes
listener class
Class executed by
scheduler invokes Take
operations on SysStats
MXBean.
Listener class initiates
scheduler on context
initalization
112. • Data presentation
•Chart.js for graphs
•HTML 5 based
•Require JSON datastructure
•BXSlider for sliding multiple graphs
• 3 different graphs
• CPU load/#CPU
• Heapsize allocation
• Loaded classes
46
MORE ADVANCED EXTENSION
113. 47
MORE ADVANCED EXTENSION
• CPU Load
•#Processes running or
runnable
•Differs from CPU
Utilization
•Better indication user wait
time
• Graph
•CPU Load/CPUs
•Load per CPU
•15 min. timeframe
•One layer per Server
•Consolidate view
•Easy to detect anomalies
CPU LOAD/#CPU
130. HEAP
51
MORE ADVANCED EXTENSION
Memory Pool
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Memory Pool
Memory Pool
131. HEAP
51
MORE ADVANCED EXTENSION
Memory Pool
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Memory Pool
Memory Pool
USED
COMMITTED - USED
132. HEAP
51
MORE ADVANCED EXTENSION
Memory Pool
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Memory Pool
Memory Pool
USED
COMMITTED - USED
USED
COMMITTED - USED
133. HEAP
51
MORE ADVANCED EXTENSION
Memory Pool
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Maximum
Init
Used
Committed
Memory Pool
Memory Pool
USED
COMMITTED - USED
USED
COMMITTED - USED
USED
COMMITTED - USED
134. 52
MORE ADVANCED EXTENSION
• Experimental view
•Free %, not allocated
heap
•Committed not used,
committed - used
•Used,
used heap
HEAPSIZE ALLOCATION
146. DEVELOPING ENTERPRISE JAVABEANS, VERSION 2.1, FOR ORACLE
EXTENDING THE ADMINISTRATION CONSOLE FOR ORACLE WEBLOGIC SERVER
WEBLOGIC SERVER MBEAN REFERENCE
W3SCHOOLS ANGULARJS
CODESCHOOL SHAPING UP WITH ANGULARJS
BXSLIDER THE RESPONSIVE JQUERY CONTENT SLIDER
CHART.JS
TYPOGRAPHY
TUTORIALSPOINT JAVA SERVER PAGES
57
USEFULL WEBSITES