Weblogic Console Customization

Post on 16-Jan-2017

653 views 1 download

Transcript of Weblogic Console Customization

WEBLOGIC CONSOLE CUSTOMIZATION

An introduction to customizing and extending the Weblogic Console

1

bull The Future GroupndashTFG 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

bull Peter van Nesndash Partner within TFG and focussed on Oracle technologies Main expertise on Oracle middleware (SOA IDM Weblogic FMW) and Java

2

ABOUT

bull Rebrandndash Match Weblogic Console to the Corporate Identity

bull Differentiatendash Dynamically adjust Look And Feel (LAF) to environment (DTAP)ndash Adjust Look And Feel to WL Role

bull Extending with new functionality

3

REASONS TO CUSTOMIZE

bull Extension pointndashLocation in Admin Console where content can be replaced or added

bull UI ControlndashHas a unique labelndashEach labeled UI Control is an Extension point

4

EXTENSION POINTS

bull Provided by WebLogic Portal frameworkndash Supports (limited) extension of Weblogic Consolendash No support for bull personalization (although we will see otherwise)bull interaction managementbull content managementbull etc

5

WEBLOGIC CONSOLE

bull Extensions are safebull Can be enableddisabled anytimendash Preferences gt Extensions

bull Are merged with consoleapp in-memory

6

WEBLOGIC CONSOLE

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull The Future GroupndashTFG 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

bull Peter van Nesndash Partner within TFG and focussed on Oracle technologies Main expertise on Oracle middleware (SOA IDM Weblogic FMW) and Java

2

ABOUT

bull Rebrandndash Match Weblogic Console to the Corporate Identity

bull Differentiatendash Dynamically adjust Look And Feel (LAF) to environment (DTAP)ndash Adjust Look And Feel to WL Role

bull Extending with new functionality

3

REASONS TO CUSTOMIZE

bull Extension pointndashLocation in Admin Console where content can be replaced or added

bull UI ControlndashHas a unique labelndashEach labeled UI Control is an Extension point

4

EXTENSION POINTS

bull Provided by WebLogic Portal frameworkndash Supports (limited) extension of Weblogic Consolendash No support for bull personalization (although we will see otherwise)bull interaction managementbull content managementbull etc

5

WEBLOGIC CONSOLE

bull Extensions are safebull Can be enableddisabled anytimendash Preferences gt Extensions

bull Are merged with consoleapp in-memory

6

WEBLOGIC CONSOLE

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Rebrandndash Match Weblogic Console to the Corporate Identity

bull Differentiatendash Dynamically adjust Look And Feel (LAF) to environment (DTAP)ndash Adjust Look And Feel to WL Role

bull Extending with new functionality

3

REASONS TO CUSTOMIZE

bull Extension pointndashLocation in Admin Console where content can be replaced or added

bull UI ControlndashHas a unique labelndashEach labeled UI Control is an Extension point

4

EXTENSION POINTS

bull Provided by WebLogic Portal frameworkndash Supports (limited) extension of Weblogic Consolendash No support for bull personalization (although we will see otherwise)bull interaction managementbull content managementbull etc

5

WEBLOGIC CONSOLE

bull Extensions are safebull Can be enableddisabled anytimendash Preferences gt Extensions

bull Are merged with consoleapp in-memory

6

WEBLOGIC CONSOLE

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Extension pointndashLocation in Admin Console where content can be replaced or added

bull UI ControlndashHas a unique labelndashEach labeled UI Control is an Extension point

4

EXTENSION POINTS

bull Provided by WebLogic Portal frameworkndash Supports (limited) extension of Weblogic Consolendash No support for bull personalization (although we will see otherwise)bull interaction managementbull content managementbull etc

5

WEBLOGIC CONSOLE

bull Extensions are safebull Can be enableddisabled anytimendash Preferences gt Extensions

bull Are merged with consoleapp in-memory

6

WEBLOGIC CONSOLE

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Provided by WebLogic Portal frameworkndash Supports (limited) extension of Weblogic Consolendash No support for bull personalization (although we will see otherwise)bull interaction managementbull content managementbull etc

