Re: Apache Shindig CMS Site Update

2012-07-12 Thread Stanton Sievers
Looks good Ryan.  Thanks.

I also found a related YouTube video from Rob Weir outlining anonymous 
mode for CMS which would allow anyone to submit changes to the CMS site.  
http://www.youtube.com/watch?v=7fvg1pfHLhE

-Stanton



From:   Ryan Baxter rbaxte...@apache.org
To: dev@shindig.apache.org, 
Date:   07/10/2012 22:02
Subject:Apache Shindig CMS Site Update



OK folks the staging CMS site is live at
http://shindig.staging.apache.org.  You can now edit the CMS site
using the CMS bookmarklet directly in your browser.  I have started
some documentation on how to do so on Shindig's CMS site [1] :)  It
should be easy for people to start contributing content, I suggest you
watch the short tutorial video on CMS [2] to get started.  The
production site is not enabled yet, so please do not publish anything
to production yet.

[1] http://shindig.staging.apache.org/documentation_website.html
[2] http://www.youtube.com/watch?v=xcDZN3Lu6HA

-Ryan




RE: Apache Shindig CMS Site Update

2012-07-12 Thread Franklin, Matthew B.
Hooray for bootstrap!  BTW, you might want to test it in IE.  Something isn't 
quite right, but I haven't had time to look into what that is.

-Matt

-Original Message-
From: Ryan Baxter [mailto:rbaxte...@apache.org]
Sent: Tuesday, July 10, 2012 10:03 PM
To: dev@shindig.apache.org
Subject: Apache Shindig CMS Site Update

OK folks the staging CMS site is live at
http://shindig.staging.apache.org.  You can now edit the CMS site
using the CMS bookmarklet directly in your browser.  I have started
some documentation on how to do so on Shindig's CMS site [1] :)  It
should be easy for people to start contributing content, I suggest you
watch the short tutorial video on CMS [2] to get started.  The
production site is not enabled yet, so please do not publish anything
to production yet.

[1] http://shindig.staging.apache.org/documentation_website.html
[2] http://www.youtube.com/watch?v=xcDZN3Lu6HA

-Ryan


Shindig neo4j backend

2012-07-12 Thread René Peinl
Dear Shindig developers,

I’m working together with my colleague Florian on a systems integration
research project that brings together a DMS, a groupware system, an ERP
system in an Intranet scenario and adds social media capabilities under the
hood of a central lightweight portal (see requirements overview at the end
of the email). 

 

For the portal, we are planning to use Shindig as the central component and
maybe Rave as a basis  for the presentation layer. Since social media data
is inherently graph-oriented, we are planning to use neo4j as the storage
engine for Shindig (and maybe Rave as well). Florian has already implemented
a draft of this neo4j storage layer which works well for some sample data
that we have generated (if anyone is interested we can provide the sample
data and the generator for it), but due to simplicity reasons and to avoid
additional conversion operations in between the storage layer is currently
not using JPA, but directly writing the objects to the database (replacing
e.g. both PersonImpl and PersonDB). 

 

Lately, we have discovered Rave and found out that despite its close
integration with Shindig it uses its own database abstraction and partly
competing implementations for classes that are already present in Shindig.
For example there is rave.portal.model.Person which uses JPA to store a
(incomplete compared to OpenSocial 2.0 specs) person object in the database
and there is shindig.social.opensocial.jpa.PersonDB which does the same, but
seems like a complete implementation of the fields defined in OpenSocial
2.0.

 

My goal is to better understand the decisions behind the current
implementation of both Shindig and Rave (I’ve posted a similar question on
the Rave mailing list) in order to find a solution for our project that lets
the Apache community benefit as much as possible from our efforts, without
burdening our project too much with non-project-specific requirements.

 

The options we have (from my perspective) are as follows

1)  Kind of forking the Shindig project and using our own neo4j backend
and not using Rave

2)  Going one step further and integrating Rave with our own neo4j
Shindig backend and eliminate the duplicate classes

