On Tue, May 10, 2011 at 08:56:04AM -0700, Mark Diggory wrote:
> 
> On May 10, 2011, at 7:23 AM, Mark H. Wood wrote:
> 
> > On Tue, May 10, 2011 at 01:38:52PM +0100, Robin Taylor wrote:
> > [snip]
> >> Whilst editing a pom is an option for developers who are familiar with
> >> the DSpace Maven infrastructure I think we need to come up something
> >> much more user friendly. In the UK at least most sites do not have a
> >> dedicated repo developer. I also suspect most sites take the code from
> >> the downloadable zip and never go near SVN. There is already a Jira
> >> issue from the DCAT group asking for an install process that doesn't
> >> require the installer to get involved with Maven and Ant. I think we
> >> risk alienating a section of the community if we don't provide an easy
> >> mechanism to add modules and/or find the source code. This is not an
> >> insurmountable problem, we just need to figure out some good solutions.
> >> I'm looking forward to seeing Tim's Installer, it might spark off some
> >> good discussions.  
> > 
> > Yes.  Sites that don't want to alter DSpace shouldn't need to even
> > *have* Maven or Ant:
> > 
> > 0.  install servlet container and DBMS if you don't already have them
> > 1.  cd DSPACE_HOME
> > 2.  unzip /path/to/DSPACE-CORE-PACKAGE
> > 3.  unzip /path/to/SOME-ADDON-PACKAGE
> 
> Addons have dependencies that need to be "Resolved" and 
> "prioritized/selected" so it has to be more than an "unzip". MAven does this 
> transitive analysis for us, thus its important.

Addons are *built* against the code the add onto, so won't this happen
at build time?  At install time they just drop in, if properly
organized.  We can document the meaning of "properly organized".

> > ...
> > 4.  ./bin/dspace create-administrator
> > 5.  tell your servlet container to look in DSPACE_HOME/webapps/YOUR-CHOICE
> > 6.  login to the repo. as administrator and configure
> > 7.  kick the servlet container to restart the repo. (if necessary)
> 
> I actually think we can do away witht he above by carrying the container 
> inside the dspace installation.  We have a case in CSU where we do this, you 
> can put the container+dspace anywhere you want to without having to alter 
> dspace.cfg to run it because we set everything as relative paths to the JAVA 
> working directory (in this case [dspace.dir]/bin

Eww.  I *hate* finding there's a whole web server inside some thing I
wanted to plug into the web server that I already had running.  While
an all-inclusive package may appeal to some, I would choose another
packaging.

> > Step 5 might include specifying the DBMS connection, since either that
> > or the value of DSPACE_HOME will have to be provided to the webapp(s)
> > from the outside.
> 
> This is the tough one... but combined with my previous comment, running a 
> native or in-memory java rdbms would make the configuration of a database not 
> a requirement for install.

This part is ridiculously simple in Tomcat:

 $ cat /etc/tomcat-6/Catalina/localhost/mhw#trunk-1.7#xmlui.xml
<Context
    docBase='/home/mwood/dspaces/trunk-1.7/webapps/xmlui'>

  <Parameter
    description='Path to the DSpace configuration file.'
    override='false'
    name='dspace-config'
    value='/home/mwood/dspaces/trunk-1.7/config/dspace.cfg'
   />

  <Resource
    name='jdbc/dspace'
    description="DBMS connection pool for DSpace's database"
    type='javax.sql.DataSource'
    factory='org.apache.commons.dbcp.BasicDataSourceFactory'
    auth='Container'
    username='foo'
    password='baz'
    driverClassName='org.postgresql.Driver'
    url='jdbc:postgresql://localhost:5432/mhw-trunk-1.7'
    maxActive='30'
    maxIdle='-1'
    maxWait='5000'
   />

</Context>

The above is running right now (except that those aren't the real DBMS
credentials).  It provides everything DSpace needs to know to find itself.

Okay, it doesn't *look* simple, but most of it is boilerplate.  A
path, two class names, a database name, a user name, and a password
are all that need vary until you know your way around the product.
Tell the installer program which DBMS you use and it supplies the
class names, which are the only bits you might not know.

Drop one of those where Catalina looks for them, and it starts.
'touch' it and the app. restarts.

-- 
Mark H. Wood, Lead System Programmer   mw...@iupui.edu
Asking whether markets are efficient is like asking whether people are smart.

Attachment: pgp0hA6WRMYHv.pgp
Description: PGP signature

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to