On Feb 4, 2009, at 3:47 PM, Thornton, Susan M. (LARC-B702)[NCI INFORMATION SYSTEMS] wrote:

I think I’m still missing a piece of the puzzle though since my modified .java program is NOT making it into the dspace- api-1.5.1.jar file in /dspace/lib.

I have added the new sub-directory custom-api and file pom.xml file under {dspace-source}/dspace/modules. I added the following to {dspace-source}/dspace/modules/pom.xml: <module>custom-api</module> (I also commented out the xmlui, lni, oai, and sword modules in this pom.xml file (for the time being until we are using them, as per your suggestion)).
I added the following to {dspace-source}/dspace/pom.xml:
<profile>
         <id>custom-api</id>
         <activation>
            <file>
               <exists>../custom-api/pom.xml</exists>
            </file>
         </activation>
         <modules>
            <module>../custom-api</module>
         </modules>
      </profile>

this is where you are getting caught. what you need here is not a "profile" with "module", but a dependency, which will look like

<dependency>
<artifactId>custom-api</artifactId>
<groupId>org.dspace.modules</groupId>
<version>1.5.1</version>
</dependency>

within the <dependencies> section. This will cause the custom- api-1.5.1.jar to added within your "lib"



I think the trick is WHERE to put my custom .java program so that it will be picked up and put in the right place in the application once it’s compiled.


Take this example:

Let’s say I make a modification to:

dspace-1.5.1-src-release/dspace-api/src/main/java/org/ dspace/app/mediafilter/PDFFilter.java

Do I put it in:
Dspace-1.5.1-src-release/dspace/modules/src/main/java/ org/dspace/app/mediafilter/PDFFilter.java ????


And is the package in my new PDFFilter.java still package org.dspace.app.mediafilter;

I’m thinking maybe not since I just saw this in the pom.xml file you attached to your email last night: <groupId>org.dspace.modules</ groupId>

Do I need to create a {dspace-source}/custom-api directory??

Please forgive me – this is the first time I have worked with pom.xml files!

Thanks for experimenting with this. It can be a challenge at first. no, you do not need to create that second project {dspace-source}/ custom-api.

Likewise, initially, just use the same package name for the moment. Lets just verify you get what you want in {dspace-source}/dspace/ target/dspace-1.5.1-build.dir/lib

Mark



Thanks!
Sue

From: Diggory Mark [mailto:[email protected]]
Sent: Tuesday, February 03, 2009 5:24 PM
To: Thornton, Susan M. (LARC-B702)[NCI INFORMATION SYSTEMS]
Cc: dspace-tech
Subject: Re: [Dspace-tech] Local modifications to DSpace .java programs, in 1.5.1

Or to be more explicit you add the pom at

{dspace-source}/dspace/modules/custom-api/pom.xml

and modify the following with <module>custom-api</module>

{dspace-source}/dspace/modules/pom.xml

And add custom-api as a dependency in

{dspace-source}/dspace/pom.xml

Mark

On Feb 3, 2009, at 2:14 PM, Diggory Mark wrote:


no

On Feb 3, 2009, at 2:06 PM, Thornton, Susan M. (LARC-B702)[NCI INFORMATION SYSTEMS] wrote:


Do I need to modify {dspace-source}/pom.xml ??

From: Diggory Mark [mailto:[email protected]]
Sent: Tuesday, February 03, 2009 4:10 PM
To: Thornton, Susan M. (LARC-B702)[NCI INFORMATION SYSTEMS]
Cc: dspace-tech
Subject: Re: [Dspace-tech] Local modifications to DSpace .java programs, in 1.5.1

Susan,

The way to do it without altering the code in place requires creating a custom maven project within the dspace/modules/ directory, wiring it into the dspace/pom.xml and dspace/modules/ pom.xml so that it compiles into the build process.

At this point, I'm seeing community member using both approaches, and I'm unsure which I would most recommend. But here's what I try to approach as a best practice.

1.) I don't like to alter code in place in dspace-api, dspace-xmlui or any of those projects unless I intend to contribute it into the next release of DSpace 1.5.x

2.) Keeping all those projects around lengthens the build process and if your not using all of them (dspace-sword, lni, etc) thats a lot of compile time for nothing.

3.) Once configured properly, your changes in dspace/modules/xxx will always be separate from the rest of the codebase, but you will still need to verify that upgrades don't break your customizations by comparing your code to the original. Something we continue to strive to get away from.

So I would recommend the following steps:

a.) create a dspace/modules/custom-api/pom.xml for your api changes. That looks something like the attached pom.xml


~~~~~~~~~~~~~
Mark R. Diggory
http://purl.org/net/mdiggory/homepage




~~~~~~~~~~~~~
Mark R. Diggory
http://purl.org/net/mdiggory/homepage




~~~~~~~~~~~~~
Mark R. Diggory
http://purl.org/net/mdiggory/homepage



------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
DSpace-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-tech

Reply via email to