5

WEBLOGIC CONSOLE

bull Extensions are safebull Can be enableddisabled anytimendash Preferences gt Extensions

bull Are merged with consoleapp in-memory

6

WEBLOGIC CONSOLE

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Extensions are safebull Can be enableddisabled anytimendash Preferences gt Extensions

bull Are merged with consoleapp in-memory

6

WEBLOGIC CONSOLE

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ndash Open Preferencesndash Tab extensionsndash Select Show

Definition Labels

SHOW UI CONTROL LABELS

7

EXTENSION POINTS

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHY

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

79PT

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHYDESKTOP

ndash top level UI hierarchyDESKTOP

LOOK AND FEEL

ndash imagesndash CSSndash XML files

LOOK AND FEEL

BOOK

ndash pagesndash booksndash menu control

BOOK

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

ndash layoutndash portletsndash books

PAGE

LAYOUT ndash placeholdersLAYOUT

PLACEHOLDER

ndash portletsndash books

PLACEHOLDER

79PT

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

8

UI CONTROL HIERARCHYDESKTOP

LOOK AND FEEL BOOK

PAGE

LAYOUT

PLACEHOLDER

79PT

PORTLET

ndash ContentPORTLET

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Start with laftemplatezipndash located at $wlhomeserverlibconsole-exttemplatesndash Specific for a Weblogic versionndash Initial set of Look and Feel filesndash Extract to working directory

bull Create netuix-extensionxmlndash Copy to WEB-INF folderndash Modify netuix-extensionxmlndash Oracle published version is incorrect

9

BUILDING A NEW LOOK AND FEEL

css errors framework images javascript layouts login WEB-INF

LAFTEMPLATE

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull netuix-extensionxmlbull Modify provider-info elementsbull titlebull versionbull descriptionbull authorbull support-url

bull All optional not influencing functionality

10

BUILDING A NEW LOOK AND FEEL

ltprovider-infogt lttitlegtReddipped 11g LAFlttitlegt ltversiongt10ltversiongt ltdescriptiongtA customized look and feel for WLS 11g Weblogic Consoleltdescriptiongt ltauthorgtPeter van Nesltauthorgt ltsupport-urlgthttpwwwreddippedcomltsupport-urlgt ltprovider-infogt

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull netuix-extensionxmlbull Modify desktop-extension elementsbull attribute title skin and attributebull value same as extension name and war-file

bull attribute definitionLabel and markupNamebull Any value not used

11

BUILDING A NEW LOOK AND FEEL

ltdesktop-extensiongt ltlook-and-feel-content title=MyFirstLAF definitionLabel=MyFirstLAF markupName=myLookAndFeel skin=MyFirstLAF skin-path=frameworkskins skeleton=MyFirstLAF skeleton-path=frameworkskeletons default-window-icon=window-icongif default-window-icon-path=imagesgt ltdesktop-extensiongt

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

12

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Create tmp folderbull Copy from $wl_homeserverlibconsoleapp

webappbull jar tld jsp files and webxml bull Keep directory structure from laf working

directorybull Copy from working directorybull jsp files and java classes (optional)

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

13

BUILDING A NEW LOOK AND FEEL

bull Setup classpath all jars inbull $wlhomeserverlibbull $wlhomeserverlibconsoleappAPP-INFlibbull $wlhomeserverlibconsoleappwebappWEB-

INFlib

errors framework features skeletons default wlsworkspace MyFirstLAF layouts login WEB-INF lib

JSP COMPILE DIR

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

14

BUILDING A NEW LOOK AND FEEL

bull Compile jsp filesbull Execute wlappcbull wlappc source=tmpdir

keepgenerated=true classPath=ldquoclasspathrdquobull Copy compiled classes to laf working directory

bull Create Look And Feel WARbull 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

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

15

BUILDING A NEW LOOK AND FEEL

bull buildlafxmlbull Ant build file to build look and feel war-filebull Contains all necessary targets to build and compilebull targetsbull lafprojectinitializebull lafbuildbull lafdeploybull 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

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Setup Weblogic Domainbull Configure Netbeansbull Setup Look And Feel Projectbull Customize Look And Feelbull Deploy and Test customization