3)  Trying to use SpringData JPA abstraction layer for neo4j and
providing some extended functionality in own classes (e.g. a
friend-of-a-friend query could be implemented with relational DBs as well,
but doesn’t make too much sense due to performance reasons) and hoping that
the Rave and Shindig community are helping us to eliminate the duplicate
implementations on JPA level.

 

All options have their pros and cons and I’d really like to hear your
opinion on that. If you have the feeling that our project idea is very
specific and you don’t see any use for the results in your scenarios than it
may be better for both sides if we are building a fork. On the other hand,
if you think that the principle idea behind our project would be beneficial
for your scenarios as well, we would be happy to work together on that. 
We need e.g. some of the missing OpenSocial 2.0 features like full
activitystrea.ms support on the data layer, which is currently not given in
Shindig 2.5 beta2 (https://issues.apache.org/jira/browse/SHINDIG-1536), but
we do not want to interfere with your roadmap and release plans.
We also found several common scenarios that e.g. MS SharePoint is
supporting, but that are not feasible with OpenSocial 2.0 specification
(mainly due to its focus on Internet scenarios). Examples are: User has
checked-out a document in a DMS. For this kind of check-out operation, there
is no post verb in the activitystrea.ms standard.  We would be happy to
bring these finding into the ongoing discussion about future Open Social
versions.

 

Summed up, we wanted to know how we could best cooperate with the existing
Shindig (and Rave) community in order to quickly achieve our goals and let
the Apache community benefit the most from our efforts.

Any suggestions?

Regards

René

 

 

---

Prof. Dr. René Peinl

Teaching area: architecture of Web applications

University of applied Sciences Hof

Alfons-Goppel-Platz 1, 95028 Hof, Bavaria, Germany

Tel: +49-9281-409-4820

Email: rene.pe...@hof-university.de

 

 

 

Requirements for OpenSocial Intranet Portal

 


Presentation layer


· Portal entry page with admin predefined gadgets, customizable by
user 
(mostly existing in Rave 0.12)

· Gadget catalog (existing in Rave 0.12)

· User profile page with photo, name and other attributes. Admin
customizable. All open social fields should be available for display.
Gadgets can be used to show additional data like activity stream, friends
network, bookmarks/tags, …
(basic functionality available in Rave 0.12 /portal/app/person)

· User directory with overview of existing users (including paging
and search)
(not present in Rave 0.12 yet)

· 

Re: Apache Shindig CMS Site Update

2012-07-12 Thread Ryan Baxter
You should make your first change to the site and add the video :)  It
would be good to have up there.

On Thu, Jul 12, 2012 at 7:54 AM, Stanton Sievers ssiev...@us.ibm.com wrote:
 Looks good Ryan.  Thanks.

 I also found a related YouTube video from Rob Weir outlining anonymous
 mode for CMS which would allow anyone to submit changes to the CMS site.
 http://www.youtube.com/watch?v=7fvg1pfHLhE

 -Stanton



 From:   Ryan Baxter rbaxte...@apache.org
 To: dev@shindig.apache.org,
 Date:   07/10/2012 22:02
 Subject:Apache Shindig CMS Site Update



 OK folks the staging CMS site is live at
 http://shindig.staging.apache.org.  You can now edit the CMS site
 using the CMS bookmarklet directly in your browser.  I have started
 some documentation on how to do so on Shindig's CMS site [1] :)  It
 should be easy for people to start contributing content, I suggest you
 watch the short tutorial video on CMS [2] to get started.  The
 production site is not enabled yet, so please do not publish anything
 to production yet.

 [1] http://shindig.staging.apache.org/documentation_website.html
 [2] http://www.youtube.com/watch?v=xcDZN3Lu6HA

 -Ryan




Re: Apache Shindig CMS Site Update

2012-07-12 Thread Ryan Baxter
Thanks Matt, I wrote most of this testing it in Chrome and FF so I
haven't looked at any other browsers.  I can try and take a look when
I get a chance.  Kind of surprised since I changed little to nothing
about the default bootstrap styles so I would think we shouldn't have
a problem in the different browsers, unless there is a bug in
bootstrap.

