eXo Platform 1.0 RC3 : JMX and mobile devices

Discussions

News: eXo Platform 1.0 RC3 : JMX and mobile devices

  1. Good morning everybody,
     
    The eXo Platform development team has just released the version 1.0 RC3 of their portal and SOA software.
     
    It contains bug fixes and some new features:
     
        * Mobile device : next generation of mobile devices (cell phones and PDA with xHTML-MP support) are now supported and the same portal (for example www.exoplatform.com) can be reached by several type of device. The layout will be automatically adapted to the screensize. It also comes with UI options to configure the mobile site.
     
          Screenshot : http://www.exoplatform.com/xwiki/bin/download/Main/mobileportalconfiguration/nokia.JPG
     
        * JMX portlet : as all eXo Platform services are registered in MBeans servers, that portlet provide a powerful way to monitor and web manage the service stacks.
     
          Screenshot : http://www.exoplatform.com/xwiki/bin/download/Main/JMXPortlet/jmx.JPG
     
        * Enhance UI for navigation mode edition
     
        * integration with last xwiki version (with PDF export; statistics; code, image and attachment macros; attachment preview...)
     
        * More than 100 pages of documentation on our wiki that you can browse from the portal (www.exoplatform.com) or in standalone mode at http://www.exoplatform.com/xwiki/bin/view/Main/WebHome

    More information at http://www.exoplatform.com/xwiki/bin/view/Main/rc3
     
    The eXo Platform development team

    Side Note: The eXo team's thoughts on JSF
    We would like to restart the debate that was started some time ago on TSS : to JSF or not to JSF :)

    Our experience with JSF is more than great and you might already know it from our last articles.

    The work we did for mobile devices support has been made easy thanks to JSF.

    Indeed, the portal page can be viewed as tree components where nodes are containers and leaves are portlets. With JSF the rendering phase consists of walking down that tree to call the render methods of each JSF UIComponents. In eXo Platform and in most JSF applications, those components delegates the render to objects called Renderers that are responsible of creating the markup ourput.

    What is great is that according to the device type it is possible to select at request time the renderer to use (for example xHTML-MP renderers for next generation mobile browsers). Thanks to this feature it has been possible to render the same navigation tree (see our last article) in different layouts and with many type of returned markup.

    This is one of many advantages of JSF...

    Threaded Messages (22)

  2. I want to congratulate the eXo Team for their release and the nice work on the documentation they did using XWiki.

    In just a few weeks they have more than 100 documents on the eXo Wiki which makes them the biggest wiki (after xwiki.org and xwiki.com) hosted on the XWiki.com Wiki Farm. (See the stats of the biggest wikis).

    Ludovic
    XWiki: http://www.xwiki.org/
    Create your wiki: http://www.xwiki.com/
    Blog: http://www.ludovic.org/blog/ (in french)
  3. Great work on the new release. I am concerned about your licensing scheme of GPL which seems to posion any portlet that is hosted in your enviroment. Can you clarify it. What is the pricing on the non-GPL version? At this point it seems dangerous to do any enterprise work with exo until the licensing becomes favourable.
  4. The license model will not change, our business model is based on it exactly like MySQL AB.

    So either you also contribute to the platform commmunity by releasing your portlet source code in GPL or if you want not to open your code you can purchase a commercial license and therefore contribute to the health of the community by funding its developers :)

    We provide several types of licenses as descibed on our site :

        -end user licenses : express or enterprise
        -OEM license : basic or hosting

    If you want more information and price quote feel free to mail at : licenses@exoplatform.com
  5. Would it not be possible to explain it here. It is not really explained on the site either.
    GPL in a portal. It is always interpreted in different ways. If I put stored procedures or data in MySql. I do not have to GPL the stored procedure.
    If I add a html page or a jsp to apache (with f.e. tomcat) I do not have to GPL that as well.
    Somehow I got the hunch that if I include a portlet in exo platform, I will have to GPL it?!?
    What is the limits of the GPL. I expect that you do this for money, which means that you obviously has some limits somewhere.

    Also there is no price information, which always makes me belive that that I will get a question right back "How much money do you have?"
  6. First note that a license has a sense only if you distribute a software.

    Therefore if you use eXo Platform for your own needs then you don't need to release your portlet code.

    Along with the GPL license we also have an end user license that add warranties where the GPL provides no warranty.

    Nevertheless, as soon as you distribute eXo Platform bundled with your portlets then you either have to Open the code as described in the GPL text or purchase an OEM commercial license.

    The ethic behind is that we are pleased when people use our software, enhanced it and give something back to our community. By something we mean either some code or money from license sells. But we dislike to see that people make money from our hard work without giving anything back...

    The prices are fixed (note that accodring to French law you can not sell the same product at two different prices) and are the same for everybody. We send the same PDF paper to every people who contact us :)
  7. Hi all,
    I wan't to notifie that the documentation in Exo is now excelent. The team integrate xWiki as a portlet in the portal. Thez done a real good documentation. There is all everyone need to use exo. There is user, admin and developper guide, an HowTo install or deploy, a Faq ...
    There is allready all point to start with exo, and more. The team choose to let everybody edit this documentation, so if everyone give there experience this will be complete faster and better. So I withdraw what I say on the documentation in my previous thread on "exo reloaded".
    Thanks to the team for this doc.
    Wanig
  8. Exo is really helpfull ![ Go to top ]

    Hi,

    I am working for Air France and we are working on a portal on Sun One Portal Server.
    We are developping under Windows 2000 (WSAD) and then we deploy on a Sun server.
    This wasn't very cool for debugging ...

    So to improve our development process, we have searched for a portal wich worked on NT. And we found Exo.

    Althoud Exo is not our final Solution (Sun One Portal Server), I can tell you that Exo is very helpfull to test all of our portlets (JSR 168 is ok on Exo).

    There is alse a plugin on Eclipse for creation and validation of portlets. All of this is very cool for developpers !

    Also the Exo team is very aware of our problems.

    Conclusion : Exo is good for you ...
  9. Exo is really helpfull ![ Go to top ]

    The most funny thing is that we even got mails from IBM developers that were using eXo to develop JSR 168 portlets...how funny ;)
  10. I apologise in advance for the dumb questions but I am trying to figure out when to apply portlets and portals and when not to.

    Other than Single Sign on , what oher benefit does one get out of portals/portlets ? When to consider stand alone Struts/Tapestry J2EE apps and when to consider portals ? Are portals only useful for "community" type applications ?

    Are there any ROI measurements on Portals that can shed some light one way or the other?
  11. That is not a dumb question at all :)

    More than just providing integration and SSO solutions to offer users a single entry point to the company information system, portal frameworks can also highly reduce the application development time.

    Indeed, when you develop portlets, you don't have to focus on the general page layout and site navigation mechanism, this work is delegated to the portal. Therefore you can spend more time on building dedicated views for you business application.

    Moreover using bridges or new version of frameworks like Struts or Tapestry you will be able to develop portlets using your favorite web framework. (Note that currently eXo does provide a Struts bridge but not a Tapestry one).

    So my opinion is that most applications would gain to be developed as portlets and according to the number of companis that contact us for OEM licenses, it seems it is the direction to follow.

    Hope this helps.

    Benjamin
  12. So my opinion is that most applications would gain to be developed as portlets and according to the number of companis that contact us for OEM licenses, it seems it is the direction to follow.
    That is my impression as well.
    Do not get me wrong, eXo is very good portal implementation, but (based on my digging of sources from previous RC) it probably needs another half of a year to year to smooth learning curve, streamline typical operations and use cases, polish APIs and DB integration. It also needs to improve execution speed.
    Keep up the good work! The product worth keeping eye on it.
  13. eXo is very good portal implementation
    Thanks

    I comment the list of feedbacks, thanks for noting them :
    to smooth learning curve
    You are right as eXo is based on quite new standards and innovative technologies like the Portlet API, Java Server Faces, WSRP, Java Content Repository... there is a learning curve. Hopefully, those are standadrs that are well documented and will become widely used very soon...

    We also worked a lot on the documentation these last weeks to provide simple How-tos and tutorials.
    streamline typical operations and use cases


    Can you explain this a little please.
    polish APIs
    I guess you are talking of some service APIs. Which service interfaces would you like to be polished?
    DB integration
    That is ne thing we worked on and so far HSQLDB, MySQL, PostgreSQL and DB2 have been tested. Seems someone also mayde it work on SQL Server.
    It also needs to improve execution speed.
    Well we already talked of that in previous threads :) Seems to only occur on some versions of Mozilla...will try to fix that

    Thanks Konstantin,
  14. Note: my notes are based on previous RC, so correct me if some notes are not applicable to the current incarnation:
    smooth learning curve
    I did not mean learning curve for used specs, I mean eXo itself. As you rightfully noticed there is interest from OEM, so it means that we need to change/modify/add features to eXo. Some kind of cookbook could greatly help here. I would imagine how that cookbook will describe using eXo services in custom extensions, for example:
    - how-to programmatically add new user;
    - how-to check permissions;
    - how to create own navigation/menu portlet;
    streamline typical operations and use cases
    Content management: creation of a page that is based on simple HTML is unnecessary complex;
    External portal configuration management for user groups, here I mean that for my use cases it would be nice if I could define and then change group based portal configuration. At this moment user creation listener can copy group configuration as new user configuration, and then it is saved as user configuration and can be edited on per user basis. But I do not want users in a ‘dumb’ group be able to edit their configuration, I want them to use common configuration for the group, also as admin I want to change that group configuration at runtime (even server restart is OK).
    It seems to be possible with eXo, but not very obvious how to do it.

    Another thing is development convenience, which is great part of learning curve: it takes about 12 minutes to compile eXo platform, and Maven reactor spits out some frightening messages and then seems to freeze, but eventually wakes up and builds project fine.
    Such long cycle might be prohibitive as a newcomer wants to try little things here and there, but it is too frustrating to wait 12 min + time to restart container to see results.
    I am sure there are some ways to address this.
    DB integration
    There was no Postgres integration in the code, even it seemed as it was there. I tried to add it, but have discovered that it is not very straightforward with no apparent reasons ( basically the same settings need to be specified in two places ).
    Separation between eXo data source and WF data source might be fine, but for simplicity sake WF should use eXo ds as a default and not require a separate config.
    I guess you are talking of some service APIs. Which service interfaces would you like to be polished?
    Overall I have found process of obtaining services somehow vague, might be because lack of documentation, but I remember that after obtaining some references to bases services I did not find methods I would expect there like permission checks. And your permission model is not quite straightforward, IMO membership is not necessary and simple role based schema could work pretty well for portals.
    Could you please provide an example where membership is convenient or necessary to use?
  15. Wow, seems you spent some time on our code, what was your login in Forum?

    Nevertheless, some parts have been added to the wiki documentation so I will detail your comments.
    I did not mean learning curve for used specs, I mean eXo itself. As you rightfully noticed there is interest from OEM, so it means that we need to change/modify/add features to eXo. Some kind of cookbook could greatly help here.
    We tried to provide such things in the wiki. If you see that you would like some tutorials or information that are not yet in feel free to register and edit the wiki, we will fill the blank pages.
    -how-to programmatically add new user;
    -how-to check permissions;
    This information is available in two wiki pages that describe the Organization service :

    http://www.exoplatform.com/xwiki/bin/view/Main/Organizationservice

    and how to map it to your own model :

    http://www.exoplatform.com/xwiki/bin/view/Main/customizeorganization

    I agree that there is no code example :) we though that UML would be enougth. If you don't think so, tell us and we will add the code. Also note that you can always find the code in our unit test ;).
    -how to create own navigation/menu portlet;
    This is missing in the tutorial you are correct I have added an new page in wiki http://www.exoplatform.com/xwiki/bin/view/Main/SomeHow-tos for it.
    Content management: creation of a page that is based on simple HTML is unnecessary complex;
    In RC3 we have added template for page layout creation. That may be a good idea to do the same for basic pages with only HTML portlet on it. I add it to our TODO list and see what teamates think.
    External portal configuration management for user groups, here I mean that for my use cases it would be nice if I could define and then change group based portal configuration. At this moment user creation listener can copy group configuration as new user configuration, and then it is saved as user configuration and can be edited on per user basis. But I do not want users in a ‘dumb’ group be able to edit their configuration, I want them to use common configuration for the group, also as admin I want to change that group configuration at runtime (even server restart is OK). It seems to be possible with eXo, but not very obvious how to do it.
    Yes this is possible both at the role and membership level (you will see why memberships are needed ;) ). It is explained in the last section of http://www.exoplatform.com/xwiki/bin/view/Main/portalconfiguration

    In one case a user with J2EE role will import the portal layout from a define group portal.

    In the other case, a user that has a "membership" in a group will import the portal layout.

    In both cases user will not be able to modify the portal layout.

    You have to choose one behavior for you portal. Note that you are not forced to use memberships but you can stick with J2EE roles here :)
    Another thing is development convenience, which is great part of learning curve: it takes about 12 minutes to compile eXo platform, and Maven reactor spits out some frightening messages and then seems to freeze, but eventually wakes up and builds project fine. Such long cycle might be prohibitive as a newcomer wants to try little things here and there, but it is too frustrating to wait 12 min + time to restart container to see results.I am sure there are some ways to address this.
    Well to build all with test it takes 6 minutes on Tuan's computer and 4 minutes without test. But that is not an argument I agree, not everybody can buy what Tuan bough last week :)

    But note it is possible to do incremental build as described in http://www.exoplatform.com/xwiki/bin/view/Main/buildinstructions

    It higly improves development process ;) Some people also use eclipse to build, run test and even debug. As a side note, debugging into eclipse will be added in next plugin version.
    There was no Postgres integration in the code, even it seemed as it was there.
    Strange was added for one of our OEM in RC2, maybe you tried with RC1.
    I tried to add it, but have discovered that it is not very straightforward with no apparent reasons ( basically the same settings need to be specified in two places ). Separation between eXo data source and WF data source might be fine, but for simplicity sake WF should use eXo ds as a default and not require a separate config.
    I would say that adding a DB support is quite easy actually (described in http://www.exoplatform.com/xwiki/bin/view/Main/databaseconfiguration).

    There is a reason why workflow datasource and exo datasource are separated. Indeed our workflow service is based on JBPM 2.0 beta 2 and until JBPM get at least RC1 we prefer to split the database to ease upgrades...
    Overall I have found process of obtaining services somehow vague, might be because lack of documentation, but I remember that after obtaining some references to bases services I did not find methods I would expect there like permission checks.


    All service manipulation and theory is described in our user manual at http://www.exoplatform.com/xwiki/bin/view/Main/developermanual

    Lookup a service is mainly done using either dependancy injection (constructor one) or the service locator design pattern (refer to Martin Fowler article for more information on those definition....but I guess you are familiar with that :) )

    If you need more information ping me
    And your permission model is not quite straightforward, IMO membership is not necessary and simple role based schema could work pretty well for portals. Could you please provide an example where membership is convenient or necessary to use?
    Sure :)

    First note we don't force you to use membership, if you don't need them just stick with JAAS and J2EE security roles.

    The problem of J2EE roles is that it is dealing with organization crosscutings roles and that many real organization relashionships do not fit into that model. Hence it is difficult with roles to model that user U has such role R in Group G, and that is exactly why we added memberships that are simply defining relations between user and groups.

    They are many use cases and the most common one is what we call "community injection". We use memberships to mount some group node tree inside a user tree. With that method it is possible for a user to view many navigation tree of several groups if he has the correct membership of the group.

    Hope this help.

    Benjamin
  16. Wow, seems you spent some time on our code, what was your login in Forum?
    Yes, I did, although never got a login to your forum.
    I agree that there is no code example :) we though that UML would be enougth.
    Documentation is getting better constantly, good.
    Although UML is very clear I still do no see a need for membership, it may be just terminology, because it looks like some kind of J2EE roles mapping: when within deployment descriptor I can define that application role “manager” is “admin” in this environment.
    In one case a user with J2EE role will import the portal layout from a define group portal.
    In the other case, a user that has a "membership" in a group will import the portal layout.
    In both cases user will not be able to modify the portal layout.
    As you said: user imports layout, physically that listener creates a _copy_ of a layout in eXo database that is exactly what is wrong here IMO. Such user should USE group layout, so when admin updates group layout, such change will be immediately picked up by users.
    I agree, not everybody can buy what Tuan bough last week :)
    I would say that even 4 minutes is too long. My tolerance is about 1 minute per wait cycle on AMD 2000 1GB ....
  17. Documentation is getting better constantly, good.Although UML is very clear I still do no see a need for membership, it may be just terminology, because it looks like some kind of J2EE roles mapping: when within deployment descriptor I can define that application role “manager” is “admin” in this environment.
    It is not the same thing, it is dirty with J2EE roles to model that a user as a particular role within a group (the only way would be to define J2EE roles of type : roleName_groupName). Have a look to that page : http://www.exoplatform.com/xwiki/bin/view/Main/customizeorganization

    Anyway if you don't want membership don't use them ;) other will use if they need (and we have several use cases already)
    As you said: user imports layout, physically that listener creates a _copy_ of a layout in eXo database that is exactly what is wrong here IMO. Such user should USE group layout, so when admin updates group layout, such change will be immediately picked up by users.
    You are wrong here, the interceptor is doing run-time injection of layout. So that if admin changes the group layout then all user will see that change. Well so what you call USE is what we call import ;)
    I would say that even 4 minutes is too long. My tolerance is about 1 minute per wait cycle on AMD 2000 1GB ....
    To build the entire platform...well it is a big one there are more than 50 maven subprojects.

    Have you tried the incremental build? does it fit your needs.

    We usually only build the entire platform only once a day....after a CVS update

    Benjamin
  18. postgres works fine[ Go to top ]

    Hi Kontantin,

    [quote]There was no Postgres integration in the code, even it seemed as it was there. [/quote]

    I add and use postgres on exo and it work fine. In RC3, there is a portal.xml.postgres as exemple for the configuration.
    I actually use postgres7.5 on windows. I don't test postgres8.0 on linux.
    For tomcat, I use the 7.4.1 jar.
    Hope it help you,
    Wanig
  19. postgres works fine[ Go to top ]

    I add and use postgres on exo and it work fine. In RC3, there is a portal.xml.postgres as exemple for the configuration. I actually use postgres7.5 on windows. I don't test postgres8.0 on linux.For tomcat, I use the 7.4.1 jar.Hope it help you,Wanig
    Great news! As I said my knowledge of eXo codebase is outdated as you progress with good pace.
    When I will return from my vacation in Colorado mountains I will dive into eXo codebase again. You gave me many reasons to try exo again :) Thanks.
  20. postgres works fine[ Go to top ]

    Konstantin,

    I have added the tutorial : "How to create navigation portlets"

    http://www.exoplatform.org/xwiki/bin/view/Main/createnavportlets

    Just for you ;)


    There is also the : "How to build your site from scratch"

    http://www.exoplatform.org/xwiki/bin/view/Main/scratchcustomization
  21. Since Benjamin already hinted about the Eclipse plugin release, here are a few more details :

    The coming release gives you the ability to quickly create an eXo Platform launch configuration. You can then use the configuration to start eXo Platform with Tomcat in a debug mode. You could still have done the same thing without the plugin, but the plugin will create source lookup paths for you, saving you from the tedious task of adding more than 10+ source lookup paths manually!

    The source lookup paths are used by the Eclipse debugger to look up the source code corresponding to a stack frame. So, if you were to suspend a thread and click on its stack, the debugger will be able to open the source code file for you. Similarly, if you click on a stack trace exception displayed in an Eclipse console, the corresponding source code file will be opened for you.
  22. Opera 7.53 problems[ Go to top ]

    That's good that eXo Platform portal can be seen even on the mobile devices. But not on my PC using Opera 7.53.
  23. Opera 7.53 problems[ Go to top ]

    What is the problem with Opera browser? I think Ove tested it...