16

LAB 1

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Learn from the codebull Dynamic HTMLndash Java Server Pages (JSP) ndash Java Standard Tag Library (JSTL)ndash Javascript

bull JD-GUI is your friend

17

MORE COMPLEX CUSTOMIZATIONS

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

18

MORE COMPLEX CUSTOMIZATIONS

bull Goal Dynamic LAF based on environmentbull Recognize environment based on domain namebull Dynamic color LAF login page borderbull Dynamic toolbar color

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull How to get the domain name bull Explore MBeanUtilsndash Imported with import attribute in page directive of LoginFormjsp

ndash Find jar with lsquogrep -Ri ldquocombeaconsoleutilsMBeanUtilsrdquo rsquo

19

MORE COMPLEX CUSTOMIZATIONS

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Use JD GUI to decompile consolejarbull Expand MBeanUtils class to show all methods bull getDomainNamebull Returns String containing domain name

bull getDomainRuntimeMBeanServerConnectionbull Returns MBeanServerConnectionbull Enables you to access Runtime MBeans

bull MBean Referencebull Weblogic Server MBean Reference

20

MORE COMPLEX CUSTOMIZATIONS

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull WL Server contains MBeans toconfigure monitor and manageWeblogic Server resourcesbull Attributesndash Set Read values

bull Operationsndash Execute actions

21

MBEANS AND JMX

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Organized intondash Runtime MBeansbull Info about runtime state of server and resourcebullNon persistent volatile

ndash Configuration Meansbull Representation of config xml files

bull Accessed through JMX (Java Management Extension)

22

MBEANS AND JMX

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Registered in an MBean serverndash Domain Runtime MBean ServerbullDomain-wide services

ndash Runtime MBean ServerbullService instance

23

MBEANS AND JMX

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Lab 2ndash Retrieve domain namendash Make login page border color dependent on domain namendash Domain name convention [DTAP]_domain namebullTest domain T_MyDomainbullProduction domain P_MyDomain

ndash Make toolbar color depend on domain namebull Lab 3ndash Using MBeans ndash List Managed Servers and state on login page

24

LAB 2 amp 3

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

25

LAB 4