-Ryan

On Thu, Jul 12, 2012 at 8:05 AM, Franklin, Matthew B.
mfrank...@mitre.org wrote:
 Hooray for bootstrap!  BTW, you might want to test it in IE.  Something isn't 
 quite right, but I haven't had time to look into what that is.

 -Matt

-Original Message-
From: Ryan Baxter [mailto:rbaxte...@apache.org]
Sent: Tuesday, July 10, 2012 10:03 PM
To: dev@shindig.apache.org
Subject: Apache Shindig CMS Site Update

OK folks the staging CMS site is live at
http://shindig.staging.apache.org.  You can now edit the CMS site
using the CMS bookmarklet directly in your browser.  I have started
some documentation on how to do so on Shindig's CMS site [1] :)  It
should be easy for people to start contributing content, I suggest you
watch the short tutorial video on CMS [2] to get started.  The
production site is not enabled yet, so please do not publish anything
to production yet.

[1] http://shindig.staging.apache.org/documentation_website.html
[2] http://www.youtube.com/watch?v=xcDZN3Lu6HA

-Ryan


RE: Apache Shindig CMS Site Update

2012-07-12 Thread Franklin, Matthew B.
-Original Message-
From: Ryan Baxter [mailto:rbaxte...@apache.org]
Sent: Thursday, July 12, 2012 12:06 PM
To: dev@shindig.apache.org
Subject: Re: Apache Shindig CMS Site Update

Thanks Matt, I wrote most of this testing it in Chrome and FF so I
haven't looked at any other browsers.  I can try and take a look when
I get a chance.  Kind of surprised since I changed little to nothing
about the default bootstrap styles so I would think we shouldn't have
a problem in the different browsers, unless there is a bug in
bootstrap.

More likely, IE just needs a little help.  We had to add some scripts to Rave 
(Modernizr, etc) and an x-ua-compatible head tag to get IE to behave properly...



-Ryan

On Thu, Jul 12, 2012 at 8:05 AM, Franklin, Matthew B.
mfrank...@mitre.org wrote:
 Hooray for bootstrap!  BTW, you might want to test it in IE.  Something isn't
quite right, but I haven't had time to look into what that is.

 -Matt

-Original Message-
From: Ryan Baxter [mailto:rbaxte...@apache.org]
Sent: Tuesday, July 10, 2012 10:03 PM
To: dev@shindig.apache.org
Subject: Apache Shindig CMS Site Update

OK folks the staging CMS site is live at
http://shindig.staging.apache.org.  You can now edit the CMS site
using the CMS bookmarklet directly in your browser.  I have started
some documentation on how to do so on Shindig's CMS site [1] :)  It
should be easy for people to start contributing content, I suggest you
watch the short tutorial video on CMS [2] to get started.  The
production site is not enabled yet, so please do not publish anything
to production yet.

[1] http://shindig.staging.apache.org/documentation_website.html
[2] http://www.youtube.com/watch?v=xcDZN3Lu6HA

-Ryan


Re: Apache Shindig CMS Site Update

2012-07-12 Thread Stanton Sievers
Wow, that was easy.

http://shindig.staging.apache.org/documentation_website.html

-Stanton



From:   Ryan Baxter rbaxte...@apache.org
To: dev@shindig.apache.org, 
Date:   07/12/2012 12:10
Subject:Re: Apache Shindig CMS Site Update



You should make your first change to the site and add the video :)  It
would be good to have up there.

