On Wed, Apr 6, 2011 at 6:10 AM, Mark H. Wood <mw...@iupui.edu> wrote: > On Tue, Apr 05, 2011 at 09:46:26AM -0700, Mark Diggory wrote: >> Recommendations are that a web ui (and specifically the XMLUI is of >> interest in this case) be constructed not on the "Xml files" >> themselves, but utilizing the DSpace Configuration Service. > > So is the Configuration Service able to represent *structured* values > in an effective and comprehensible fashion, as opposed to the horrid > mess that we sometimes get when trying to cram them into Properties > format using the old ConfigurationManager?
No, it doesn't at the moment. But switching over to XML is even more of a nightmare, ATM. It will just introduce more "custom parsing" approaches like we have in various classes now. the goal of the 2.0 work and the use of the service manager was an attempt to consolidate "custom" parsing. > > If not, and there's a need to serialize the resulting in-memory > structures without a lot of fuss, we might want to look at (say) JAXB > in cases where we need to express some kinds of complex relationships. Your heading in the right direction with the wrong technology. Spring is JAXB in reverse, rather than binding custom XML to Java objects, we use a standardized XML (or Java annotations) to wire together a series of existing Java Beans. Because of this, there is no "binding" that needs to be maintained, Spring already manages that, this is what I was doing the best I could to reflect in my tutorial example here: https://wiki.duraspace.org/display/DSPACE/The+TAO+of+DSpace+Services In this can there is no longer a need to worry about mapping/parsing XML to bind a the Launcher commands to, its just spring and done at runtime config by the service manager. We want the same application at all the levels of the configuration... major portions of what are in dspace/config would/should be redressed as spring configuration. Likewise, we should consider ( and this is a direct concept from the original DSpace 2.0 SimpleStorageService work) that we will want to associate configuration with the Domain Model Entities, and that its the structural framework we seek to align with. If you look throughout the configuration what you see are three types of abstraction a.) properties of a plugin b.) wiring of plugins into a service c.) associating a service/plugin with a DSpace entity (Community, Collection, Item) for (a) and (b) the Spring based Service Manager with associated Configuration Service is sufficient. The takes the need to configure DI in the dspace.cfg altogether because you do it in a more flexible "spring" approach. Thats a considerable amount of hierarchy eliminated or place under the management of Spring. for (c) we should work on the Domain Model such that we can attach properties as attributes of DSpaceObjects and thus if you review configurable submission, configurable reviewer workflow, curation tools, discovery configuration, etc you will find components in each that should be properties attached to the DSpace Domain Model Entities. We will ultimately end up with the question being, what from our current legacy configuration is attached to the Domain Model via db configuration and what gets sent to Spring configuration as wiring of the application. As a strong example, I would take the InputForms and consider that there are two components, (1) validation/schema that should be associated with the Item being created and (2) a set of form fields that are more associated with a "view" in the user interface. However, we really start to rethink what is"Domain Model" and "What is Service" when we dig into the Submission and Reviewer Workflows, here, depending on direction, we end up with two completely different treatments, just taking CS we have: (1) the assignment of a submission workflow to a collection. (2) the assignment of steps to a workflow id (3) the configuration of the capabilities of a step (inputforms and dspace.cfg) Treatment A : Make it a legitimate Domain Model We can treat the whole as Domain Model (which is appropriate given submission is at the heart of DSpace). If we do so, we end up with: (2) is a new Domain Model where, for the legacy case, we actually crete new database tables and DAO bindings for the Submission Workflow Steps. (1) is a Domain Model Association of workflow2collection (3) are simple configuration properites attached to the Collection and/or workflow and step entities. Treatment B : Make it all Service Manager / Spring based. (2) is treated as a set of steps wired in spring configuration (1) are simple properties on the Collection entities associating the workflow with the collection (3) are simple properties on the Collection and/or workflow and step entities. (requires more hierarchical config) This is a simpler design then Treatment A to get into place, but still puts configuration of workflow in the developer hands. Ultimately Treatment A takes a little more thought and work, but the payoff to the community is much more significant and it ultimately is the right choice. Theres a great deal of opportunity here if we get the design right from the get-go. What I am really trying to emphasize to the group is that you need to think out the overall DSpace design goals and strategy rather than focusing in on hacking little areas of the codebase, we should avoid custom parsing, likewise we should recognize that we have historically taken on a strategy for solving customizations to DSpace that is pigeonholing our application design, and that this approach selects for not creating or altering the true Domain Model for DSpace in favor of individual, unique and messy on the spot solutions that meet a local need. The later are like a cancer on an originally clean DSpace design. I really think the core committer groups responsibility to achieve a consensus on approaches that should/will be allowed to be contributed to DSpace and thus mediate the danger of these narrow vision micro-solutions continuing to propagate. Mark -- Mark R. Diggory @mire - www.atmire.com 2888 Loker Avenue East - Suite 305 - Carlsbad - CA - 92010 Technologielaan 9 - 3001 Heverlee - Belgium ------------------------------------------------------------------------------ Xperia(TM) PLAY It's a major breakthrough. An authentic gaming smartphone on the nation's most reliable network. And it wants your games. http://p.sf.net/sfu/verizon-sfdev _______________________________________________ Dspace-devel mailing list Dspace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dspace-devel