SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Developer Tools
David Avendasora
Senior Software Engineer, K12, Inc.
@avendasora
Topics
•   Available Versions of WOLips

•   What’s New in WOLips

•   Linking to WebObjects Javadoc

•   Decompiling

•   ERProfiling

•   SnapshotExplorer
Available Versions
•   WOLips 3.4

    •   Update Site: http://webobjects.mdimension.com/hudson/job/
        WOLips34Stable/lastSuccessfulBuild/artifact/site/

    •   Eclipse 3.4.2 Carbon Only

    •   Previously known as “WOLips Stable”

    •   Maclipse Compatible
        http://webobjects.mdimension.com/wolips/support/preview/

    •   It has known Bugs

    •   NO fixes/updates!
Available Versions
•   WOLips 3.5

    •   Update Site: http://webobjects.mdimension.com/hudson/job/
        WOLips35Stable/lastSuccessfulBuild/artifact/site/

    •   Eclipse 3.5 Cocoa or Carbon

    •   Maclipse Compatible (Cocoa only)
        http://webobjects.mdimension.com/maclipse/

    •   Eclipse Cocoa is slow
Available Versions
•   WOLips 3.6

    •   Update Site: http://webobjects.mdimension.com/hudson/job/
        WOLips36Current/lastSuccessfulBuild/artifact/site/

    •   Eclipse 3.6 (surprise!) Carbon/Cocoa

    •   Where all the new features are added and bugs fixed

    •   Fast(er) Cocoa

    •   What all the cool devs use (experimental)

    •   No Maclipse (yet?) :-(
What’s new in WOLips 3.6?
                             Plugins



•   Removed Maven 1 and Apple Maven Support

•   Reorganized Plugin Install Options

•   Updated JRebel plugin to work with JRebel 3
What’s new in WOLips 3.6?
          Plugins
What’s new in WOLips 3.6?
                             Plugins



•   Removed Maven 1 and Apple Maven Support

•   Reorganized Plugin Install Options

•   Updated JRebel plugin to work with JRebel 3
What’s new in WOLips 3.6?
                          Preferences



•   New UI for wolips.properties that allows you to edit the values
    directly in the WOLips preference pane

•   WOLips validation preference pane now uses popups for
    severity levels
What’s new in WOLips 3.6?
         Preferences
What’s new in WOLips 3.6?
                          Preferences



•   New UI for wolips.properties that allows you to edit the values
    directly in the WOLips preference pane

•   WOLips validation preference pane now uses popups for
    severity levels
What’s new in WOLips 3.6?
         Preferences
What’s new in WOLips 3.6?
                            Building



•   Bundle-less Builds - no more build directory that WOLips has to
    keep in sync with project. Requires ERJars (r11001 or later)

•   New Wonder EOGenerator templates
What’s new in WOLips 3.6?
          Building
What’s new in WOLips 3.6?
                            Building



•   Bundle-less Builds - no more build directory that WOLips has to
    keep in sync with project. Requires ERJars (r11001 or later)

•   New Wonder EOGenerator templates
What’s new in WOLips 3.6?
                           Modeling


•   Entity Modeler now opens in a new window by default

•   Cmd-Shift-V allows you to type an entity name and Entity
    Modeler will open the right EOModel and select the requested
    entity (entity name, not class name)

•   Double-Clicking an EOModel in the finder can open it in
    WOLips
What’s new in WOLips 3.6?
         Modeling
What’s new in WOLips 3.6?
                           Modeling


•   Entity Modeler now opens in a new window by default

•   Cmd-Shift-V allows you to type an entity name and Entity
    Modeler will open the right EOModel and select the requested
    entity (entity name, not class name)

•   Double-Clicking an EOModel in the finder can open it in
    WOLips
What’s new in WOLips 3.6?
                         Summary



WOLips 3.6 is an evolution, not a revolution
 •   Many things are refined, work smother, made easier
Linking to WebObjects Javadoc

•   Use Xcode 3.2 to install the Mac OS X Legacy Library docset
    (847 MB) in the Preferences > Documentation tab

•   In WOLips preference pane, set WebObjects Javadoc to:
    /Library/Developer/Shared/Documentation/DocSets/
    com.apple.adc.documentation.AppleLegacy.CoreReference.docset/Contents/Resources/
    Documents/documentation/InternetWeb/Reference/WO542Reference/
    (this directory is in a package, so you can’t just browse to it.)

•   Restart Eclipse
Linking to WebObjects Javadoc
Linking to WebObjects Javadoc

•   Use Xcode 3.2 to install the Mac OS X Legacy Library docset
    (847 MB) in the Preferences > Documentation tab

•   In WOLips preference pane, set WebObjects Javadoc to:
    /Library/Developer/Shared/Documentation/DocSets/
    com.apple.adc.documentation.AppleLegacy.CoreReference.docset/Contents/Resources/
    Documents/documentation/InternetWeb/Reference/WO542Reference/
    (this directory is in a package, so you can’t just browse to it.)

•   Restart Eclipse
Linking to WebObjects Javadoc
Linking to WebObjects Javadoc

•   Use Xcode 3.2 to install the Mac OS X Legacy Library docset
    (847 MB) in the Preferences > Documentation tab

•   In WOLips preference pane, set WebObjects Javadoc to:
    /Library/Developer/Shared/Documentation/DocSets/
    com.apple.adc.documentation.AppleLegacy.CoreReference.docset/Contents/Resources/
    Documents/documentation/InternetWeb/Reference/WO542Reference/
    (this directory is in a package, so you can’t just browse to it.)

•   Restart Eclipse
Linking to WebObjects Javadoc
Decompiling on-the-fly in Eclipse
•   Sometimes Javadoc just isn’t enough.You want to know what’s
    really going on behind the curtain...

•   Java Decompiler (JD): http://java.decompiler.free.fr/

•   JD-Eclipse is a plug-in for Eclipse. It allows you to display the
    source code of “.class” files during development and debugging.

•   Follow JD-Eclipse install instructions for Eclipse 3.2, 3.3 & 3.5
    here: http://java.decompiler.free.fr/?q=jdeclipse

•   Intel Only
Decompiling on-the-fly in Eclipse
Decompiling on-the-fly in Eclipse
•   Sometimes Javadoc just isn’t enough.You want to know what’s
    really going on behind the curtain...

•   Java Decompiler (JD): http://java.decompiler.free.fr/

•   JD-Eclipse is a plug-in for Eclipse. It allows you to display the
    source code of “.class” files during development and debugging.

•   Follow JD-Eclipse install instructions for Eclipse 3.2, 3.3 & 3.5
    here: http://java.decompiler.free.fr/?q=jdeclipse

•   Intel Only
Decompiling on-the-fly in Eclipse
In-Browser Tools
Extending development beyond Eclipse/WOLips UI

•   DirectToWeb Panel - helps debug D2W apps by providing controls
    for rules, logging, localization, CSS, etc.

•   ERProfiling - helps you understand how your app is functioning, what
    parts of a page are slow and why.

•   SnapshotExplorer - allows you to browse the snapshots in your
    application’s EODatabases

•   ClickToOpen - helps you figure out what components render what
    parts of a page and how they interact with each other
ERProfiling
                           What is it?

•   Designed around WebObjects

•   Page-based approach to profiling your app.

•   Allows you to look at the statistics for individual pages and
    actions

•   Helps you understand why pages and actions perform the way
    they do.
ERProfiling
                   Adding it to your project
•   Add ERProfiling.framework to your app

•   Add the javaagent setting to the VM args section of your launch
    config:

    •   Wonder source: -javaagent:${workspace_loc:ERProfiling}/
        Libraries/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin

    •   Wonder binaries: -javaagent:/path/to/ERProfiling.framework/
        Resources/Java/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin

•   Run/Debug your app
ERProfiling
ERProfiling
•   Add ERProfiling.framework to your app

•   Add the javaagent setting to the VM args section of your launch
    config:

    •   Wonder source: -javaagent:${workspace_loc:ERProfiling}/
        Libraries/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin

    •   Wonder binaries: -javaagent:/path/to/ERProfiling.framework/
        Resources/Java/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin

•   Run/Debug your app
SnapshotExplorer
                          What is it?


•   NOT the “FreshnessExplorer” demoed by Mark last year - no
    matter how many times I’ve misspoken in the last 10 minutes

•   Allows you to look over EOF’s shoulder and see what it sees
    compared to what the UI or Database show

•   Runs only in Development
SnapshotExplorer
                 Adding it to your project
•    Add the following Wonder frameworks to your Build Path:
    ➡ SnapshotExplorer
    ➡ Ajax
    ➡ ERRest
    ➡ WOOgnl


•   Add the following line to your Application() constructor:
    SESnapshotExplorer.register();
    or (if your project already uses ERRest):
    SESnapshotExplorer.register(routeRequestHandler);
Adding SnapshotExplorer to your Application
    package er.modern.movies.demo;

import er.extensions.appserver.ERXApplication;
import er.extensions.appserver.navigation.ERXNavigationManager;
import er.snapshotexplorer.SESnapshotExplorer;

public class Application extends ERXApplication {
	   public static void main(String[] argv) {
	   	   ERXApplication.main(argv, Application.class);
	   }

	   public Application() {
	   	   ERXApplication.log.info("Welcome to " + name() + " !");
	   	   setDefaultRequestHandler(requestHandlerForKey(directActionRequestHandlerKey()));

	   	   SESnapshotExplorer.register();

	   }

	   @Override
	   public void finishInitialization() {
	   	   super.finishInitialization();

	   	   // Setup main navigation
	   	   ERXNavigationManager.manager().configureNavigation();

	   }
}
DEMO
Q&A
David Avendasora
Senior Software Engineer, K12, Inc.
@avendasora

Contenu connexe

Tendances

CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview Lars Vogel
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action Alex Movila
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino DesignerPaul Withers
 
Log management (elk) for spring boot application
Log management (elk) for spring boot applicationLog management (elk) for spring boot application
Log management (elk) for spring boot applicationVadym Lotar
 
Q4E and Eclipse IAM, Maven integration for Eclipse
Q4E and Eclipse IAM, Maven integration for EclipseQ4E and Eclipse IAM, Maven integration for Eclipse
Q4E and Eclipse IAM, Maven integration for EclipseCarlos Sanchez
 
Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The BasicsPhilip Langer
 
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationIBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationDevelopment Seed
 
Build Fail-Proof Tests in Any Browser with Selenium
Build Fail-Proof Tests in Any Browser with SeleniumBuild Fail-Proof Tests in Any Browser with Selenium
Build Fail-Proof Tests in Any Browser with SeleniumTechWell
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
Primefaces users guide_3_3
Primefaces users guide_3_3Primefaces users guide_3_3
Primefaces users guide_3_3nesrine attia
 
Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Daniel Ibrahim
 
Tech talks (Automation on Selenium Web Driver. How to begin & implement)
Tech talks (Automation on Selenium Web Driver. How to begin & implement)Tech talks (Automation on Selenium Web Driver. How to begin & implement)
Tech talks (Automation on Selenium Web Driver. How to begin & implement)Taras Lytvyn
 
Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learnedrajeevdayal
 

Tendances (20)

Android programming-basics
Android programming-basicsAndroid programming-basics
Android programming-basics
 
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
 
Log management (elk) for spring boot application
Log management (elk) for spring boot applicationLog management (elk) for spring boot application
Log management (elk) for spring boot application
 
Q4E and Eclipse IAM, Maven integration for Eclipse
Q4E and Eclipse IAM, Maven integration for EclipseQ4E and Eclipse IAM, Maven integration for Eclipse
Q4E and Eclipse IAM, Maven integration for Eclipse
 
Play Framework: The Basics
Play Framework: The BasicsPlay Framework: The Basics
Play Framework: The Basics
 
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationIBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Build Fail-Proof Tests in Any Browser with Selenium
Build Fail-Proof Tests in Any Browser with SeleniumBuild Fail-Proof Tests in Any Browser with Selenium
Build Fail-Proof Tests in Any Browser with Selenium
 
Java and XPages
Java and XPagesJava and XPages
Java and XPages
 
Spring Boot Intro
Spring Boot IntroSpring Boot Intro
Spring Boot Intro
 
Migrating Beyond Java 8
Migrating Beyond Java 8Migrating Beyond Java 8
Migrating Beyond Java 8
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
Primefaces users guide_3_3
Primefaces users guide_3_3Primefaces users guide_3_3
Primefaces users guide_3_3
 
Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5
 
Tech talks (Automation on Selenium Web Driver. How to begin & implement)
Tech talks (Automation on Selenium Web Driver. How to begin & implement)Tech talks (Automation on Selenium Web Driver. How to begin & implement)
Tech talks (Automation on Selenium Web Driver. How to begin & implement)
 
Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learned
 
Spring boot
Spring bootSpring boot
Spring boot
 

Similaire à WebObjects Developer Tools

Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.WO Community
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUlrich Krause
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Pei-Hsuan Hsieh
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angularBasarat Syed
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Robert Scholte
 
Manage your external libraries with CocoaPods
Manage your external libraries with CocoaPodsManage your external libraries with CocoaPods
Manage your external libraries with CocoaPodsJuan C Catalan
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the BasicsUlrich Krause
 
Plone FSR
Plone FSRPlone FSR
Plone FSRfulv
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO DevsWO Community
 
Unlocking the power of the APEX Plugin Architecture
Unlocking the power of the APEX Plugin ArchitectureUnlocking the power of the APEX Plugin Architecture
Unlocking the power of the APEX Plugin ArchitectureMatt Nolan
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_ContainersGrace Jansen
 
JLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersJLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersGrace Jansen
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the BasicsUlrich Krause
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPagesUlrich Krause
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGMarakana Inc.
 
Getting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperGetting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperFabrit Global
 

Similaire à WebObjects Developer Tools (20)

Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
 
Microservices in Java
Microservices in JavaMicroservices in Java
Microservices in Java
 
Protractor survival guide
Protractor survival guideProtractor survival guide
Protractor survival guide
 
Manage your external libraries with CocoaPods
Manage your external libraries with CocoaPodsManage your external libraries with CocoaPods
Manage your external libraries with CocoaPods
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
 
Apache Cayenne for WO Devs
Apache Cayenne for WO DevsApache Cayenne for WO Devs
Apache Cayenne for WO Devs
 
Unlocking the power of the APEX Plugin Architecture
Unlocking the power of the APEX Plugin ArchitectureUnlocking the power of the APEX Plugin Architecture
Unlocking the power of the APEX Plugin Architecture
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_Containers
 
JLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containersJLove - Replicating production on your laptop using the magic of containers
JLove - Replicating production on your laptop using the magic of containers
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
 
Getting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperGetting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular Developer
 

Plus de WO Community

In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engineWO Community
 
Using Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsUsing Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsWO Community
 
Build and deployment
Build and deploymentBuild and deployment
Build and deploymentWO Community
 
Reenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSReenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSWO Community
 
Chaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldChaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldWO Community
 
D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful ControllersWO Community
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on WindowsWO Community
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnitWO Community
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache CayenneWO Community
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to WonderWO Community
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative versionWO Community
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" patternWO Community
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W WO Community
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languagesWO Community
 

Plus de WO Community (20)

KAAccessControl
KAAccessControlKAAccessControl
KAAccessControl
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engine
 
Using Nagios to monitor your WO systems
Using Nagios to monitor your WO systemsUsing Nagios to monitor your WO systems
Using Nagios to monitor your WO systems
 
Build and deployment
Build and deploymentBuild and deployment
Build and deployment
 
High availability
High availabilityHigh availability
High availability
 
Reenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWSReenabling SOAP using ERJaxWS
Reenabling SOAP using ERJaxWS
 
Chaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real WorldChaining the Beast - Testing Wonder Applications in the Real World
Chaining the Beast - Testing Wonder Applications in the Real World
 
D2W Stateful Controllers
D2W Stateful ControllersD2W Stateful Controllers
D2W Stateful Controllers
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
 
Unit Testing with WOUnit
Unit Testing with WOUnitUnit Testing with WOUnit
Unit Testing with WOUnit
 
Life outside WO
Life outside WOLife outside WO
Life outside WO
 
Advanced Apache Cayenne
Advanced Apache CayenneAdvanced Apache Cayenne
Advanced Apache Cayenne
 
Migrating existing Projects to Wonder
Migrating existing Projects to WonderMigrating existing Projects to Wonder
Migrating existing Projects to Wonder
 
iOS for ERREST - alternative version
iOS for ERREST - alternative versioniOS for ERREST - alternative version
iOS for ERREST - alternative version
 
iOS for ERREST
iOS for ERRESTiOS for ERREST
iOS for ERREST
 
"Framework Principal" pattern
"Framework Principal" pattern"Framework Principal" pattern
"Framework Principal" pattern
 
Filtering data with D2W
Filtering data with D2W Filtering data with D2W
Filtering data with D2W
 
WOver
WOverWOver
WOver
 
Localizing your apps for multibyte languages
Localizing your apps for multibyte languagesLocalizing your apps for multibyte languages
Localizing your apps for multibyte languages
 
WOdka
WOdkaWOdka
WOdka
 

Dernier

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Dernier (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

WebObjects Developer Tools

  • 1. Developer Tools David Avendasora Senior Software Engineer, K12, Inc. @avendasora
  • 2. Topics • Available Versions of WOLips • What’s New in WOLips • Linking to WebObjects Javadoc • Decompiling • ERProfiling • SnapshotExplorer
  • 3. Available Versions • WOLips 3.4 • Update Site: http://webobjects.mdimension.com/hudson/job/ WOLips34Stable/lastSuccessfulBuild/artifact/site/ • Eclipse 3.4.2 Carbon Only • Previously known as “WOLips Stable” • Maclipse Compatible http://webobjects.mdimension.com/wolips/support/preview/ • It has known Bugs • NO fixes/updates!
  • 4. Available Versions • WOLips 3.5 • Update Site: http://webobjects.mdimension.com/hudson/job/ WOLips35Stable/lastSuccessfulBuild/artifact/site/ • Eclipse 3.5 Cocoa or Carbon • Maclipse Compatible (Cocoa only) http://webobjects.mdimension.com/maclipse/ • Eclipse Cocoa is slow
  • 5. Available Versions • WOLips 3.6 • Update Site: http://webobjects.mdimension.com/hudson/job/ WOLips36Current/lastSuccessfulBuild/artifact/site/ • Eclipse 3.6 (surprise!) Carbon/Cocoa • Where all the new features are added and bugs fixed • Fast(er) Cocoa • What all the cool devs use (experimental) • No Maclipse (yet?) :-(
  • 6. What’s new in WOLips 3.6? Plugins • Removed Maven 1 and Apple Maven Support • Reorganized Plugin Install Options • Updated JRebel plugin to work with JRebel 3
  • 7. What’s new in WOLips 3.6? Plugins
  • 8. What’s new in WOLips 3.6? Plugins • Removed Maven 1 and Apple Maven Support • Reorganized Plugin Install Options • Updated JRebel plugin to work with JRebel 3
  • 9. What’s new in WOLips 3.6? Preferences • New UI for wolips.properties that allows you to edit the values directly in the WOLips preference pane • WOLips validation preference pane now uses popups for severity levels
  • 10. What’s new in WOLips 3.6? Preferences
  • 11. What’s new in WOLips 3.6? Preferences • New UI for wolips.properties that allows you to edit the values directly in the WOLips preference pane • WOLips validation preference pane now uses popups for severity levels
  • 12. What’s new in WOLips 3.6? Preferences
  • 13. What’s new in WOLips 3.6? Building • Bundle-less Builds - no more build directory that WOLips has to keep in sync with project. Requires ERJars (r11001 or later) • New Wonder EOGenerator templates
  • 14. What’s new in WOLips 3.6? Building
  • 15. What’s new in WOLips 3.6? Building • Bundle-less Builds - no more build directory that WOLips has to keep in sync with project. Requires ERJars (r11001 or later) • New Wonder EOGenerator templates
  • 16. What’s new in WOLips 3.6? Modeling • Entity Modeler now opens in a new window by default • Cmd-Shift-V allows you to type an entity name and Entity Modeler will open the right EOModel and select the requested entity (entity name, not class name) • Double-Clicking an EOModel in the finder can open it in WOLips
  • 17. What’s new in WOLips 3.6? Modeling
  • 18. What’s new in WOLips 3.6? Modeling • Entity Modeler now opens in a new window by default • Cmd-Shift-V allows you to type an entity name and Entity Modeler will open the right EOModel and select the requested entity (entity name, not class name) • Double-Clicking an EOModel in the finder can open it in WOLips
  • 19. What’s new in WOLips 3.6? Summary WOLips 3.6 is an evolution, not a revolution • Many things are refined, work smother, made easier
  • 20. Linking to WebObjects Javadoc • Use Xcode 3.2 to install the Mac OS X Legacy Library docset (847 MB) in the Preferences > Documentation tab • In WOLips preference pane, set WebObjects Javadoc to: /Library/Developer/Shared/Documentation/DocSets/ com.apple.adc.documentation.AppleLegacy.CoreReference.docset/Contents/Resources/ Documents/documentation/InternetWeb/Reference/WO542Reference/ (this directory is in a package, so you can’t just browse to it.) • Restart Eclipse
  • 22. Linking to WebObjects Javadoc • Use Xcode 3.2 to install the Mac OS X Legacy Library docset (847 MB) in the Preferences > Documentation tab • In WOLips preference pane, set WebObjects Javadoc to: /Library/Developer/Shared/Documentation/DocSets/ com.apple.adc.documentation.AppleLegacy.CoreReference.docset/Contents/Resources/ Documents/documentation/InternetWeb/Reference/WO542Reference/ (this directory is in a package, so you can’t just browse to it.) • Restart Eclipse
  • 24. Linking to WebObjects Javadoc • Use Xcode 3.2 to install the Mac OS X Legacy Library docset (847 MB) in the Preferences > Documentation tab • In WOLips preference pane, set WebObjects Javadoc to: /Library/Developer/Shared/Documentation/DocSets/ com.apple.adc.documentation.AppleLegacy.CoreReference.docset/Contents/Resources/ Documents/documentation/InternetWeb/Reference/WO542Reference/ (this directory is in a package, so you can’t just browse to it.) • Restart Eclipse
  • 26. Decompiling on-the-fly in Eclipse • Sometimes Javadoc just isn’t enough.You want to know what’s really going on behind the curtain... • Java Decompiler (JD): http://java.decompiler.free.fr/ • JD-Eclipse is a plug-in for Eclipse. It allows you to display the source code of “.class” files during development and debugging. • Follow JD-Eclipse install instructions for Eclipse 3.2, 3.3 & 3.5 here: http://java.decompiler.free.fr/?q=jdeclipse • Intel Only
  • 28. Decompiling on-the-fly in Eclipse • Sometimes Javadoc just isn’t enough.You want to know what’s really going on behind the curtain... • Java Decompiler (JD): http://java.decompiler.free.fr/ • JD-Eclipse is a plug-in for Eclipse. It allows you to display the source code of “.class” files during development and debugging. • Follow JD-Eclipse install instructions for Eclipse 3.2, 3.3 & 3.5 here: http://java.decompiler.free.fr/?q=jdeclipse • Intel Only
  • 30. In-Browser Tools Extending development beyond Eclipse/WOLips UI • DirectToWeb Panel - helps debug D2W apps by providing controls for rules, logging, localization, CSS, etc. • ERProfiling - helps you understand how your app is functioning, what parts of a page are slow and why. • SnapshotExplorer - allows you to browse the snapshots in your application’s EODatabases • ClickToOpen - helps you figure out what components render what parts of a page and how they interact with each other
  • 31. ERProfiling What is it? • Designed around WebObjects • Page-based approach to profiling your app. • Allows you to look at the statistics for individual pages and actions • Helps you understand why pages and actions perform the way they do.
  • 32. ERProfiling Adding it to your project • Add ERProfiling.framework to your app • Add the javaagent setting to the VM args section of your launch config: • Wonder source: -javaagent:${workspace_loc:ERProfiling}/ Libraries/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin • Wonder binaries: -javaagent:/path/to/ERProfiling.framework/ Resources/Java/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin • Run/Debug your app
  • 34. ERProfiling • Add ERProfiling.framework to your app • Add the javaagent setting to the VM args section of your launch config: • Wonder source: -javaagent:${workspace_loc:ERProfiling}/ Libraries/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin • Wonder binaries: -javaagent:/path/to/ERProfiling.framework/ Resources/Java/gluonj-1.5beta.jar=er.profiling.PFProfilerMixin • Run/Debug your app
  • 35. SnapshotExplorer What is it? • NOT the “FreshnessExplorer” demoed by Mark last year - no matter how many times I’ve misspoken in the last 10 minutes • Allows you to look over EOF’s shoulder and see what it sees compared to what the UI or Database show • Runs only in Development
  • 36. SnapshotExplorer Adding it to your project • Add the following Wonder frameworks to your Build Path: ➡ SnapshotExplorer ➡ Ajax ➡ ERRest ➡ WOOgnl • Add the following line to your Application() constructor: SESnapshotExplorer.register(); or (if your project already uses ERRest): SESnapshotExplorer.register(routeRequestHandler);
  • 37. Adding SnapshotExplorer to your Application package er.modern.movies.demo; import er.extensions.appserver.ERXApplication; import er.extensions.appserver.navigation.ERXNavigationManager; import er.snapshotexplorer.SESnapshotExplorer; public class Application extends ERXApplication { public static void main(String[] argv) { ERXApplication.main(argv, Application.class); } public Application() { ERXApplication.log.info("Welcome to " + name() + " !"); setDefaultRequestHandler(requestHandlerForKey(directActionRequestHandlerKey())); SESnapshotExplorer.register(); } @Override public void finishInitialization() { super.finishInitialization(); // Setup main navigation ERXNavigationManager.manager().configureNavigation(); } }
  • 38. DEMO
  • 39. Q&A David Avendasora Senior Software Engineer, K12, Inc. @avendasora