On Thu, Jul 12, 2012 at 7:54 AM, Stanton Sievers ssiev...@us.ibm.com 
wrote:
 Looks good Ryan.  Thanks.

 I also found a related YouTube video from Rob Weir outlining anonymous
 mode for CMS which would allow anyone to submit changes to the CMS site.
 http://www.youtube.com/watch?v=7fvg1pfHLhE

 -Stanton



 From:   Ryan Baxter rbaxte...@apache.org
 To: dev@shindig.apache.org,
 Date:   07/10/2012 22:02
 Subject:Apache Shindig CMS Site Update



 OK folks the staging CMS site is live at
 http://shindig.staging.apache.org.  You can now edit the CMS site
 using the CMS bookmarklet directly in your browser.  I have started
 some documentation on how to do so on Shindig's CMS site [1] :)  It
 should be easy for people to start contributing content, I suggest you
 watch the short tutorial video on CMS [2] to get started.  The
 production site is not enabled yet, so please do not publish anything
 to production yet.

 [1] http://shindig.staging.apache.org/documentation_website.html
 [2] http://www.youtube.com/watch?v=xcDZN3Lu6HA

 -Ryan






Re: Apache Shindig CMS Site Update

2012-07-12 Thread Ryan Baxter
CMS for the win!

On Thu, Jul 12, 2012 at 12:56 PM, Stanton Sievers ssiev...@us.ibm.com wrote:
 Wow, that was easy.

 http://shindig.staging.apache.org/documentation_website.html

 -Stanton



 From:   Ryan Baxter rbaxte...@apache.org
 To: dev@shindig.apache.org,
 Date:   07/12/2012 12:10
 Subject:Re: Apache Shindig CMS Site Update



 You should make your first change to the site and add the video :)  It
 would be good to have up there.

 On Thu, Jul 12, 2012 at 7:54 AM, Stanton Sievers ssiev...@us.ibm.com
 wrote:
 Looks good Ryan.  Thanks.

 I also found a related YouTube video from Rob Weir outlining anonymous
 mode for CMS which would allow anyone to submit changes to the CMS site.
 http://www.youtube.com/watch?v=7fvg1pfHLhE

 -Stanton



 From:   Ryan Baxter rbaxte...@apache.org
 To: dev@shindig.apache.org,
 Date:   07/10/2012 22:02
 Subject:Apache Shindig CMS Site Update



 OK folks the staging CMS site is live at
 http://shindig.staging.apache.org.  You can now edit the CMS site
 using the CMS bookmarklet directly in your browser.  I have started
 some documentation on how to do so on Shindig's CMS site [1] :)  It
 should be easy for people to start contributing content, I suggest you
 watch the short tutorial video on CMS [2] to get started.  The
 production site is not enabled yet, so please do not publish anything
 to production yet.

 [1] http://shindig.staging.apache.org/documentation_website.html
 [2] http://www.youtube.com/watch?v=xcDZN3Lu6HA

 -Ryan






Re: Shindig neo4j backend

2012-07-12 Thread Ryan Baxter
Welcome Rene :)

Let me preface this by saying I have little knowledge of how Rave is
implemented.  I have been meaning to look at it more in depth but
haven't had the time.

I am kind of surprised Rave does not allow you to still use your own
persistence mechanism if you so choose.  I would think they would
still keep that option available to consumers since there are endless
possibilities for persisting data.  If you really can't inject your
own persistence model into Rave it sounds like option 1 is your best
bet, but as you list out in your requirements Rave offers a ton of
other functionality you want.  If you chose options 1 are you really
forking Shindig, or just injecting your own implementations?  The two
are very different.

I am a little confused about your comments about the activity stream
implementation.  As far as I know it is a complete implementation, do
you have specifics on what you think is missing?

Between the Rave and Shindig community I am sure we can help you
figure out which project is best for your use cases.  The Shindig
community will welcome any contributions you want to make in order to
help Shindig fit your use cases better and we would be glad to help
explain any of the current features you have questions about.  A lot
of us have gone through some extensive implementations and we realize
the documentation around some of the feature is lacking.

As far as the OpenSocial spec your contributions will be welcomed
there as well, especially if you provide an implementation for it :)

-Ryan

