SlideShare a Scribd company logo
1 of 39
Download to read offline
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

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

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