Sunday, December 14, 2008

This Week in Wonder

Ajax
AjaxModalDialogOpener lets you separate the opening of a modal dialog from the dialog itself.

Updated to Scriptaculous 1.8.2

AjaxSortOrder is an ajax version of ERXSortOrder.

Components
Support for quicktime attachments in ERAttachment.

ERXSimpleSpamCheck is an implementation of Hugi's simple spam blocker, which will cause forms to fail validation unless a particular block of javascript has been executed by the client.

EOF
Wonder Migrations can now be used without using ERXEC.

New, better, implementation of SQL parsing (for executing SQL scripts).

Migrations now support SQLServer (well, more than they did).

New Frameworks
WOJavaRebel framework provides support for easily running WO apps with JavaRebel for modifying classes on-the-fly without restarting.

Utilities
New warnings when you are possibly misusing ERXThreadStorage.

ERXEOControlUtilities. validateUniquenessOf provides a utility method for validating unique EO attribute values.

Application
You can now set a low memory threshold separate from a memory starvation threshold, and both now fire notifications that you can respond to.

Support for making ERXResourceManager generate complete resource URLs by setting context. _setGenerateCompleteResourceURLs.

Simple resource rewriting -- Set er.extensions.ERXResponseRewriter.resource.frameworkName.filePath = newFrameworkName.newFilePath

Support for forcing the removal of instance numbers from context urls via the er.extensions.ERXWOContext.forceRemoveApplicationNumber property. You should only use this if you know what you're doing, as this can't always be used in WO.

Support for SSL with DirectConnect. Here's the pertinent docs from Properties:
#########################################################################
# SSL DirectConnect
#########################################################################
## You should probably not enable any of these settings in a normal Apache webserver deployment,
## in particular the ssl port property, as this is used by ERX to generate https URLs, which must
## match your Apache config.
##
## To enable SSL support with DirectConnect, you must do the following:
##
## * In your Resources folder, run "keytool -genkey -alias WebObjects -keyalg RSA -keystore adaptorssl.key". Select a
## password for your keystore (i.e. "changeit"), and set the "your first name and last name" field to match the hostname
## that you will be running your directconnect app off of.
## * In your Resources folder, create an executable script (it MUST BE EXECUTABLE) named "adaptorsslpassphrase" with the
## contents:
## echo changeit
## where you should replace "changeit" for whatever password you selected in the previous step.
## * Set the following property to true
#er.extensions.ERXApplication.ssl.enabled=true

## (optional) To specify an SSL host name other than what is returned from a call to
## application.host(), you can override it below
#er.extensions.ERXApplication.ssl.host=localhost

## (optional) To select an SSL port other than 443, uncomment the following. If you are already running Apache with SSL,
## you probably want to set this. If the port number is 0, the SSL port will be automatically assigned (using the same
## mechanism that WO uses to set the regular port)
#er.extensions.ERXApplication.ssl.port=0

OGNL
New click-to-debug feature. When ognl.debugSupport=true, the WOLips Toolbar has a new Click to Debug option that will turn on binding debug information for any component that you click on. This is really useful if you're trying to track down a rogue binding.

2 comments:

  1. Wow, thanks a heap for writing this up...

    ReplyDelete
  2. Jan 27 10:13:40 App[54918] WARN NSLog - Unable to read ssl passphrase.
    Jan 27 10:13:40 App[54918] WARN NSLog - Application project found: Will locate resources in 'C:\Users\RONX\WO_workspace\App\build\LSRest.woa' rather than '/C:/Users/RONX/WO_workspace/App/build/App.woa' .
    Jan 27 10:13:40 App[54918] WARN NSLog - Application project found: Will locate resources in 'C:\Users\RONX\WO_workspace\App\build\App.woa' rather than '/C:/Users/RONX/WO_workspace/App/build/App.woa' .
    Jan 27 10:13:40 App[54918] WARN NSLog - Unable to establish an SSL connection to port 666 on this host. Perhaps this port is already in use by another WebObjects application instance.
    Jan 27 10:13:40 App[54918] WARN NSLog - : Cannot be initialized.java.lang.reflect.InvocationTargetException
    Jan 27 10:13:40 App[54918] WARN NSLog - A fatal exception occurred: : Cannot be initialized.
    [2012-1-27 10:13:40 VET] com.webobjects.foundation.NSForwardException [java.lang.reflect.InvocationTargetException] null:: Cannot be initialized.
    at com.webobjects.appserver.WOApplication.(WOApplication.java:918)
    at er.extensions.appserver.ajax.ERXAjaxApplication.(ERXAjaxApplication.java:24)
    at er.extensions.appserver.ERXApplication.(ERXApplication.java:1037)
    at com.legalsounds.Application.(Application.java:14)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at com.webobjects.appserver.WOApplication.main(WOApplication.java:547)
    at er.extensions.appserver.ERXApplication.main(ERXApplication.java:821)
    at com.legalsounds.Application.main(Application.java:11)
    Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.webobjects.foundation._NSUtilities.instantiateObject(_NSUtilities.java:614)
    at com.webobjects.appserver.WOApplication.adaptorWithName(WOApplication.java:1316)
    at com.webobjects.appserver.WOApplication._initAdaptors(WOApplication.java:1392)
    at com.webobjects.appserver.WOApplication.(WOApplication.java:802)
    ... 12 more
    Caused by: com.webobjects.foundation.NSForwardException [java.io.IOException] Keystore was tampered with, or password was incorrect:java.io.IOException: Keystore was tampered with, or password was incorrect
    at com.webobjects.foundation.NSForwardException._runtimeExceptionForThrowable(NSForwardException.java:41)
    at com.webobjects.appserver._private.WOClassicAdaptor._initServerSocket(WOClassicAdaptor.java:215)
    at com.webobjects.appserver._private.WOClassicAdaptor.(WOClassicAdaptor.java:163)
    at com.webobjects.appserver._private.WODefaultAdaptor.(WODefaultAdaptor.java:22)
    at er.extensions.appserver.ERXDefaultAdaptor.(ERXDefaultAdaptor.java:31)
    at er.extensions.appserver.ERXSecureDefaultAdaptor.(ERXSecureDefaultAdaptor.java:29)
    ... 20 more
    Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
    at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
    at java.security.KeyStore.load(Unknown Source)
    at com.webobjects.appserver._private.WOClassicAdaptor._initServerSocket(WOClassicAdaptor.java:202)
    ... 24 more
    Caused by: java.security.UnrecoverableKeyException: Password verification failed
    ... 28 more

    ReplyDelete