On Thu, Jul 12, 2012 at 11:25 AM, René Peinl
rene.pe...@hof-university.de wrote:
 Dear Shindig developers,

 I’m working together with my colleague Florian on a systems integration
 research project that brings together a DMS, a groupware system, an ERP
 system in an Intranet scenario and adds social media capabilities under the
 hood of a central lightweight portal (see requirements overview at the end
 of the email).



 For the portal, we are planning to use Shindig as the central component and
 maybe Rave as a basis  for the presentation layer. Since social media data
 is inherently graph-oriented, we are planning to use neo4j as the storage
 engine for Shindig (and maybe Rave as well). Florian has already implemented
 a draft of this neo4j storage layer which works well for some sample data
 that we have generated (if anyone is interested we can provide the sample
 data and the generator for it), but due to simplicity reasons and to avoid
 additional conversion operations in between the storage layer is currently
 not using JPA, but directly writing the objects to the database (replacing
 e.g. both PersonImpl and PersonDB).



 Lately, we have discovered Rave and found out that despite its close
 integration with Shindig it uses its own database abstraction and partly
 competing implementations for classes that are already present in Shindig.
 For example there is rave.portal.model.Person which uses JPA to store a
 (incomplete compared to OpenSocial 2.0 specs) person object in the database
 and there is shindig.social.opensocial.jpa.PersonDB which does the same, but
 seems like a complete implementation of the fields defined in OpenSocial
 2.0.



 My goal is to better understand the decisions behind the current
 implementation of both Shindig and Rave (I’ve posted a similar question on
 the Rave mailing list) in order to find a solution for our project that lets
 the Apache community benefit as much as possible from our efforts, without
 burdening our project too much with non-project-specific requirements.



 The options we have (from my perspective) are as follows

 1)  Kind of forking the Shindig project and using our own neo4j backend
 and not using Rave

 2)  Going one step further and integrating Rave with our own neo4j
 Shindig backend and eliminate the duplicate classes

 3)  Trying to use SpringData JPA abstraction layer for neo4j and
 providing some extended functionality in own classes (e.g. a
 friend-of-a-friend query could be implemented with relational DBs as well,
 but doesn’t make too much sense due to performance reasons) and hoping that
 the Rave and Shindig community are helping us to eliminate the duplicate
 implementations on JPA level.



 All options have their pros and cons and I’d really like to hear your
 opinion on that. If you have the feeling that our project idea is very
 specific and you don’t see any use for the results in your scenarios than it
 may be better for both sides if we are building a fork. On the other hand,
 if you think that the principle idea behind our project would be beneficial
 for your scenarios as well, we would be happy to work together on that.
 We need e.g. some of the missing OpenSocial 2.0 features like full
 activitystrea.ms support on the data layer, which is currently not given in
 Shindig 2.5 beta2 (https://issues.apache.org/jira/browse/SHINDIG-1536), but
 we do not want to interfere with your roadmap and release 

Re: Shindig neo4j backend

2012-07-12 Thread Henry Saputra
Hi,

Thanks for the interest at Apache Shindig and Rave projects.

Let me try to help answering some concerns and questions you have and
maybe other people in the community could chime in.

Looks like Apache Rave provides model database abstraction that allow
plug and play to relational database.

The Shindig's JPA implementation is just for sample/demo purpose. The
only implementation of the OpenSocial model is only POJO classes.
Backing the data storage with Neo4J sounds like awesome idea and I
believe should be more fitting for the social links for the OpenSocial
data.

As for activitystrea.ms implementation in Shindig, its fully
implemented based on the JSON 1.0 for JavaScript and Java components.
Shindig also support PHP for the server side but the implementation is
far behind the Java counterpart.

For portal solution proposal, I would recommend using Rave as the
front end and management module and rebind the data model with Neo4J.
Contributing back to either Rave and Shindig is welcomed and encouraged =)

Hope this helps.

Looking forward for contributions and awesome project with you guys.

- Henry