CALLBACK([ ldquoMSGrdquordquoSome customers in domain OBIEE_1 helliprdquo

]

LAB

bull Broadcastingmessages to admins

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

BEEHIVE PAGE FLOWSTRUTS ACTION

26

ADDING PORTLETS

NETUIX-EXTENSIONXML

SOMEPORTLET

JAVA SERVER PAGE (JSP)

bull Extends consoleportalbull Adds Portlet to

desktop bull (sub)Tab to

ContentBook

Defines data to load Adds business and navigation logic

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

PLACEHOLDER POSITION 0

PLACEHOLDER POSITION 1

PLACEHOLDER POSITION 2

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=1 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

27

ADDING PORTLETS TO THE DESKTOP

NETUIX-EXTENSIONXML

LAYOUT LOCATION

0

LAYOUT LOCATION

1

ltpage-extensiongt ltpage-locationgt ltparent-label-location

label=pagegt ltpage-insertion-point

layout-location=0 placeholder-position=0gt

ltpage-locationgt ltportlet-content content-uri=ldquodemoportlet

title=Demo title orientation=top default-

minimized=false instance-label=demo-

portletgt ltpage-extensiongt

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DEMOPORTLETltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=gt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

28

PORTLET STYLES

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-layout-cellgt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltmdash ltnetuixtitlebargt mdashgt ltnetuixcontentgt ltnetuixjspContent contentUri=jspextdemojspgt ltnetuixcontentgt ltnetuixportletgt

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DEMOPORTLET

28

PORTLET STYLES

ltnetuixportlet definitionLabel=ldquoDemoPortletrdquo title=ldquoDemoPortlet presentationClass=wlsc-framegt ltnetuixtitlebargt ltnetuixminimizegt ltnetuixmaximizegt ltnetuixtitlebargt ltnetuixcontentgt ltnetuixjspContent

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltbook-extensiongt ltbook-locationgt ltparent-label-location

label=CoreDomainConfigGeneralBookgt

ltbook-insertion-point action=appendgt

ltbook-locationgt ltbook-content content-uri=ldquo

controlsdemobookrdquogt ltbook-extensiongt

29

ADDING PORTLETS AS A TAB OF CONTENTBOOK

NETUIX-EXTENSIONXML

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

30

ADDING TAB WITHOUT SUBTABS

ltnetuixpage markupName=page markupType=Page definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=page-contentgt ltnetuixmeta name=skeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt

DEMOBOOK

ndash definitionLabelndash instanceLabel

UNIQUENESS

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

THIS IS A BOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

lsquo SKELETONURI=ldquoSINGLELEVELMENU_CHILDRENJSP lsquo IS DEPRECATEDUSE PRESENTATIONCLASS ATTRIBUTE WITH VALUE MULTI-LEVEL1

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

ltnetuixbook markupName=ldquobook markupType=ldquoBookrdquo definitionLabel=ldquodomainDemoSubTabs title=Demo Tab 2gt ltnetuixsingleLevelMenu markupType=ldquoMenurdquo markupName=ldquosingleLevelMenu presentationClass=ldquomulti-level1rdquogt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixpage markupName=ldquopage hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

DEMOBOOK

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

31

ADDING PORTLETS AS (SUB-)TABS

DEMOBOOK

ltnetuixbook hellip ltnetuixcontentgt ltnetuixpage markupName=ldquopage markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_1 title=Demo Sub Tab 1rdquo presentationClass=page-contentgt ltnetuixmeta name=ldquoskeleton-resource-bundle content=Bundlegt ltnetuixcontentgt ltnetuixportletInstance markupType=ldquoPortletrdquo instanceLabel=ldquodemoportlet2_1 contentUri=portletsdemoportletgt ltnetuixcontentgt ltnetuixpagegt ltnetuixpage markupName=page markupType=ldquoPage definitionLabel=ldquodomainDemoSubPage2_2 title=Demo Sub Tab 2rdquo hellip ltnetuixpagegt ltnetuixcontentgt ltnetuixbookgt

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

LAYOUTS

32

PAGE LAYOUTS

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayouttwoColumnLayout

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

onecolumnflowLAYOUTS

32

PAGE LAYOUTS

singlecolumnLayout

threeColumnLayoutfourColumnLayout

twoColumnLayout

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

ltnetuixgridLayout columns=2 markupType=Layout markupName=twoColumnLayoutgt ltnetuixplaceholder flow=vertical usingFlow=true width=ldquo30 markupType=Placeholder markupName=twoColumn_leftgt ltnetuixportletInstance markupType=ldquoPortlet instanceLabel=demoportlet contentUri=portletsdemoportletgt ltnetuixplaceholdergt ltnetuixplaceholder hellip

hellip ltnetuixplaceholdergt ltnetuixgridLayoutgt

33

PAGE LAYOUTS gridlayoutmarkupname columns placeholder

markupnames

oneColumnFlowLayout na oneColumnFlow_center

singleColumnLayout 1 singleColumn_columnOne

twoColumnLayout 2 twoColumn_lefttwoColumn_right

threeColumnLayout 3 threeColumn_leftthreeColumn_center threeColumn_right

fourColumnLayout 4 fourColumn_left fourColumn_leftCenter fourColumn_rightCenter fourColumn_right

Example layoutsweblogichomelibconsoleappwebappframeworkmarkuplayout

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

34

ADDING NODES TO DOMAINSTRUCTURE

bull Add backingFile attributebullJava backing class namebullAdded to Book or Page

bullCreate backing Classbull Initialized by backingFile attributebullPasses pagebacking context and page URL

STEPS

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

BOOK FILE ltnetuixpage markupName=page markupType=ldquoPage

definitionLabel=DomainDemoPage1 title=Demo Tab 1 presentationClass=ldquopage-content backingFile=ldquocomreddippedDemoNavTreeExtensiongt

ltnetuixmeta name=skeleton-resource-bundle content=ldquoBundlegt

ltnetuixcontentgt hellip

35

ADDING NODES TO DOMAINSTRUCTURE

comreddippedDemoNavTreeExtension public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl

PageBackingContext markupName markupType title definitionLabel

String

httplocalhost7002consoleconsoleportal_nfpb=trueampamp_pageLabel=DomainDemoPage1

NavTreePortlet

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquofirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

36

ADDING NODES TO DOMAINSTRUCTURE

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

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(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode) Add TreeExtension to root of DomainStructure NavTreeExtensionEvent evt =

new NavTreeExtensionEvent(ldquoEnvironmentfirstLevelNode NavTreeExtensionEventAPPEND_ACTION)

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

public class DemoNavTreeExtension extends NavTreeExtensionBacking

public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx String extensionUrl)

