On 23 Jan 2012, at 07:54, Jose Badeau wrote:

> Hello Rave Team,
> 
> First off, congratulations on your current progress and am looking forward
> to seeing Rave graduate out of the incubation phase :).
> 
> Now on to my questions and thoughts. I came across Rave when looking for
> production ready shindig implementations that i could as a basis for my
> portal. I came across a few such as WSO2, and JIRA and CQ5. Howevere,  none
> really were suitable either because of licensing or inability to be
> extended or embedded. I came across Rave and liked the idea of being a
> pluggable framework with the intention of being extended or used as a basis
> for a framework.
> 
> For the past 5 years I have been involved in writing various portal/widget
> frameworks for large Swiss banks, one of which was based or websphere
> portal and a few which were completely custom. I made allot of mistakes and
> am hoping I can have a few questions answered about the direction of Rave
> and contribute where I can.
> 
> 1. Will there be any type of SPI for navigation (pages) and content(layout,
> widgets) such as like what is available for webshphere portal?
> 
> 2. Are there any ideas about providing OSGI bundles of RAVE, shindig,
> renderers, security, model, etc.
> 
> 3. I am not a big fan of extending by overlay.  Although simple, it will
> generally be a maintenance nightmare for clients when trying to upgrade
> versions as developers tend to just copy a jsp and modify it. This is a
> tricky area and admit that it is not easy to find a solution. I am
> currently coming up with xml deceleration (format is not important) which
> allows pages, to be laid out. Here is a snippit:


Hi Jose,

We've made a start on using an XML serialization as an export-import for pages:

https://issues.apache.org/jira/browse/RAVE-256

Also:

https://issues.apache.org/jira/browse/RAVE-26

The OMELETTE project [1] is developing a generic "workspace and widgets" XML 
format for use with RAVE and similar widget/portal applications - this should 
be more visible in the next few months.

S

[1] http://www.ict-omelette.eu/

> 
>    <Widget id="toolbar" abstract="false" skin="default"
> container="shindig" type="iframe" url="/toolbar">
>        <Modes>view,edit,help,
> minimized,maximized</Modes>
>        <Publishes-Topics>search.*</Publishes-Topics>
>    </Widget>
> 
>    <Widget id="google" abstract="false" skin="default" container="shindig"
> type="iframe" url="google.com">
>        <Modes>view,edit,help,minimized,maximized</Modes>
>        <Publishes-Topics></Publishes-Topics>
>        <Consumes-Topics>search.*</Consumes-Topics>
>    </Widget>
> 
>    <Widget id="yahoo" abstract="false" skin="default" container="shindig"
> type="iframe" url="yahoo.com">
>        <Modes>view,edit,help,minimized,maximized</Modes>
>        <Publishes-Topics>Publishes-Topics>
>        <Consumes-Topics>search.*</Consumes-Topics>
>    </Widget>
> 
>    <Layout name="HeaderNavFooter3Row">
>        <!-- BORDER -->
>        <Container id="border" layout="border" config="{gutters:false}">
>            <Area id="header" settings="{region:'north', height:'150px'}" />
>            <Area id="navigation" settings="{region:'west', margins:'5 0 0
> 0', width:'175px'}" />
>            <Area id="center" settings="{region:'center', margins:'35 5 5
> 0', autoScroll:true}">
>                <!-- COLUMNS-->
>                <Container id="column" layout="column"
> config="{anchor:'100%'}">
>                    <Area id="col1" settings="{autoScroll:true'}" />
>                    <Area id="col2" settings="{autoScroll:true}" />
>                    <Area id="col3" settings="{autoScroll:true}" />
>                </Container>
>            </Area>
>            <Area id="footer" config="{region:'south', height:'80px',
> margins:'5 0 0 0'}" />
>        </Container>
>    </Layout>
> 
>    <root-node id="root1" theme="default" skin="default" layout="default">
>        <Group-Node id="group1" title="node-group1.title">
>            <Parameter id="foo">bar</Parameter>
>            <Parameter id="foo">bar</Parameter>
>            <Page-Node id="home" title="node-group1.home.title"
> layout="HeaderNavFooter3Row">
>                <Parameter id="foo">bar</Parameter>
>                <Parameter id="foo">bar</Parameter>
>                <Content>
>                    <Add widget="toolbar" to="header"
> instance-id="home.toolbar" />
>                    <Add widget="google"
> to-area="border.center.column.col1" instance-id="home.googleSmall" />
>                    <Add widget="yahoo" to-area="border.center.column.col2"
> instance-id="home.googleLarge" />
>                </Content>
>            </Page-Node>
>        </Group-Node>
>    </root-node>
> 
>    <Url-Mapping node="root1.group1" label="urlmapping-root1.group1.title">
>        <Url-Mapping node="root1.group1.home"
> label="urlmapping-root1.group1.home.title"/>
>    </Url-Mapping>
> 
> 4. Are there any plans for themeing Rave with SASS/Compass like how ExtJs
> has done. it would be great if clients could just use a compass/sass
> template to extend the default theme or create a new one. currently just
> using a custom css is quite cumbersome. I am currently creating one for
> myself and would be happy to donate it.
> 
> 5. There are some strange layout issues related to widget layout and drag
> an drop such as the regions/widgets do not take up the full space of the
> pageContent container which leavse a right side gutter. Widgets do not
> dragNDrop easily, there is a huge pixel buffer to help but it looks bad and
> is difficult to get working. There is a strange issue with padding on the
> regions css class. My question is are there any plans to use existing css
> grid systems such as 960 or 1140? Are there any plans to use an existing JS
> grid layouts such as dojo grid?
> 
> 6. Will there be support for a client-side api to generate navigation,
> layout and widgets instead of using the tiles to generate markup? It would
> also be very nice to render a widgets outside of the pageContent area. What
> about client-side API for switching pages, history, logging, tracing,
> metrics, etc?
> 
> 7. When developing javascript api, please use prototypical inheritance
> instead of inner function closures. I would recommend something like
> qooxdoos class system which supports thungs such as interfaces, statics,
> singletons, interfaces, abstract, interfaces, mixins and inheritance. Write
> your api so that it can be extended otherwise developers will  just copy
> the whole js file or worse, modify the original. Don't try to protect
> javascript developers too much with private methods, just make clear what
> is public and what is not. There are always cases where the public api is
> not enough so better that they can use it with the consequences than
> copying whole rave files which lead to a maintenance/upgrade nightmare.
> 
> 8. Any ideas for an export format of the portal such as liferay archive or
> websphere xmlaccess? How do you plan to move from testing environments to
> production?

(see above under 3)

> 
> 9. Any plans for url-mapping which map a pretty names (services(en)|
> servicios(es)) to a page. e.g. /app/page/view/18 = /services |
> /app/page/view/18 = /servicios.
> 
> 10. Have not looked into this yet but is there support for public pages via
> anonymous or guest users? External pages like the login page will not
> suffice for portals with allot of public pages.
> 
> 11. Will you be documenting all steps taken to combat browser/web security
> issues (very important when being evaluated for use on the on internet by
> large companies)
> 
> 12. when can we expect java and javascript documentation?
> 
> 13. I would suggest that Rave hosts its own site (Eating your own dog food)
> using rave itself along with samples.
> 
> I hope some of all of these things are on your agenda and hope you can get
> back to me when you have time. We (my company) are wiling to contribute to
> this excellent project if need be.
> 
> Cheers,
> Jose

Reply via email to