ozoneplatform / owf-framework Goto Github PK
View Code? Open in Web Editor NEWOZONE Widget Framework
Home Page: http://ozoneplatform.org
License: Apache License 2.0
OZONE Widget Framework
Home Page: http://ozoneplatform.org
License: Apache License 2.0
The class Ozone.state.WidgetState allows you to add state event listeners for a plethora of state events - but everything is tied to a widget's instanceId. There needs to be an API where you can provide a widgetGuid and receive callback when an instance of a widget with that widgetGuid is created. The callback should pass a state object with the same properties that Ozone.state.WidgetState.getWidgetState.cfg.callback provides. The callback should be called anytime a widget with that widgetGuid is created - regardless of whether it's caused by the user using the Launcher to create a new instance of that widget or whether the user just logged in and OWF is restoring his dashboard to how it was when he last logged out.
OWF already has the option to lock a dashboard to a limited set of widgets. We need the opposite: an option to allow any widgets to be opened, but lock the LAYOUT of a dashboard.
As described in the Google Group (at https://groups.google.com/forum/#!topic/ozone-developers/gH7qd19eLyc as well as previous threads from other folks), we're looking for an option to name dashboard regions, and then launch a new widget into a specific region.
I'm looking to set the banner to "CLASSIFIED" as opposed to "UNCLASSIFIED". I'm setting the value within the JBlocksConfig.xml and it looks like this:
property name="configMessage" value="UNCLASSIFIED//FOUO">
This produces a green banner. I would like to produce a red classified banner.
Can you please tell me what are the different accepted values in the property tag above?
Thanks,
Adam
When editing a widget, it is possible to cause an error in OWF if you edit it to be a singleton while there are multiple instances of a widget open in a dashboard. There should probably be some logic to verify that the widget in question is not already present multiple times in a dashboard
To recreate (steps courtesy of Neil Castine):
Images served from
/owf/images
are mapped by /images in UrlMappings and get routed to getImageURL(). This method cannot seem to locate the image file from a theme located in the external classpath location. This is likely happening because the resource lookup used in ThemeService.getImageURL() is failing in some cases.
Quick test: move a bundled theme out to the external classpath location, default is tomcat/lib/themes, replace the images/brand-logo.png with some other image, and test by loading the About popup in OWF. The about.jsp page loads the image using a straight IMG request rooted at /owf/images and should fail to load the image. Move theme back under internal webapps/owf/themes are to see it succeed.
Known workarounds:
When trying to build, lib/compressjs I get a taskdef class owf.ant.YUICompressTask cannot be found
error. After investigation...
OWFAntTasks-1.0.0.zip never gets added to the classpath as it isn't a .jar.
OWFAntTasks-1.0.0.zip isn't a jar, it contains an extra top-level folder OWFAntTasks-1.0.0.
After making a proper jar by hand with it, i end up with this build failure:
BUILD FAILED
/Users/ruckc/Documents/workspace/owf-framework/build.xml:61: taskdef A class needed by class owf.ant.YUICompressTask cannot be found: org/mozilla/javascript/ErrorReporter
using the classloader AntClassLoader[/Users/ruckc/Documents/workspace/owf-framework/lib/compressjs/OWFAntTasks-1.0.0.jar:/Users/ruckc/Documents/workspace/owf-framework/lib/compressjs/yuicompressor-2.4.2.jar]
After adding another fileset, with ${work.dir}/jsdoc/js-1.7R1.jar to the compressor.classpath I'm able to get past -init.
See tinaColemanNextCentury/owf-wiki@d1d1f95 - clarification of where to put JVM PermGen configuration information.
Steps to replicate:
OWF.getWidgetGuid() returns a string that will be the same for all instances of that widget. OWF.getInstanceId() returns a string that is unique for every new widget instantiated (though shared between OWF browser sessions if user leaves widgets open on his dashboard).
There are several places in the API where they reference a widgetGuid but are really talking about an instanceId. e.g. OWF-help-7-GA.zip /help/jsdoc/symbols/Ozone.state.WidgetState.html#addStateEventListeners describes a cfg object with property: guid. The description uses Id as well as widget guid. Confusing - the property name and description should clearly indicate that it's a widget's instanceId (not the widgetGuid) that's being referred to. The same problem exists on: Ozone.state.WidgetState.html#getWidgetState his cfg object has a property: guid with a description that refers to both Id and widget guid - the description and property should clearly reference instanceId. cfg.callback passes a state object with property: uniqueId (should be instanceId).
Reported in this Google Group thread.
When using version 30 of the Chrome browser widgets running on a different server (or port) than OWF trigger the following error on initialization:
Uncaught Widget relay init failed. Relaying will not work. Inner Exception: WidgetInitException: The call to container_init failed. Inner Exception: SecurityError: Blocked a frame with origin "https://some_servername_and_port" from accessing a frame with origin "https://some_other_servername_or_port". Protocols, domains, and ports must match. owf-widget-debug.js:17264
Ozone.eventing.Widget owf-widget-debug.js:17264
Ozone.eventing.Widget.getInstance owf-widget-debug.js:17620
OWF._init owf-widget-debug.js:20945
(anonymous function) owf-widget-debug.js:23202
dojo.loaded owf-widget-debug.js:712
dojo._callLoaded owf-widget-debug.js:818
dojo._modulesLoaded owf-widget-debug.js:801
dojo._loadInit owf-widget-debug.js:1720
The Configuration Guide speaks to running from a new port, but not from running from something other than localhost. See tinaColemanNextCentury/owf-wiki@80fe9e9
As an aside, attempting to contribute via guidance on http://fusiongrokker.com/post/how-you-can-contribute-to-taffy-documentation, as vetted by gollum team at gollum/gollum#265.
When starting OWF 7 with JDK 1.7 using the start.bat command, after logging into the application, one can see many error messages related to NoSuchFieldException are generated.
A workaround solution is to use JDK 1.6.
Minor typo fix in help system documentation:
See tinaColemanNextCentury/owf-wiki@f139a24 - typo fix in help system documentation
OWF 7 and future:
We would like to have a default group dashboards for specific URLs, such that
https://first.url.com points to Group Dashboard #1
https://second.url.com points to Group Dashboard #2
We have multiple different groups of users and each of them have their own default group dashboards. We would like to provide them each with a their own URL so that they can get to their default dashboard and not to the last saved dashboard. Also, due to large number of users involved, we would like to have this feature available so that launching the dashboard is simple and doesn't involve switching dashboards.
Thanks,
With OWF 7.0 I've been seeing the following error in the log. It seems to come up when the lorem ipsum banner loads.
I've seen it on RHEL and Ubuntu--
I haven't noticed any loss of functionality.
2013-10-28 16:23:14,592 [main] INFO org.apache.catalina.startup.Catalina- Server startup in 23691 ms
Unable to use direct char[] access of java.lang.String
java.lang.NoSuchFieldException: count
at java.lang.Class.getDeclaredField(Class.java:1948)
at org.codehaus.groovy.grails.web.util.StringCharArrayAccessor.<clinit>(StringCharArrayAccessor.java:53)
at org.codehaus.groovy.grails.web.util.StreamCharBuffer.readAsString(StreamCharBuffer.java:531)
at org.codehaus.groovy.grails.web.util.StreamCharBuffer.toString(StreamCharBuffer.java:552)
at org.codehaus.groovy.grails.web.pages.FastStringWriter.getValue(FastStringWriter.java:59)
at org.codehaus.groovy.grails.web.pages.FastStringWriter.toString(FastStringWriter.java:55)
at org.codehaus.groovy.grails.web.pages.GroovyPagesUriSupport.getViewURIInternal(GroovyPagesUriSupport.java:192)
at org.codehaus.groovy.grails.web.pages.GroovyPagesUriSupport.getNoSuffixViewURI(GroovyPagesUriSupport.java:153)
at org.codehaus.groovy.grails.web.pages.DefaultGroovyPagesUriService.getNoSuffixViewURI(DefaultGroovyPagesUriService.java:159)
at org.codehaus.groovy.grails.web.pages.DefaultGroovyPagesUriService.getNoSuffixViewURI(DefaultGroovyPagesUriService.java:148)
at org.codehaus.groovy.grails.web.servlet.DefaultGrailsApplicationAttributes.getNoSuffixViewURI(DefaultGrailsApplicationAttributes.java:239)
at org.codehaus.groovy.grails.web.metaclass.RenderDynamicMethod.renderView(RenderDynamicMethod.java:365)
at org.codehaus.groovy.grails.web.metaclass.RenderDynamicMethod.invoke(RenderDynamicMethod.java:185)
at sun.reflect.GeneratedMethodAccessor233.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
When a background widget calls the OWF.Launcher.launch
function an exception occurs in the launchWidgetInstance
function of js/components/dashboardDashboard.js. Ext.getCmp(sender.id)
returns null
for a background widget so attempt to access pane
property fails and script stops execution.
Issue was discovered when investigating a question from the ozoneplatform-users Google Group.
When following the 7.16 help bundle installation, the documentation states:
- Create the schema by running the \dbscript\PostgreSQLPrefsInitialCreate.sql script before starting OWF.
- If OWF is being installed as a production environment, this can serve as the final step. However, if sample data is required (e.g., creating a testing environment), the remaining steps can be followed.
Then, when attempting to add an App Component to the "OWF Administrators" group, we end up with this stacktrace:
2015-07-13 18:15:20,277 ERROR [grails.app.controllers.ozone.owf.grails.controllers.BaseOwfRestController] (http-ozone7/10.0.1.66:8443-2) java.lang.NullPointerException: Cannot get property 'people' on null object: java.lang.NullPointerException: Cannot get property 'people' on null object
at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56) [groovy-all-2.1.9.jar:2.1.9]
at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) [groovy-all-2.1.9.jar:2.1.9]
at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) [groovy-all-2.1.9.jar:2.1.9]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227) [groovy-all-2.1.9.jar:2.1.9]
at ozone.owf.grails.domain.Group.syncPeople(Group.groovy:94) [owf-all.jar:]
at ozone.owf.grails.domain.Group$syncPeople$8.call(Unknown Source)
at ozone.owf.grails.services.WidgetDefinitionService$_updateWidget_closure17.doCall(WidgetDefinitionService.groovy:569) [owf-all.jar:]
After looking at the source domain/.../Group.groovy:94 I come to the conclusion that the ADMINS role was not created.
Looking in the PostgreSQLPrefsUpdate_v7.16.0.sql it creates the roles:
INSERT INTO role (authority, description, id, version) VALUES ('ROLE_USER', 'User Role', 26, 2);
INSERT INTO role (authority, description, id, version) VALUES ('ROLE_ADMIN', 'Admin Role', 27, 1);
After manually creating the roles, in psql, I no longer get the NullPointerException, but when you add an App Component to a group, it doesn't show up consistently to all members of the group.
So, what is the relationship between roles and groups? Is there anything else in the PrefsUpdate that is necessary?
I'm getting the following error when I run create-web-bundles.bat in 7.16. Based on the ozone-developers Google group, it looks like it is an existing problem that hasn't been fixed.
Ref: ozone-developers Google group discussion
https://groups.google.com/d/msg/ozone-developers/Aoo5hEwNBBw/-aCMy_GA26QJ
[exec] applying version 7.16.0-309137346
[exec] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/BuildLogger
[exec] at java.lang.Class.getDeclaredConstructors0(Native Method)
[exec] at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
[exec] at java.lang.Class.getDeclaredConstructors(Unknown Source)
[exec] at org.codehaus.groovy.reflection.CachedClass$2$1.run(CachedClass.java:69)
[exec] at java.security.AccessController.doPrivileged(Native Method)
[exec] at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:66)
[exec] at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:64)
[exec] at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
[exec] at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
[exec] at org.codehaus.groovy.reflection.CachedClass.getConstructors(CachedClass.java:258)
[exec] at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:190)
[exec] at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:194)
[exec] at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createNormalMetaClass(MetaClassRegistry.java:158)
[exec] at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:148)
[exec] at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:131)
[exec] at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:175)
[exec] at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:192)
[exec] at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:255)
[exec] at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:806)
[exec] at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallConstructorSite(CallSiteArray.java:84)
[exec] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
[exec] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
[exec] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
[exec] at com.studentsonly.grails.plugins.uiperformance.util.CreateWebBundles$__clinit__closure3.doCall(CreateWebBundles.
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[exec] at java.lang.reflect.Method.invoke(Unknown Source)
[exec] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
[exec] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
[exec] at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
[exec] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:910)
[exec] at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:848)
[exec] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:831)
[exec] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:164)
[exec] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeClosure(ScriptBytecodeAdapter.java:570)
[exec] at com.studentsonly.grails.plugins.uiperformance.util.CreateWebBundles.main(CreateWebBundles.groovy:105)
[exec] Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.BuildLogger
[exec] at java.net.URLClassLoader.findClass(Unknown Source)
[exec] at java.lang.ClassLoader.loadClass(Unknown Source)
[exec] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[exec] at java.lang.ClassLoader.loadClass(Unknown Source)
[exec] ... 37 more
[exec] 1 dir(s) moved.
For every widget window, there's a duplicate minimize/maximize/close entry at the bottom, mimicking traditional desktop trays. However, it doesn't behave like them, and it doesn't appear to serve any additional purpose. It just kind of looks vaguely like a desktop tray. The vaguely desktopish look and feel ends about here, as double clicking on a titlebar does not maximize/restore a widget, but attemps to rename it.
Clicking on a tray bar's minimize button has no effect on a currently minimized widget (the expected behavior is for the minimize button to toggle this state). Neither do the tray maximize buttons toggle. They mostly just take up space better filled with widget content. If nothing else, they should be disabled and visibly grayed while they have no effect.
Hello Experts,
I am so new to OWF. I installed OWF with localhost option and connect to database, it worked fine. But after changing the localhost to servername (generated server certs and user cert by following the instruction). I was able to login to servername:8443/owf/ by testAdmin1/password but OWF ToolBar wont show up any more! Please Help
Thanks so much
If you make a change to plugins/Pane.js you shouldn't have to modify all of the plugins that extend it.
RPC client widget will encounter an exception when attempting to call a function that was registered by a background widget. Making the background widget a normal widget and refreshing the browser allows the call to succeed.
Potentially related issue: OWF.getOpenedWidgets() does not return background widgets.
To reproduce:
The certificates shipped with OWF7, pre-bundled, have expired. New certs have already been generated and are available - just need to be included in the distribution. See issue #10 for links to certs. Thanks to Steve Goodman for catching this on the ozoneplatform-users group today.
Every person who I have seen launch a widget in a desktop with multiple panes does not understand that they are supposed to click on a pane to launch the widget.
As reported on the ozoneplatform-users group, the sample certs and keystore shipped with OWF6 and OWF7 expired, as of 2/3/2013.
Steps:
You should able to add and remove widgets to an admin user through the Admin group directly without having to add the user to the group.
I'm trying to get a development version of ozone working behind our reverse proxy.
Basically, the externally facing Apache instance handles PKI authentication and then passes an HTTP header back such as REMOTE_USER.
[User] ---------HTTPS--------->[Proxy]---------------HTTP--------------->[Ozone]
└--PKI-CERT--┘ └--REMOTE_USER--┘
For this to work, ozone should not be running with SSL, since the traffic is running with SSL from the externally facing machine to the user. It looks as though running Ozone with HTTP (non-SSL) is unsupported, although I think this would be the preferred method when running with any single sign on scenario.
How can I run ozone without SSL and are there any default security profiles for getting the authentication info from a header?
After cloning the repo I cd'ed into the owf directory and ran "ant". Immediately the build failed.
$ git clone https://github.com/ozoneplatform/owf
$ cd owf
$ ant -version
Apache Ant(TM) version 1.8.4 compiled on September 18 2012
$ ant
Buildfile: /data/src/opensource/owf/build.xml
[taskdef] Could not load definitions from resource net/sf/antcontrib/antlib.xml. It could not be found.
_init-ivy:
[taskdef] Could not load definitions from resource net/sf/antcontrib/antlib.xml. It could not be found.
BUILD FAILED
/data/src/opensource/owf/build.xml:29: The following error occurred while executing this line:
Target "init-ivy" does not exist in the project "owf-server".
Total time: 0 seconds
$
If I alter a user's group membership outside of OWF (like LDAP), the membership change is detected and made by SecurityFilters. Meaning, if I go into the "Users" widget and look at the user's groups, they are correct, but the user does not get the widgets associated with a newly added group or lose them when a group is removed from the user.
This is because there are no person_widget_definition records created for the user. If I manually remove any group through the OWF admin UI, and re-add it, the widgets show up. I compared the person_widget_definition table before and after doing this, and the person_widget_definition records aren't there before, and they get added after I remove and re-add the group. Records seem to be added for all widgets, not just those associated with the group I modified.
My company is looking into using OWF in a secure production environment. Looking at the instructions that are located in section 3 for using Oracle at https://github.com/ozoneplatform/owf/wiki/OWF-7-Configuration-Installation, the password appears as clear text. Is there a way to encrypt the database password?
When OWF attempts to open a theme that does not exist an exception similar to the following is logged:
ERROR [org.codehaus.groovy.grails.web.servlet.view.GroovyPageView] Error processing GroovyPageView: Cannot invoke method exists() on null object
java.lang.NullPointerException: Cannot invoke method exists() on null object
at ozone.owf.grails.services.ThemeService.getTheme(ThemeService.groovy:67)
at ozone.owf.grails.services.ThemeService$getTheme.callCurrent(Unknown Source)
at ozone.owf.grails.services.ThemeService.getCurrentTheme(ThemeService.groovy:85)
at ozone.owf.grails.services.ThemeService$$FastClassByCGLIB$$2e630feb.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
...
As the stack trace notes the origin of the problem is the following section in ThemeService.groovy:
if (!(themeName && resource.exists()))
throw new OwfException(message: "Cannot find the requested CSS theme: ${themeName}", exceptionType: OwfExceptionTypes.GeneralServerError)
Adding the ?
operator before the call to the exists()
method will allow the check to throw the cleaner Cannot find the requested CSS theme
as intended.
When using PostgreSQLPrefsInitialCreate.sql
, the hibernate_sequence starts at 1. When it loads the default app components for the administration app, they have hardcoded 186-195 identifiers. Whenever hibernate_sequence overlaps those, the objects will fail to create with hibernate primary key collision errors.
I locally fixed my postgresql script by changing the hardcoded id's to nextval('hiberate_sequence')
I don't have the exact root cause on this, but here's as much info as I can provide:
Extra Notes:
[1] This garbage data tends to look similar to this: [Ljava.lang.String;@6661b6c
[2] To an informed dev, this will show a "Trying to decode an invalid JSON string" error in Console
Java Stack trace:
2013-07-29 16:45:58,182 ERROR [org.codehaus.groovy.grails.orm.hibernate.events.PatchedDefaultFlushEventListener] Could not synchronize database state with session org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ozone.owf.grails.person.Person#8]
at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
2013-07-29 16:45:58,346 ERROR [grails.app.filters.ozone.owf.grails.filters.SecurityFilters] Object of class [ozone.owf.grails.domain.Person] with identifier [8]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [ozone.owf.grails.domain.Person#8
This is due to launchWidget in DesktopPane and FitPane not returning a promise.
https://github.com/ozoneplatform/owf/wiki/OWF-7-Developer-Widget-State-API#discussion-of-state-events lists all the widget state events. That listing should also be included on the JS API docs at: OWF-help-7-GA.zip /help/jsdoc/symbols/Ozone.state.WidgetState.html#addStateEventListeners
Need a contributing document for people submitting pull requests to the project. Should be in CONTRIBUTING.md form for Github.
We have a use case in which we'd like to send over optional information in an intent. If the user selects a widget that can make use of the additional information, it will, but otherwise the intent specifies a basic behavior. This is modeled today in Android intents - see their description of extras.
More specific use case for widgets: assume that we'd like to plot KML. Type would be "application/kml" and action requested ACTION_VIEW. Optimally, any widget that can support KML viewing would be able to handle. That said, I'd like to consider use cases where I specify a layer in which to put the KML, for maps that can handle. (This is a supported capability in CMWAPI-compliant maps...). I'd like to pass along a layer id as an optional bit of metadata to be used by maps which can support it...
Proposed patch file included below, underneath the dashed line. (Note: although it is possible to set up pull requests for wikis, the owf.wiki project has some issues with duplicate files in its trees, so I was unable to push to a new repo for use with a pull request.)
Understood impact: none. The wiki updates suggest an approach, but do not require it. The updated text is intended to just more strongly state what the examples provided by the team already imply.
From 2835c25dfcba0674a2387b6b2170d81414d545a7 Mon Sep 17 00:00:00 2001
From: Tina Coleman [email protected]
Date: Fri, 27 Dec 2013 16:04:24 -0500
Subject: [PATCH] Proposed update to clarify means for extension for widget
intents
OWF7/OWF-7-Developer-Widget-Intents-API.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/OWF7/OWF-7-Developer-Widget-Intents-API.md b/OWF7/OWF-7-Developer-W
index 9174b3b..b2467ec 100644
--- a/OWF7/OWF-7-Developer-Widget-Intents-API.md
+++ b/OWF7/OWF-7-Developer-Widget-Intents-API.md
@@ -1,3 +1,4 @@
+
#1 Overview
@@ -54,7 +55,7 @@ The Widget Intents API requires the use of Eventing. For an ex
Use the Widget Editor in the user interface to add, edit or remove widget inten
The first argument is an Intent. An Intent is simply an object describin
-2. The second argument is an object containing the data that the intent is
+2. The second argument is an object containing the data that the intent is
The third argument is a callback function that is executed once the rece
The example below displays an intent that graphs a stock price. Once a receivin
@@ -91,7 +92,7 @@ Use the Widget Editor in the user interface to add, edit or re
The first argument is an Intent. An Intent is simply an object describin
-2. The second argument, a function that is executed once an Intent is recei
+2. The second argument, a function that is executed once an Intent is recei
The example below uses Intents to plot a stock price on the graph:
1.7.11.msysgit.1
Has any seen this issue deploying the WAR to a JBoss 5.1 server?
2013-01-17 08:31:13,396 ERROR org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/owf-server-7.0.0-GA] Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0': Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Cannot create inner bean '(inner bean)' of type [org.springframework.security.config.authentication.AuthenticationManagerFactoryBean] while setting bean property 'parent'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#11': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authenticationManager': Cannot resolve reference to bean 'preauthAuthProvider' while setting bean property 'providers' with key [0]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'preauthAuthProvider' is defined
I am very interrested to hear what Test Automation Tool(s) are being used with OzoneWF?
I have tried a couple and the dynamic allocation of objects has caused an issue for some tools ability to rerun after browser/session restart.
It looks like there are still dependencies on a SVN repository in the ivy build script build-base.xml
I am seeing references to: https://www.owfgoss.org/svn/repos/ozone/baseline visiting that url requires a username and password. I have neither.
The build fails with the following message:
[exec] ::::::::::::::::::::::::::::::::::::::::::::::
[exec] :: UNRESOLVED DEPENDENCIES ::
[exec] ::::::::::::::::::::::::::::::::::::::::::::::
[exec] :: com.oracle#ojdbc14;10.2.0.1.0: not found
[exec] :: org.grails.plugins#tomcat;1.3.7: not found
[exec] :: org.grails.plugins#hibernate;1.3.7: not found
[exec] :: org.grails.plugins#ozone-deploy;0.1: not found
[exec] ::::::::::::::::::::::::::::::::::::::::::::::
Any suggestions?
The current quick start guide no longer matches the content of the distribution zip. It basically says to unzip OWF-bundle-7-GA.zip, cd to apache tomcat and run.
There's no bundle zip and the distribution no longer has apache tomcat on it. Where's the server? If it's not supposed to be in the bundle, can you at least some add some basic build/deploy instructions?
Also v6 is also missing the tomcat bundle
The following is included in OWF as part of dojo. The code should never be used/called by OWF this ticket is to validate that is accurate.
Dynamic Code Evaluation: Code Injection within the dojo content handler for javascript, on the same line number (9899) in all three files (owf-server.js, owf-widget.js, and owf-admin-widget.js)
9895 javascript: function(xhr){
9896 // summary: A contentHandler which evaluates the response data, expecting it to be valid JavaScript
9897
9898 // FIXME: try Moz and IE specific eval variants?
9899 return _d.eval(xhr.responseText);
9900 },
The file owf-widget.js interprets unvalidated user input as source code on line 9899. Interpreting user-controlled instructions at run-time can allow attackers to execute malicious code.
The following instructions do not work because a username/password is needed for the download.
Are there updated deployment instructions for deploying OWF 7.16 to JBoss 7.1.1? I tried deploying it the way we have deployed 7.14.2 in the past, but I am getting the error "NoClassDefFoundError: org/apache/tomcat/jdbc/pool/DataSource", despite configuring OWF with a Postgres datasource in OwfConfig.groovy. I tried adding the tomcat-jdbc.jar, but it moves on to complain about other Tomcat dependencies like "org/apache/juli/logging/LogFactory". Is Tomcat required for this version?
I've followed the instructions from the wiki, and double checked older threads. Haven't found a solution yet to this unresolved dependency.
[exec] ::::::::::::::::::::::::::::::::::::::::::::::
[exec]
[exec] :: UNRESOLVED DEPENDENCIES ::
[exec]
[exec] ::::::::::::::::::::::::::::::::::::::::::::::
[exec]
[exec] :: access#access;1.0: not found
[exec]
[exec] ::::::::::::::::::::::::::::::::::::::::::::::
We're having trouble running: https://host:port/owf/administration/migrateToApps We've upgraded our 7.0.0 OWF to 7.16. The 7.16 "OWF Configuration Guide.pdf" secA.2.2.1 Migrate Legacy Dashboard Data directs us to run: https://host:port/owf/administration/migrateToApps to convert our old Dashboards and Stacks into 7.16 Apps and Pages. When I go to that URL in the stock owf.war running in tomcat, it returns an HTTP 200 with body: No dashboards to process This makes sense. But when I go to the same url in the owf.war we've deployed into JBoss, I get an HTTP 404 with title: JBoss Web/7.4.9.Final-redhat-1 - JBWEB000064: Error report
The page body is:
JBWEB000065: HTTP Status 404 - /owf/WEB-INF/grails-app/views/administration/migrateToApps.jsp
JBWEB000309: type JBWEB000067: Status report
JBWEB000068: message /owf/WEB-INF/grails-app/views/administration/migrateToApps.jsp
JBWEB000069: description JBWEB000124: The requested resource is not available.
JBoss Web/7.4.9.Final-redhat-1
Everything else we try to do in our JBoss OWF seems to work fine, so there doesn't seem to be any major problem. What actual underlying resource fulfills the request: /owf/administration/migrateToApps I'm guessing that we've mis-configured something in our OWFConfig.groovy and it's failing back to migrateToApps.jsp (which doesn't seem to exist in owf.war or its jars).
Thanks,
Dave
I have the data available in JSON format OR XML format. Are there widgets available to display in chart formats (line charts /bar charts/ radial guage etc.,)
Some of the other issues I just created (#41 and #42) would become partly unnecessary if OWF supported a way to define a dashboard region to act as a pre-defined navigation area.
Similar to the way Ext JS Toolbars work, a Navigation region could be docked to the left or top of a dashboard. Menu options would allow launching new widgets into the other dashboard area(s).
This may require some thought. Ideally, it would work exactly like an Ext JS Toolbar, to not only limit the space it uses on the dashboard, but also to remove any frame overflow issues. (Currently, a widget providing navigation control would require enough space to show any drop down menus, otherwise they're cut off at the edge of the frame).
I'm not sure if the best way to configure this navigation toolbar would be though a JSON object, or if a URL could be given to OWF to define the items and behavior of the toolbar, or if some other approach would be better. But given how complex OWF dashboards can become, especially when many widgets are available, it really needs an option for more focused navigation and control over the widgets and the inter-widget workflows they enable.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.