On Thu, Jul 12, 2012 at 8:25 AM, René Peinl
rene.pe...@hof-university.de wrote:
 Dear Shindig developers,

 I’m working together with my colleague Florian on a systems integration
 research project that brings together a DMS, a groupware system, an ERP
 system in an Intranet scenario and adds social media capabilities under the
 hood of a central lightweight portal (see requirements overview at the end
 of the email).



 For the portal, we are planning to use Shindig as the central component and
 maybe Rave as a basis  for the presentation layer. Since social media data
 is inherently graph-oriented, we are planning to use neo4j as the storage
 engine for Shindig (and maybe Rave as well). Florian has already implemented
 a draft of this neo4j storage layer which works well for some sample data
 that we have generated (if anyone is interested we can provide the sample
 data and the generator for it), but due to simplicity reasons and to avoid
 additional conversion operations in between the storage layer is currently
 not using JPA, but directly writing the objects to the database (replacing
 e.g. both PersonImpl and PersonDB).



 Lately, we have discovered Rave and found out that despite its close
 integration with Shindig it uses its own database abstraction and partly
 competing implementations for classes that are already present in Shindig.
 For example there is rave.portal.model.Person which uses JPA to store a
 (incomplete compared to OpenSocial 2.0 specs) person object in the database
 and there is shindig.social.opensocial.jpa.PersonDB which does the same, but
 seems like a complete implementation of the fields defined in OpenSocial
 2.0.



 My goal is to better understand the decisions behind the current
 implementation of both Shindig and Rave (I’ve posted a similar question on
 the Rave mailing list) in order to find a solution for our project that lets
 the Apache community benefit as much as possible from our efforts, without
 burdening our project too much with non-project-specific requirements.



 The options we have (from my perspective) are as follows

 1)  Kind of forking the Shindig project and using our own neo4j backend
 and not using Rave

 2)  Going one step further and integrating Rave with our own neo4j
 Shindig backend and eliminate the duplicate classes

 3)  Trying to use SpringData JPA abstraction layer for neo4j and
 providing some extended functionality in own classes (e.g. a
 friend-of-a-friend query could be implemented with relational DBs as well,
 but doesn’t make too much sense due to performance reasons) and hoping that
 the Rave and Shindig community are helping us to eliminate the duplicate
 implementations on JPA level.



 All options have their pros and cons and I’d really like to hear your
 opinion on that. If you have the feeling that our project idea is very
 specific and you don’t see any use for the results in your scenarios than it
 may be better for both sides if we are building a fork. On the other hand,
 if you think that the principle idea behind our project would be beneficial
 for your scenarios as well, we would be happy to work together on that.
 We need e.g. some of the missing OpenSocial 2.0 features like full
 activitystrea.ms support on the data layer, which is currently not given in
 Shindig 2.5 beta2 (https://issues.apache.org/jira/browse/SHINDIG-1536), but
 we do not want to interfere with your roadmap and release plans.
 We also found several common scenarios that e.g. MS SharePoint is
 supporting, but that are not feasible with OpenSocial 2.0 specification
 (mainly due to its focus on Internet scenarios). Examples are: User has
 checked-out a document in a DMS. For this kind of check-out operation, there
 is no post verb in the activitystrea.ms standard.  We would be happy to
 bring these finding into the ongoing 

AW: Shindig neo4j backend

2012-07-12 Thread René Peinl
Thanks Ryan,
to clarify things: Rave allows to have your own backend, it just has its own
additional database abstraction and partly has persistence classes that are
a subset of Shindig classes on the one hand, but add a few additional things
on the other hand. 
Dependency injection was also recommended on the Rave mailing list. I'm no
expert of DI and have used it up to now only for things like authentication
or logging. Therefore, I was not considering that option. I will have a look
into how that might be an option for us. On the Rave mailing list they also
recommended having two databases, a relational one for portal data like
which pages exist and which users have permissions on them and the graph db
for social media data. 

Regarding the OpenSocial 2.0 missing features in Shindig it seems, that you
have integrated patches from version 3.0 in current Shindig releases.
I saw an open issue that already had a patch, but was scheduled for Shindig
3.0. The roadmap also stated that OpenSocial 2.0 support is scheduled for
Shindig 3.0. It seems that changed in the last couple of weeks. I was
specifically missing support for events 
http://activitystrea.ms/specs/json/schema/activity-schema.html#event
But maybe I'm not up to date anymore. Sorry for that.

Regards
René


-Ursprüngliche Nachricht-
Von: Ryan Baxter [mailto:rbaxte...@apache.org] 
Gesendet: Freitag, 13. Juli 2012 03:28
An: dev@shindig.apache.org
Cc: Florian Holzschuher
Betreff: Re: Shindig neo4j backend

Welcome Rene :)