Construct the first TreeNode TreeNode firstLevelNode = new TreeNode(myFirstLevelNodeDemo)

Add the Page as a child node to the first node

based on backing context TreeNode secondLevelNode1 = new TreeNode(ppCtxgetDefinitionLabel() ppCtxgetTitle()extensionUrlfirstLevelNode)

Add additional pages using a hardcoded definitionLabel title and url TreeNode secondLevelNode2 = new TreeNode(ldquodomainDemoSubPage2_1 Demo Sub Tab 1consoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_1firstLevelNode)

TreeNode secondLevelNode3 = new TreeNode(domainDemoSubPage2_2 Demo Sub Tab 2rdquoconsoleconsoleportal

_nfpb=trueamp_pageLabel=domainDemoSubPage2_2firstLevelNode

37

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventINSERT_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmetrdquo firstLevelNode NavTreeExtensionEventAPPEND_ACTION)

NavTreeExtensionEvent evt = new NavTreeExtensionEvent(ldquoEnvironmentrdquo firstLevelNode NavTreeExtensionEventREPLACE_ACTION)

38

ADDING NODES TO DOMAINSTRUCTURE

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Webserverbull JSONP format

MESSAGE SOURCE

bull jQuery vTickerbull AngularJS

EXTENSION

39

LAB5

