Re: Refactoring (for merge) and APIs
Adam R. B. Jack wrote: 1) Resource -> Artifact: It will not be trivial, but we could rename Resource to be Artifact to ease a merge with Avalon Repository (and since Artifact has started to become a recognized term). +1. Shouldn't be to difficult using IDEA. I'd be happy to do the work if the source is in CVS. I'll give it a go if the source is in SVN but can't promise anything - I've not used SVN (other than to play with) before. BTW, *where* is the source? BTW: I've started to create a page for terms (as Nick suggested): http://wiki.apache.org/incubator/DepotTerminology I'd like to suggest three others: Java Artifact (AFSRepository specification defines more than just jars in the repository) Depot Artifact - artifact that can be manipulated by Depot Update(r) - see below I'd been told that a good API has the main classes in the root package, i.e. in org.apache.depot.update. That I can believe. Trouble is, the 'Updater' project is focused towards Updating, so we put ResourceUpdater there. Maybe we need to add Artifact/Repository, and move ResourceUpdater to a separate client package (or separate project). Thoughts? I thought that update was a seperate project. Ah, do you mean that Updater and Artifact are in the same package? If so, then I agree that there should be a seperate core or artifact package. -- Michael
[GUMP@brutus]: depot/depot-update-test failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact folk at [EMAIL PROTECTED] Project depot-update-test has an issue affecting its community integration. Project State : 'Failed', Reason 'Build Failed' Full details are available at: http://brutus.apache.org:8080/gump/depot/depot-update-test/index.html That said, some snippets follow: The following annotations were provided: -INFO- Enable "verbose" output, due to 1 previous error(s). -INFO- Failed with reason build failed -INFO- Enable "debug" output, due to build failure. -INFO- Project Reports in: /usr/local/gump/public/workspace/depot/update/build/depot-update/junit/results The following work was performed: http://brutus.apache.org:8080/gump/depot/depot-update-test/gump_work/build_depot_depot-update-test.html Work Name: build_depot_depot-update-test (Type: Build) State: Failed Elapsed: 0 hours, 0 minutes, 20 seconds Command Line: java -Djava.awt.headless=true -Xbootclasspath/p:/usr/local/gump/public/workspace/xml-xerces2/java/build/xercesImpl.jar:/usr/local/gump/public/workspace/xml-xerces2/java/build/xml-apis.jar org.apache.tools.ant.Main -verbose -Dgump.merge=/usr/local/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Dant.home=/usr/local/gump/public/workspace/ant/dist -f build.xml test [Working Directory: /usr/local/gump/public/workspace/depot/update] CLASSPATH : /usr/local/j2sdk1.4.2_04/lib/tools.jar:/usr/local/gump/public/workspace/depot/update/build/depot-update/junit/classes:/usr/local/gump/public/workspace/depot/update/dist/depot-update-gump-20040622.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-stylebook.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/depot/version/dist/depot-version-gump-20040622.jar:/usr/local/gump/public/workspace/depot/common/dist/depot-common-gump-20040622.jar:/usr/local/gump/public/workspace/antworks-importer/dist/antworks-importer-0.1-gump-20040622.jar:/usr/local/gump/public/workspace/jakarta-servletapi/dist/lib/servlet.jar:/usr/local/gump/public/workspace/jakarta-regexp/build/jakarta-regexp-20040622.jar:/usr/local/gump/public/workspace/ant/bootstrap/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/bootstrap/lib/ant.jar:/usr/local/gump/public/workspace/jakarta-commons/httpclient/dist/commons-httpclient.jar:/usr/local/gump/public/workspace/jakarta-commons/codec/dist/commons-codec-20040622.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api.jar:/usr/local/gump/public/workspace/commons-vfs/target/commons-vfs-20040622.jar:/usr/local/gump/public/workspace/ant/build/lib/ant-testutil.jar:/usr/local/gump/public/workspace/dist/junit/junit.jar:/usr/local/gump/public/workspace/xmlunit/lib/xmlunit-20040622.jar- at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult(JUnitTask.java:1460) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:698) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1426) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:646) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:95) at org.apache.tools.ant.Task.perform(Task.java:366) at org.apache.tools.ant.Target.execute(Target.java:341) at org.apache.tools.ant.Target.performTasks(Target.java:369) at org.apache.tools.ant.Project.executeTarget(Project.java:1212) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:383) ... 15 more --- Nested Exception --- /usr/local/gump/public/workspace/depot/update/build/work/junit/test.xml:7: Test org.apache.depot.update.ant.CachedResourceSetTaskTest failed at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult(JUnitTask.java:1460) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTas
[GUMP@brutus]: depot/depot-update success
To whom it may satisfy... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact folk at [EMAIL PROTECTED] Project depot-update *no longer* has an issue. Project State : 'Success' Full details are available at: http://brutus.apache.org:8080/gump/depot/depot-update/index.html That said, some snippets follow: The following annotations were provided: -DEBUG- Sole jar [depot-update-gump-20040622.jar] identifier set to project name -INFO- Dependency on ant exists, no need to add for property ant.home. -INFO- Enable "verbose" output, due to 1 previous error(s). -INFO- No license on redistributable project with outputs. The following work was performed: http://brutus.apache.org:8080/gump/depot/depot-update/gump_work/build_depot_depot-update.html Work Name: build_depot_depot-update (Type: Build) State: Success Elapsed: 0 hours, 0 minutes, 8 seconds Command Line: java -Djava.awt.headless=true org.apache.tools.ant.Main -verbose -Dgump.merge=/usr/local/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Dant.home=/usr/local/gump/public/workspace/ant/dist -DDATE_STAMP=20040622 -f build.xml gump [Working Directory: /usr/local/gump/public/workspace/depot/update] CLASSPATH : /usr/local/j2sdk1.4.2_04/lib/tools.jar:/usr/local/gump/public/workspace/depot/update/build/depot-home/classes:/usr/local/gump/public/workspace/ant/dist/lib/ant-stylebook.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/depot/version/dist/depot-version-gump-20040622.jar:/usr/local/gump/public/workspace/depot/common/dist/depot-common-gump-20040622.jar:/usr/local/gump/public/workspace/antworks-importer/dist/antworks-importer-0.1-gump-20040622.jar:/usr/local/gump/public/workspace/jakarta-servletapi/dist/lib/servlet.jar:/usr/local/gump/public/workspace/jakarta-regexp/build/jakarta-regexp-20040622.jar:/usr/local/gump/public/workspace/ant/bootstrap/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/bootstrap/lib/ant.jar:/usr/local/gump/public/workspace/jakarta-commons/httpclient/dist/commons-httpclient.jar:/usr/local/gump/public/workspace/jakarta-commons/codec/dist/commons-codec-20040622.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api.jar:/usr/local/gump/public/workspace/commons-vfs/target/commons-vfs-20040622.jar- [jar] adding entry org/apache/depot/update/util/reference/ReferenceProxy.class [jar] adding entry org/apache/depot/update/util/reference/ReferenceTable.class [jar] adding directory org/apache/depot/update/util/regexp/ [jar] adding entry org/apache/depot/update/util/regexp/RegularExpression.class [jar] adding entry org/apache/depot/update/util/regexp/RegularExpressionHelper.class [jar] adding entry org/apache/depot/update/util/regexp/RegularExpressionSelector.class [jar] adding directory org/apache/depot/update/util/security/ [jar] adding entry org/apache/depot/update/util/security/ChkSum.class [jar] adding entry org/apache/depot/update/util/security/HashCodeManager.class [jar] adding directory org/apache/depot/update/util/select/ [jar] adding entry org/apache/depot/update/util/select/AllSelector.class [jar] adding entry org/apache/depot/update/util/select/CompositeSelector.class [jar] adding entry org/apache/depot/update/util/select/ISelectable.class [jar] adding entry org/apache/depot/update/util/select/ISelector.class [jar] adding entry org/apache/depot/update/util/select/SelectionHelper.class [jar] adding entry org/apache/depot/update/util/select/SelectorHandlerChain.class [jar] adding directory org/apache/depot/update/util/select/logic/ [jar] adding entry org/apache/depot/update/util/select/logic/AndSelector.class [jar] adding entry org/apache/depot/update/util/select/logic/BooleanSelector.class [jar] adding entry org/apache/depot/update/util/select/logic/NotSelector.class [jar] adding entry org/apache/depot/update/util/select/logic/OrSelector.class [jar] adding directory org/apache/depot/update/util/text/ [jar] adding entry org/apache/depot/update/util/text/MessageConstants.class [jar] adding entry org/apache/depot/update/util/text/Messages.class [jar] adding directory org/apache/depot/update/util/xml/ [jar] adding entry org/apache/depot/update/util/xml/IXMLAttrib
Re: Reviewing Avalon & Depot Code bases
Thanks, and no stress (I need to find some time for family/EMT school/work/Gump, so I'll appreciate discussions not being too busy.) Also, maybe I can find some time to put Depot's house in order prior to a merge. Thanks for the impetus... regards Adam - Original Message - From: "Niclas Hedhman" <[EMAIL PROTECTED]> To: "Depot Development" <[EMAIL PROTECTED]> Sent: Tuesday, June 22, 2004 12:56 PM Subject: Re: Reviewing Avalon & Depot Code bases > On Tuesday 22 June 2004 23:14, Adam R. B. Jack wrote: > > I did a quick review (and I say quick, so please correct me where I am > > wrong). This is what I found: > > Just want to give you the nod, that I am happy to see your effort, and at > large concur with your assessment. > I will comment more in details when I have arrived to the USA, as I am leaving > in a few hours, and need to get some sleep (among other things). > So don't be alarmed that I will 'offline' for two days or three... > > > Cheers > Niclas > -- >+--//---+ > / http://www.bali.ac/ > / http://niclas.hedhman.org / > +--//---+ >
Refactoring (for merge) and APIs
1) Resource -> Artifact: It will not be trivial, but we could rename Resource to be Artifact to ease a merge with Avalon Repository (and since Artifact has started to become a recognized term). BTW: I've started to create a page for terms (as Nick suggested): http://wiki.apache.org/incubator/DepotTerminology BTW: I figured a similar page for design objectives/tenets would help communicate: http://wiki.apache.org/incubator/DepotDesign Can anybody think of any others? BTW: We need to get Javadocs for the projects up onto the sites, I think this'll help us see things from 30 thousand feet, and hence seen similarities/differences. 2) APIs I'd like help on how we craft a good API, how we keep it clear and simple. One problem (as I've noted) is we have all aspects of our code muddled into one source folder, so we have to rely upon package names to help us separate & that isn't enough. Maybe without this we need Javadoc help, or something (Wiki/whatever). I'd been told that a good API has the main classes in the root package, i.e. in org.apache.depot.update. That I can believe. Trouble is, the 'Updater' project is focused towards Updating, so we put ResourceUpdater there. Maybe we need to add Artifact/Repository, and move ResourceUpdater to a separate client package (or separate project). Thoughts? Also, we have things like FileAssistent/FileUpdater (and ClasspathUpdater) these are higher level 'helpers' for working with ResourceUpdater. Ought they be in a separate package, so they don't clutter the main access point? Are they even needed -- or ought our resource API be simple enough they aren't? Could these be samples? All input on how to cleanup/make an API appreciated... regards Adam -- Experience the Unwired Enterprise: http://www.sybase.com/unwiredenterprise Try Sybase: http://www.try.sybase.com
Re: Reviewing Avalon & Depot Code bases
On Tuesday 22 June 2004 23:14, Adam R. B. Jack wrote: > I did a quick review (and I say quick, so please correct me where I am > wrong). This is what I found: Just want to give you the nod, that I am happy to see your effort, and at large concur with your assessment. I will comment more in details when I have arrived to the USA, as I am leaving in a few hours, and need to get some sleep (among other things). So don't be alarmed that I will 'offline' for two days or three... Cheers Niclas -- +--//---+ / http://www.bali.ac/ / http://niclas.hedhman.org / +--//---+
Reviewing Avalon & Depot Code bases
All, I did a quick review (and I say quick, so please correct me where I am wrong). This is what I found: The Avalon codebase is simple -- and that is a major plus, no clutter, no fuss. The approach is nicely broken into separate source directories (which helps illustrate the separations) such as API, SPI (Repository Plug-In), Impl, Util. The fundamental classes are Artifact and Repository (which map directly to Resource and Repository in Depot, and are coded *almost* identically.) Basically, I see *immense* similarities -- starting with basic design approach & implementation choices. [One plus include similar coding style ... one less niggly 'discontinuity' for us to hold noses to, through with a merge.] I do see some Avalon code in there. I do see some 'Classloader' code (at lower levels, e.g. in Repository) and that we can discuss/negotiate over. I see some reference to security, but I'm not sure if that is Avalon security or JDK or whatever. I'd like to learn. In short, I see the same intentions/approaches, just minor (perhaps) implementation differences (e.g. API choices, Factory implementations, configuration, etc.) I think we can explore the pros and cons of each choice and select the better on a case by case basis. I remain of the opinion that we can import Avalon Repository into a classloader project, refactor it & run it over some Depot core classes. Those Depot classes would either be (originally) Avalon Repository classes, or would have the 'required features' merged into them. That core could be called 'Update' (as it is today) or we could split off a core (simply the layer that Stephen mentioned yesterday). As I see it Depot Update has most of what Avalon Repository has -- albeit cluttered/unclear (and not all completed nor needed.) I think we need to pick apart this code so that we have a lean/mean core -- not a cluster. I think the task of teaching the Avalon folks about the Depot codebase will really helps us clarify what we want/what we need and what we can trim. [When reviewing things yesterday I got clear (after many months) on all our pieces, and it helped me.] Here is what I see Depot Updater has in addition: - Protocol code over java.net.URL or HtppClient or VFS. [Which is loaded depends upon the environment. Might be a portability (over CLs) issue, might be cool.] - Ant Tasks/Types (and some Tools) [These are used by AntWorks.] - More commandline tools (for Gump etc) - Logging (listener abstraction, so we can plug in to Ant or CL or Avalon or ...) - Utility classes (File interface (creates Resources) to/from Updater..) - Monitoring (listener pattern, stats collectors, stdout loggers, etc.) Some higher level capabilities (based upon understanding the data): - Repository Queries (with Selectors/Comparators) - Version Parsing (and hence ordering, selection of 'best') [We can discuss if these out be in a separate project.] Some dodgy (incomplete) clutter: - XML Configuration system (albeit incomplete). - XML deserialization/serialization (albeit incomplete). [There was a rationale here, I can discuss in a separate mail.] Basically, I feel that the Depot code has a lot more -- but I think that has hindered it, rather than helped. Develops are lost in the internals before it is complete, and we need to remove the clutter. BTW: I see the biggest problem ahead as either picking a build system, and/or picking a hierarchy that all three can live with (Maven -- still needed, Magic -- wanted here?, AntWorks -- has source folder issues). I hope we can find a simple solution. regards, Adam -- Experience the Unwired Enterprise: http://www.sybase.com/unwiredenterprise Try Sybase: http://www.try.sybase.com
Re: classloader was: Moving forward or letting go
Nicola Ken Barozzi wrote: Niclas Hedhman wrote: On Monday 21 June 2004 13:04, Nick Chalko wrote: ... Classloading is a real problem in java, and an important one to tackle but I prefer to keep the scope of Depot limited. Other project's like Avalon can tackle the classloaders. Perhaps we can take over the version/download/security stuff. I don't agree here, Nick, classloading is part of artifact handling, albeit in the JVM. It can and IMHO should live as a Depot subproject. I withdraw my -1, Classloading as a separate project does make sense for Depot. I should have used a -0 at worst. R, Nick
Re: classloader was: Moving forward or letting go
On Tuesday 22 June 2004 05:49, Nicola Ken Barozzi wrote: > I get it. > > In essence, a single Avalon system needs to load different artifacts in > separate classloaders during the same run. Yes, it is not a Build time concern, but builds include the running of tests, and some of these tests are fairly extensive. > Ok, let's now tackle the other bit, that layering... Agree. Cheers Niclas -- +--//---+ / http://www.bali.ac/ / http://niclas.hedhman.org / +--//---+
[GUMP@brutus]: depot/depot-update-test failed
To whom it may engage... This is an automated request, but not an unsolicited one. For more information please visit http://gump.apache.org/nagged.html, and/or contact folk at [EMAIL PROTECTED] Project depot-update-test has an issue affecting its community integration. Project State : 'Failed', Reason 'Build Failed' Full details are available at: http://brutus.apache.org:8080/gump/depot/depot-update-test/index.html That said, some snippets follow: The following annotations were provided: -INFO- Enable "verbose" output, due to 3 previous error(s). -INFO- Failed with reason build failed -INFO- Enable "debug" output, due to build failure. -INFO- Project Reports in: /usr/local/gump/public/workspace/depot/update/build/depot-update/junit/results The following work was performed: http://brutus.apache.org:8080/gump/depot/depot-update-test/gump_work/build_depot_depot-update-test.html Work Name: build_depot_depot-update-test (Type: Build) State: Failed Elapsed: 0 hours, 0 minutes, 18 seconds Command Line: java -Djava.awt.headless=true -Xbootclasspath/p:/usr/local/gump/public/workspace/xml-xerces2/java/build/xercesImpl.jar:/usr/local/gump/public/workspace/xml-xerces2/java/build/xml-apis.jar org.apache.tools.ant.Main -verbose -Dgump.merge=/usr/local/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Dant.home=/usr/local/gump/public/workspace/ant/dist -f build.xml test [Working Directory: /usr/local/gump/public/workspace/depot/update] CLASSPATH : /usr/local/j2sdk1.4.2_04/lib/tools.jar:/usr/local/gump/public/workspace/depot/update/build/depot-update/junit/classes:/usr/local/gump/public/workspace/depot/update/dist/depot-update-gump-20040621.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-stylebook.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/depot/version/dist/depot-version-gump-20040621.jar:/usr/local/gump/public/workspace/depot/common/dist/depot-common-gump-20040621.jar:/usr/local/gump/public/workspace/antworks-importer/dist/antworks-importer-0.1-gump-20040621.jar:/usr/local/gump/public/workspace/jakarta-servletapi/dist/lib/servlet.jar:/usr/local/gump/public/workspace/jakarta-regexp/build/jakarta-regexp-20040621.jar:/usr/local/gump/public/workspace/ant/bootstrap/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/bootstrap/lib/ant.jar:/usr/local/gump/public/workspace/jakarta-commons/httpclient/dist/commons-httpclient.jar:/usr/local/gump/public/workspace/jakarta-commons/codec/dist/commons-codec-20040621.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api.jar:/usr/local/gump/public/workspace/commons-vfs/target/commons-vfs-20040621.jar:/usr/local/gump/public/workspace/ant/build/lib/ant-testutil.jar:/usr/local/gump/public/workspace/dist/junit/junit.jar:/usr/local/gump/public/workspace/xmlunit/lib/xmlunit-20040621.jar- at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult(JUnitTask.java:1460) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:698) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1426) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:646) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:95) at org.apache.tools.ant.Task.perform(Task.java:366) at org.apache.tools.ant.Target.execute(Target.java:341) at org.apache.tools.ant.Target.performTasks(Target.java:369) at org.apache.tools.ant.Project.executeTarget(Project.java:1212) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:383) ... 15 more --- Nested Exception --- /usr/local/gump/public/workspace/depot/update/build/work/junit/test.xml:7: Test org.apache.depot.update.ant.CachedResourceSetTaskTest failed at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult(JUnitTask.java:1460) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:698) at org.apache.t