Let me preface this by saying I have little knowledge of how Rave is
implemented.  I have been meaning to look at it more in depth but haven't
had the time.

I am kind of surprised Rave does not allow you to still use your own
persistence mechanism if you so choose.  I would think they would still keep
that option available to consumers since there are endless possibilities for
persisting data.  If you really can't inject your own persistence model into
Rave it sounds like option 1 is your best bet, but as you list out in your
requirements Rave offers a ton of other functionality you want.  If you
chose options 1 are you really forking Shindig, or just injecting your own
implementations?  The two are very different.

I am a little confused about your comments about the activity stream
implementation.  As far as I know it is a complete implementation, do you
have specifics on what you think is missing?

Between the Rave and Shindig community I am sure we can help you figure out
which project is best for your use cases.  The Shindig community will
welcome any contributions you want to make in order to help Shindig fit your
use cases better and we would be glad to help explain any of the current
features you have questions about.  A lot of us have gone through some
extensive implementations and we realize the documentation around some of
the feature is lacking.

As far as the OpenSocial spec your contributions will be welcomed there as
well, especially if you provide an implementation for it :)

-Ryan

On Thu, Jul 12, 2012 at 11:25 AM, René Peinl rene.pe...@hof-university.de
wrote:
 Dear Shindig developers,

 I’m working together with my colleague Florian on a systems 
 integration research project that brings together a DMS, a groupware 
 system, an ERP system in an Intranet scenario and adds social media 
 capabilities under the hood of a central lightweight portal (see 
 requirements overview at the end of the email).



 For the portal, we are planning to use Shindig as the central 
 component and maybe Rave as a basis  for the presentation layer. Since 
 social media data is inherently graph-oriented, we are planning to use 
 neo4j as the storage engine for Shindig (and maybe Rave as well). 
 Florian has already implemented a draft of this neo4j storage layer 
 which works well for some sample data that we have generated (if 
 anyone is interested we can provide the sample data and the generator 
 for it), but due to simplicity reasons and to avoid additional 
 conversion operations in between the storage layer is currently not 
 using JPA, but directly writing the objects to the database (replacing
e.g. both PersonImpl and PersonDB).



 Lately, we have discovered Rave and found out that despite its close 
 integration with Shindig it uses its own database abstraction and 
 partly competing implementations for classes that are already present in
Shindig.
 For example there is rave.portal.model.Person which uses JPA to store 
 a (incomplete compared to OpenSocial 2.0 specs) person object in the 
 database and there is shindig.social.opensocial.jpa.PersonDB which 
 does the same, but seems like a complete implementation of the fields 
 defined in OpenSocial 2.0.



 My goal is to better understand the decisions behind the current 
 implementation of both Shindig and Rave (I’ve posted a similar 
 question on the Rave mailing list) in order to find a solution for our 
 project that lets the Apache community benefit as much 

AW: Shindig neo4j backend

2012-07-12 Thread René Peinl
Hi,
thanks for all the good suggestions. 
One last question for the moment: how exactly do we contribute our code?
Should we open a Jira issue and attach the sources?
Maybe there are new suggestions, once you've seen our code.
Regards
René

-Ursprüngliche Nachricht-
Von: Henry Saputra [mailto:henry.sapu...@gmail.com] 
Gesendet: Freitag, 13. Juli 2012 07:17
An: dev@shindig.apache.org
Betreff: Re: Shindig neo4j backend