JSON_CALLBACK( P_MyDomain DescriptionDevelopment domain for Oracle FMW Technical team DepartmentNameResearch and Development

LAB

bull Adding support info pages based on domain name

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

40

LAB6LAB

bull Add a tabbull Add a node to

Domain Structure

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull System Statistics Graphsbull Show real-time system information in WL Consolebull Historical view over last 15 minutesbull CPU loadCPUbull Heapsize allocationbull Loaded classes

bull All Managed Servers in one view

41

MORE ADVANCED EXTENSION

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Data collectionndash MXBean SysStatsbull SimpleType Attributesndash NumCPUsndash Architecturendash CPULoadAverage

bull ArrayType Attributesndash AvgCPULoadHistoryndash LoadedClassesHistoryndash HeapUsageHistory

42

MORE ADVANCED EXTENSION

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistoryTime Value

124232 14124292 11

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

43

MORE ADVANCED EXTENSION

SysStatsATTRIBUTES

OPERATIONS

CPULoadAverage

AvgCPULoadHistory

takeAvgCPULoadHistorySample 12

AvgCPULoadHistory-Time Value

124232 14124292 11124352 12

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

SysStatsearSysStatswar

44

MORE ADVANCED EXTENSION

SysStats

ltlistener-classgtSystemInfoCollectorExecutorltlistener-classgt

webxml

public class SystemInfoCollectorExecutor public void contextInitialized(ServletContextEvent sce)

systemInfoCollectorHandle = schedulerscheduleAtFixedRate(new SystemInfoCollector() 1 1 TimeUnitMINUTES)

public class SystemInfoCollector implements Runnable

OperationsAttributes

SysStatsear has Java EE Module SystStatswar

SysStatswar includes listener class

Class executed by scheduler invokes Take operations on SysStats MXBean

Listener class initiates scheduler on context initalization

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

45

LAB7ALAB

bull Deploy SysStatsearbull Explore the SystStats

MXBean

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

bull Data presentationbullChartjs for graphsbullHTML 5 basedbullRequire JSON datastructurebullBXSlider for sliding multiple graphs

bull 3 different graphsbull CPU loadCPUbull Heapsize allocationbull Loaded classes

46

MORE ADVANCED EXTENSION

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

47

MORE ADVANCED EXTENSION

bullCPU LoadbullProcesses running or runnablebullDiffers from CPU UtilizationbullBetter indication user wait time

bullGraphbullCPU LoadCPUsbullLoad per CPUbull15 min timeframebullOne layer per ServerbullConsolidate viewbullEasy to detect anomalies

CPU LOADCPU

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOL

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

48

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

TENURED

PERM GEN

CODE CACHE

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

49

MORE ADVANCED EXTENSION

MEMORY POOL

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE⎨Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE⎨⎨

Memory Pool

Memory Pool

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

49

MORE ADVANCED EXTENSION

MEMORY POOLHEAP NON-HEAP

EDEN SPACE

SURVIVOR SPACE

PERM GEN⎨Memory Pool

⎨⎨

Memory Pool

Memory Pool

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

50

MORE ADVANCED EXTENSION

⎨Memory Pool

Max

imum

Init Use

dC

omm

itted

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

HEA

P

51

MORE ADVANCED EXTENSION

⎨Memory PoolM

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

⎨M

axim

umIn

it

Use

d

Com

mitt

ed

Memory Pool

Memory Pool

USED

COMMITTED - USED

USED

COMMITTED - USED

USED

COMMITTED - USED

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

52

MORE ADVANCED EXTENSION

bull Experimental viewbullFree not allocated heapbullCommitted not used committed - usedbullUsedused heap

HEAPSIZE ALLOCATION

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

53

MORE ADVANCED EXTENSION

bullClasses are loaded in permanent generation

LOADED CLASSES

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartwebxml ltservletgt ltservlet-namegtJChartJSONObjectsltservlet-namegt ltservlet-classgtcomreddippedcontrollerjsonJChartJSONObjectsltservlet-classgt ltservletgt ltservlet-mappinggt ltservlet-namegtJChartJSONObjectsltservlet-namegt lturl-patterngtJChartJSONObjectslturl-patterngt ltservlet-mappinggt

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

54

MORE ADVANCED EXTENSIONHTTPhellipJChartJSONObjectschartType=cpuLoadRadarChartldquolabels

[1008100910101011101210131014101510161017101810191020102110221023]

ldquodatasetsrdquo[ labelmyserver2 ldquofillColorrgba(1652221102) ldquostrokeColorrgba(165222111) ldquopointColorrgba(165222111) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(165222111) ldquodata

[006018000000000000005003000000000000002700200000000000000180770199999999999999980560620000000000000112000000000000002048069005000000000000004400601399999999999999906809]labelmyserver3fillColorrgba(199193102)strokeColorrgba(19919311)pointColorrgba(19919311)pointStrokeColorfffpointHighlightFillfffpointHighlightStrokergba(19919311)data[035035000000000000003027045000000000000007047000000000000003076034013999999999999990820000000000000103800799999999999999604300000000000000505900000000000001031018005000000000000002]

ldquolabelmyserver ldquofillColorrgba(227158302) ldquostrokeColorrgba(22715831) ldquopointColorrgba(22715831) ldquopointStrokeColorfff ldquopointHighlightFillfff ldquopointHighlightStrokergba(22715831)

SysStats

MBean Server Connection

JChartJSONHelper

JChartJSONObjects

JSON

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

55

MORE ADVANCED EXTENSION

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

55

MORE ADVANCED EXTENSION

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

56

LAB7BLAB

bull Add Java Classesbull JChartJSONObjectsbull JChartJSONHelper

bull Create WLC Extbull Add Bookbull Add JSP

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DEVELOPING ENTERPRISE JAVABEANS VERSION 21 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

CHARTJS

TYPOGRAPHY

TUTORIALSPOINT JAVA SERVER PAGES

57

USEFULL WEBSITES

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes

DRIVEHOME SAFELY

wwwreddippedcom

58

petervannes