My own 2 cents to this discussion...

On 3/31/2011 5:08 AM, Graham Triggs wrote:
> My turn!!
>
> I'm certainly in favour of having [more] POJO services / components, and
> using Spring as a container for them.
>
> Now, to address some of the practicalities. I still say that what we
> have now is back-to-front, and unnecessarily complex. The Spring
> configurations should be loaded at the root of the application (not
> embedded within the Service manager), and a factory-aware bean should be
> instantiated by the configuration for means of providing the static
> hooks to legacy code. That makes it a lot easier to adjust the
> configurations, and wire the core services into other areas of code (eg.
> WebMVC controllers), as well as simply removing a bunch of code that we
> otherwise need to maintain.
>
> Mark mentioned 'shadowy stuff', and it's fair enough to say that Maven
> is doing its own thing. But that isn't really why they haven't been
> noticed - the point is that they are 'off to the side' in the modules
> directory, and not part of trunk where everyone is looking. We are
> always going to have dependencies where we don't routinely examine their
> source. But the Services framework (and other 'core' functions that are
> currently in modules) is something that we need people to inspect,
> maintain, and engage with.
>
> We either need to find a way to get people engaging with asynchronous
> modules, or accept that they need to be part of trunk (and by extension,
> part of a synchronous release). Asynchronous modules that do not have a
> sufficient quorum engaging with are going to be a sustainability problem.

I agree with Graham's points completely. We need to find ways to get 
people engaging with asynchronous modules more, and potentially bring 
some of the "core functions/modules" into Trunk.

I've been bouncing around an idea in my head which may or may not help 
with this, around a possible way to "rethink" asynchronous releases (and 
I'm aware this is not entirely part of "commitment to Services", but 
it's worth mentioning based on the direction of this thread):

https://wiki.duraspace.org/display/DSPACE/Asynchronous+Release+-+Alternative+Option

I would love feedback or alternative ideas from you all -- this is 
merely a brainstorm, and not necessarily "fully fleshed out". But, I 
thought I'd share it as an alternative way to look at asynchronous 
modules and potentially how we deal with Services in the future (e.g. my 
general idea is to suggest Services be moved to Trunk where they are 
released 'synchronously' alongside the rest of the "core" api/functions, 
but that other modules be potentially moved *out* of Trunk.)

> Addressing Robin's point, Services framework does not necessarily imply
> everything in that list. It is a necessary building block for things
> like modularisation and asynchronous releases, but it we don't have to
> adopt them if we use the Services framework.

+1

Services Framework commitment/approval should be considered *separate* 
from all those other proposals like modularization & asynchronous 
releases.  There is some overlap that will probably occur in these 
various discussions, but they actually don't have any real concrete 
dependencies.  In other words, Services Framework could be released 
synchronously or asynchronously. It could also be released as a separate 
module, or moved into dspace-api.

Currently Services is obviously set up as a separate module in SVN 
"modules/dspace-services" area under the implication that it may be 
asynchronously released at all times.  But, we can decide to change any 
of those previous decisions as we see fit.  (Again, See my brainstormed 
"Asynchronous Release - Alternative" proposal above for an idea around 
potentially releasing Services Framework *synchronously*)

> Source code accessibility is a concern, but I feel that I covered that
> above. Maven is pretty much a standard tool for Java development these
> days, so whilst it can intimidate I don't see that it is really problem
> for anyone that does intend to get at source code (as opposed to a
> binary release, where they may just be changing configuration files and
> templates within an installation).
>
> But they do need to know what Maven project(s) they should be
> interacting with, and that is what I have yet to see, or be able to
> propose, with the modules area.

I'm sure there are improvements we can make in trying to make the source 
code easier to work with. :)

But, as Graham mentions, Maven is probably not going away anytime soon. 
It has become a "standard" tool in most major Java projects these days.

We can however work to make SVN organization / Maven modules more 
"logical" to work with, so that it's clearer to developers where they 
need to look for particular Source Code.  I personally think this should 
be a goal of any modularization / Maven restructuring that we do.

In other words: We need to make source code easier to work with (or at 
least more logical), and not add unnecessary complications or 
frustrations to our development processes.

Just my quick thoughts on this. Definitely feel free to disagree with 
anything I've said. I want this to be an open discussion of ideas, so 
that we can continue to work quickly towards a common decision around 
many of these proposals/vague ideas that have been hanging around for 
far too long.

- Tim

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to