Hi,

Thanks for the interest at Apache Shindig and Rave projects.

Let me try to help answering some concerns and questions you have and maybe 
other people in the community could chime in.

Looks like Apache Rave provides model database abstraction that allow plug and 
play to relational database.

The Shindig's JPA implementation is just for sample/demo purpose. The only 
implementation of the OpenSocial model is only POJO classes.
Backing the data storage with Neo4J sounds like awesome idea and I believe 
should be more fitting for the social links for the OpenSocial data.

As for activitystrea.ms implementation in Shindig, its fully implemented based 
on the JSON 1.0 for JavaScript and Java components.
Shindig also support PHP for the server side but the implementation is far 
behind the Java counterpart.

For portal solution proposal, I would recommend using Rave as the front end and 
management module and rebind the data model with Neo4J.
Contributing back to either Rave and Shindig is welcomed and encouraged =)

Hope this helps.

Looking forward for contributions and awesome project with you guys.

- Henry

On Thu, Jul 12, 2012 at 8:25 AM, René Peinl rene.pe...@hof-university.de 
wrote:
 Dear Shindig developers,

 I’m working together with my colleague Florian on a systems 
 integration research project that brings together a DMS, a groupware 
 system, an ERP system in an Intranet scenario and adds social media 
 capabilities under the hood of a central lightweight portal (see 
 requirements overview at the end of the email).



 For the portal, we are planning to use Shindig as the central 
 component and maybe Rave as a basis  for the presentation layer. Since 
 social media data is inherently graph-oriented, we are planning to use 
 neo4j as the storage engine for Shindig (and maybe Rave as well). 
 Florian has already implemented a draft of this neo4j storage layer 
 which works well for some sample data that we have generated (if 
 anyone is interested we can provide the sample data and the generator 
 for it), but due to simplicity reasons and to avoid additional 
 conversion operations in between the storage layer is currently not 
 using JPA, but directly writing the objects to the database (replacing e.g. 
 both PersonImpl and PersonDB).



 Lately, we have discovered Rave and found out that despite its close 
 integration with Shindig it uses its own database abstraction and 
 partly competing implementations for classes that are already present in 
 Shindig.
 For example there is rave.portal.model.Person which uses JPA to store 
 a (incomplete compared to OpenSocial 2.0 specs) person object in the 
 database and there is shindig.social.opensocial.jpa.PersonDB which 
 does the same, but seems like a complete implementation of the fields 
 defined in OpenSocial 2.0.



 My goal is to better understand the decisions behind the current 
 implementation of both Shindig and Rave (I’ve posted a similar 
 question on the Rave mailing list) in order to find a solution for our 
 project that lets the Apache community benefit as much as possible 
 from our efforts, without burdening our project too much with 
 non-project-specific requirements.



 The options we have (from my perspective) are as follows

 1)  Kind of forking the Shindig project and using our own neo4j backend
 and not using Rave

 2)  Going one step further and integrating Rave with our own neo4j
 Shindig backend and eliminate the duplicate classes

 3)  Trying to use SpringData JPA abstraction layer for neo4j and
 providing some extended functionality in own classes (e.g. a 
 friend-of-a-friend query could be implemented with relational DBs as 
 well, but doesn’t make too much sense due to performance reasons) and 
 hoping that the Rave and Shindig community are helping us to eliminate 
 the duplicate implementations on JPA level.



 All options have their pros and cons and I’d really like to hear your 
 opinion on that. If you have the feeling that our project idea is very 
 specific and you don’t see any use for the results in your scenarios 
 than it may be better for both sides if we are building a fork. On the 
 other hand, if you think that the principle idea behind our project 
 would be beneficial for your scenarios as well, we would be happy to work 
 together on that.
 We need e.g. some of the missing OpenSocial 2.0 features like full 
 activitystrea.ms support on the data layer, which is currently not 
 given in Shindig 2.5 beta2 
 (https://issues.apache.org/jira/browse/SHINDIG-1536),