You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(3) |
Feb
(4) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(6) |
2006 |
Jan
(1) |
Feb
(6) |
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(12) |
2007 |
Jan
(44) |
Feb
(36) |
Mar
(24) |
Apr
(59) |
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(2) |
Nov
(4) |
Dec
(3) |
2008 |
Jan
(34) |
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
(7) |
Sep
(2) |
Oct
|
Nov
(3) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
2010 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Ben A. <ben...@ac...> - 2007-01-11 02:06:16
|
Hi We have a requirement to instantiate objects using complex constructors (not simply no-argument constructors). Essentially we will use parameter name discovery to retrieve the request parameter names from the constructor, then source the properties from the input object. We do this with Dozer quite successfully. InstantiatingReflector appears the appropriate Morph interface: public Object newInstance(Class clazz) throws ReflectionException; This is invoked by the BaseTransformer method: protected Object createNewInstanceImpl(Class destinationClass, Object source) throws Exception; I would like to request a change so that InstantiatingReflector is provided the source object, which we need in order to perform the desired destination object construction. ie: public Object newInstance(Class clazz, Object source) throws ReflectionException; I don't see this as a major problem, given that existing InstantiatingReflector implementations can simply ignore the additional parameter if they don't wish to use it. Alternately, if backward compatibility were an issue, could we have a new interface (InstantiatingSourceReflector?) which provided the interface, and have this new implementation extend InstantiatingReflector. Then BaseTransformer would detect the type of instantiating reflector injected and invoke accordingly. I realise we could simply override the BaseTransformer method, but then we force concrete inheritance to be used when a strategy pattern already exists and makes more sense. We just need the strategy to present the additional parameter. I'm happy to make this change and provide a patch, but I wanted to check which approach (or some other) that people preferred. Thanks Ben |
From: Ben A. <ben...@ac...> - 2007-01-10 22:53:32
|
Matt Benson wrote: > Ben: Thanks for the report. I applied your patch and > made a couple of changes, the largest of which is the > use of a class imported from Apache Ant: > IdentityStack. I wrote this class when it became > evident that this type of use case--excluding objects > from double-processing--really calls for identity > comparisons rather than equality comparisons. The > recursion factor only applies when two objects are > truly the same instance, after all. > > Thanks again, Hi Matt IdentityStack huh. Nice. :-) I wasn't too bothered about identity vs equality given the default equality handling falls back to identity anyway. But I take your point, identity is preferred as it overcomes the rather frequently erroneous equals(Object) implementations that people write. One other alternative might have been use to System.identityHashCode(Object) and store that, thus achieving identity without needing an extra class. :-) Thanks for applying the patch. Cheers Ben |
From: Matt B. <gud...@ya...> - 2007-01-10 16:39:31
|
Ben: Thanks for the report. I applied your patch and made a couple of changes, the largest of which is the use of a class imported from Apache Ant: IdentityStack. I wrote this class when it became evident that this type of use case--excluding objects from double-processing--really calls for identity comparisons rather than equality comparisons. The recursion factor only applies when two objects are truly the same instance, after all. Thanks again, Matt B --- Ben Alex <ben...@ac...> wrote: > I've made a couple of changes. New patch attached. > > Thanks > Ben > > Index: > /home/balex/workspace/composite/src/core/net/sf/composite/util/ObjectUtils.java > =================================================================== > --- > /home/balex/workspace/composite/src/core/net/sf/composite/util/ObjectUtils.java > (revision 7) > +++ > /home/balex/workspace/composite/src/core/net/sf/composite/util/ObjectUtils.java > (working copy) > @@ -18,6 +18,8 @@ > > private static final Log log = > LogFactory.getLog(ObjectUtils.class); > > + private static ThreadLocal objectsBeingDescribed = > new ThreadLocal(); > + > public static String getObjectDescription(Object > object) { > if (object == null) { > return "null"; > @@ -40,7 +42,26 @@ > + " " > + getObjectDescription(object.getClass()); > } > - return getDelimiter(object) + object + > getDelimiter(object) + " (class " + > object.getClass().getName() + ")"; > + // Prevent StackOverflowError > + if (objectsBeingDescribed.get() == null) { > + objectsBeingDescribed.set(new ArrayList()); > + } > + > + List list = (List) objectsBeingDescribed.get(); > + if (list.contains(object)) { > + // Already has been described in this control > flow, so don't call its toString() method a second > time (it was called on the first occasion) > + return getDelimiter(object) + "Nested" + > getDelimiter(object) + " (class " + > object.getClass().getName() + ")"; > + } else { > + // Object hasn't been described before, so use > its toString() method, but prevent any nested calls > to this method (via toString()) from repeating the > invocation > + list.add(object); > + String result; > + try { > + result = getDelimiter(object) + object + > getDelimiter(object) + " (class " + > object.getClass().getName() + ")"; > + } finally { > + list.remove(object); > + } > + return result; > + } > } > catch (Throwable t) { > // note we don't call object.toString() because > that could call an infinite loop > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get > the chance to share your > opinions on IT & business topics through brief > surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > ____________________________________________________________________________________ Any questions? Get answers on any topic at www.Answers.yahoo.com. Try it now. |
From: Ben A. <ben...@ac...> - 2007-01-10 00:38:10
|
I've made a couple of changes. New patch attached. Thanks Ben |
From: Ben A. <ben...@ac...> - 2007-01-10 00:33:28
|
Hi everyone I've noticed ObjectUtils.getObjectDescription(Object) addresses StackOverflowError by catching it and logging it. That's OK except performance suffers by waiting for the error to happen. Plus users get confused by length logging output (admittedly it's trace level, so can be switched off, but it seems better to avoid it in the first place). I've modified my local ObjectUtils to use a ThreadLocal to store which objects are being described and prevent double invocations of toString(). It worked fine. If people are happy with this approach, would someone kindly apply the attached patch. Cheers Ben |
From: Matt B. <gud...@ya...> - 2007-01-09 21:52:56
|
--- Matt Sgarlata <Mat...@wh...> wrote: > What compiler are you guys using? I don't get this > error at all doing > ant builds, but I'd like to use whichever compiler > fails most often for > my builds (to avoid problems for others in the > future). I'm using JDK > 1.5.0_07-b03 and Ant 1.6.5. I was using the same Sun JDK as you. I actually used Ant HEAD to build it (I tend to do that), but that's basically 1.7.0 (not many changes since the recent release). The problem did NOT show up in whatever ecj version is in use in Eclipse 3.2 . > Also, are you using the > ant build.xml that > comes with Morph or did you write your own? > So far I'm using the supplied buildfile. I might play around with it sometime if I get bored. :) > Matt B - thanks for taking care of this in SVN :) > If I didn't have such a hard-on for ternary ops it couldn't have happened.... so fixing it was my own responsibility... :| -Matt B > Matt S > [SNIP] __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Matt S. <Mat...@wh...> - 2007-01-09 21:46:57
|
What compiler are you guys using? I don't get this error at all doing ant builds, but I'd like to use whichever compiler fails most often for my builds (to avoid problems for others in the future). I'm using JDK 1.5.0_07-b03 and Ant 1.6.5. Also, are you using the ant build.xml that comes with Morph or did you write your own? Matt B - thanks for taking care of this in SVN :) Matt S Matt Benson wrote: > --- Ben Alex <ben...@ac...> wrote: > > >> Hi Matt >> >> Matt Benson wrote: >> >>> Matt S (and anyone else who may be watching): >>> >> Thanks for the update. It looks good in Eclipse, but >> when using Ant to >> build a JAR, I received an error on >> ServletRequestParameterReflector rev >> 58. I fixed it by changing line 63 to the following: >> >> return (ObjectUtils.isEmpty(values) || values.length >> == 1) ? >> getRequest(bean).getParameter(propertyName) : >> (Object)values; >> > > Hi Ben, > > I had just found this, and solved it similarly (I > added the case to the first object instead of the > second ;) ). So I checked that in right before I got > this. I had the same experience as you--apparently > ecj behaves differently (smarter) with ternary ops > from the Sun compiler. I only found it b/c I dropped > back to the command line to do the Ant build. Good > lesson to all, I suppose. ;) > > br, > Matt B > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > > |
From: Matt B. <gud...@ya...> - 2007-01-09 21:38:49
|
--- Ben Alex <ben...@ac...> wrote: > Hi Matt > > Matt Benson wrote: > > Matt S (and anyone else who may be watching): > > Thanks for the update. It looks good in Eclipse, but > when using Ant to > build a JAR, I received an error on > ServletRequestParameterReflector rev > 58. I fixed it by changing line 63 to the following: > > return (ObjectUtils.isEmpty(values) || values.length > == 1) ? > getRequest(bean).getParameter(propertyName) : > (Object)values; Hi Ben, I had just found this, and solved it similarly (I added the case to the first object instead of the second ;) ). So I checked that in right before I got this. I had the same experience as you--apparently ecj behaves differently (smarter) with ternary ops from the Sun compiler. I only found it b/c I dropped back to the command line to do the Ant build. Good lesson to all, I suppose. ;) br, Matt B __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Ben A. <ben...@ac...> - 2007-01-09 21:26:24
|
Hi Matt Matt Benson wrote: > Matt S (and anyone else who may be watching): Thanks for the update. It looks good in Eclipse, but when using Ant to build a JAR, I received an error on ServletRequestParameterReflector rev 58. I fixed it by changing line 63 to the following: return (ObjectUtils.isEmpty(values) || values.length == 1) ? getRequest(bean).getParameter(propertyName) : (Object)values; A similar change was made to line 47: return (ObjectUtils.isEmpty(values) || values.length == 1) ? String.class : String[].class; Would you mind confirming these changes and checking them in? Cheers Ben |
From: Matt B. <gud...@ya...> - 2007-01-09 21:05:55
|
Matt S (and anyone else who may be watching): I have been working in the Morph codebase yesterday and today. Highlights of what I've done: r10 | matt.benson | 2007-01-08 13:38:04 -0600 (Mon, 08 Jan 2007) | 3 lines Fix/improve date-related test failures by sticking to Calendar instead of Date whenever possible. -Allowed me to establish a baseline of all-tests-pass. r11 | matt.benson | 2007-01-08 13:49:02 -0600 (Mon, 08 Jan 2007) | 2 lines Fix ChainedConverter so that it will work correctly for ExplicitTransformers. -The original bug I saw that I thought I could fix. r17 | matt.benson | 2007-01-08 16:38:16 -0600 (Mon, 08 Jan 2007) | 1 line make text converter handle byte and char arrays -Seemed like the right thing to do. r18 | matt.benson | 2007-01-08 16:48:00 -0600 (Mon, 08 Jan 2007) | 1 line delegate text to boolean conversion using a textconverter, thus gaining any additional source classes added to textconverter for free -followed naturally from the previous change. r19 | matt.benson | 2007-01-08 16:51:31 -0600 (Mon, 08 Jan 2007) | 1 line fix broken stack management and add object to pretty text converter test case -ObjectToPrettyTextConverter had no test case and didn't work properly. :( r29 | matt.benson | 2007-01-08 17:22:06 -0600 (Mon, 08 Jan 2007) | 2 lines add missing primitives; quicker isTransformableImpl(); eliminate code duplication -I couldn't think why ObjectToClassConverter allowed all primitives as sources except for boolean and char, so I added them. Since this converter's only destination Class is Class, and Class is final, I overrode isTransformableImpl to check whether the destinationType were Class.class... r32 | matt.benson | 2007-01-08 17:30:32 -0600 (Mon, 08 Jan 2007) | 1 line add UnsupportedOperationException to CombiningCopier.copyImpl() -not yet implemented Additionally I made several changes having to do with eliminating redundant (explicitly or logically) code, reducing method calls, object instantiations, source file size, etc. where I saw possibilities. Some of these could be considered style issues so I hope I haven't overstepped any bounds here. br, Matt B __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Matt B. <gud...@ya...> - 2007-01-08 18:51:05
|
I don't have any negative opinion here... in fact I thought about the trimming option myself. ;) If you want me to give you a reason to dislike me I could point out that () are actually parentheses rather than parantheses though. Sorry. :( -Matt B --- Matt Sgarlata <Mat...@wh...> wrote: > Right now the TextToNumberConverter is configurable > with these properties: > > Converter textConverter (specifies how one textual > format is converted > into another, e.g. String -> StringBuffer) > Converter numberConverter (specifies how one number > is converted into > another, e.g. -> Double -> Long) > char[] symbolsToIgnore = { '(', ')', ' ', '\t', > '\r', '\n' } > > Based on whether symbolsToIgnore includes opening > and closing > parantheses the converter decides whether or not > values in parantheses > should be negated. In fact, there is even an > internal transient > property called negateValuesInParantheses that is > set based on the > values in symbolsToIgnore. I think this behavior is > backwards. It is > not at all obvious that in order to turn on the > ability to make "(1000)" > become -1000L I need to set the symbolsToIgnore to > the char[] array { ' > ', '\t', '\r', '\n' }. > > I would like to get rid of this public > symbolsToIgnore array and add new > configuration properties as follows: > > handlePercentages (default true) - determines > whether text value ending > in % should be divided by 100 when converted to a > number. so, 100% > becomes 1 and 10% becomes .1 > ignoreWhitespace (default true) - automatically > remove all whitespace > before attempting the conversion. this would be > useful if, for example, > a user enters " 3" instead of "3" in a form on > accident. > negateValuesInParantheses (default true) - if a > number begins and ends > with (), automatically treat it as a negative > number. if this value is > set to false, an exception would most likely be > thrown when converting > the text to a number (unless there's some locale > where they use ( to be > the thousands separator or something, lol) > > Like it? Hate it? I need this ASAP for work so I > am planning on coding > it today. > > Matt > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get > the chance to share your > opinions on IT & business topics through brief > surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Matt S. <Mat...@wh...> - 2007-01-08 18:48:02
|
Right now the TextToNumberConverter is configurable with these properties: Converter textConverter (specifies how one textual format is converted into another, e.g. String -> StringBuffer) Converter numberConverter (specifies how one number is converted into another, e.g. -> Double -> Long) char[] symbolsToIgnore = { '(', ')', ' ', '\t', '\r', '\n' } Based on whether symbolsToIgnore includes opening and closing parantheses the converter decides whether or not values in parantheses should be negated. In fact, there is even an internal transient property called negateValuesInParantheses that is set based on the values in symbolsToIgnore. I think this behavior is backwards. It is not at all obvious that in order to turn on the ability to make "(1000)" become -1000L I need to set the symbolsToIgnore to the char[] array { ' ', '\t', '\r', '\n' }. I would like to get rid of this public symbolsToIgnore array and add new configuration properties as follows: handlePercentages (default true) - determines whether text value ending in % should be divided by 100 when converted to a number. so, 100% becomes 1 and 10% becomes .1 ignoreWhitespace (default true) - automatically remove all whitespace before attempting the conversion. this would be useful if, for example, a user enters " 3" instead of "3" in a form on accident. negateValuesInParantheses (default true) - if a number begins and ends with (), automatically treat it as a negative number. if this value is set to false, an exception would most likely be thrown when converting the text to a number (unless there's some locale where they use ( to be the thousands separator or something, lol) Like it? Hate it? I need this ASAP for work so I am planning on coding it today. Matt |
From: Matt S. <Mat...@wh...> - 2007-01-08 14:52:11
|
SVN anonymous access should be possible by connecting to these URLs. I tried to test it, but Eclipse won't let me because it already knows a username/password for those repositories. svn://development.spiderstrategies.com/composite svn://development.spiderstrategies.com/morph I didn't know SF had SVN access, otherwise I would have tried that out. If we can't get annonymous SVN access working on dev.ss.com, I would certainly consider moving to SVN on SF or to some other location. Matt Ben Alex wrote: > Hi everyone > > I'm presently working on a framework called ROO which relies heavily on > DTO assembly. We're currently using Dozer but encountering some > limitations, and would like to consider using Morph instead. The Copier > interface and separation of DelegatingTransformer seems exactly what we > need to address requirements such as not copying fields which have been > lazily initialized. We also have other requirements such as > bidirectional DTO to DO mapping and replacement of DO associations based > on input DTOs, but I think the simplicity of Morph's architecture (plus > Spring IoC) will let us plug in what we need. > > Anyhow, I was hoping to get access to the latest source code, given the > last release was close to a year ago. I noticed some late December > discussion regarding moving from SF to Spider Strategies' servers. > Unfortunately I wasn't around during that discussion, but I would have > preferred to maintain the project on SF servers - as anonymous users > such as myself can get access to the latest. I lead the Acegi Security > for Spring project, and we have no real problem with SF. I also > contribute to a few other SF projects, and again no problem. Plus I work > for Interface21 (the company behind Spring) and we develop Spring and > Spring Web Flow on SF servers without issue. I am unsure what the issue > with SF was - aside from the occasional downtime which we all know, love > and expect - but generally the availability is reasonable. There's > always https://www.dev.java.net/ if you wish to leave SourceForge but > not go through the culture shift of ASF. Or use SF with SVN if you don't > wish to setup SSH with CVS. > > In the meantime, any thoughts on how I can obtain source code access > would be appreciated (or confirmation that the last release contains the > latest source). > > Cheers > Ben > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > > |
From: Matt B. <gud...@ya...> - 2007-01-08 14:41:51
|
Matt (S)/All: When I first connected to the server with Subclipse, it connected me without asking for my id and password. So anonymous access may be working. -Matt B --- Matt Sgarlata <Mat...@wh...> wrote: > Hi Ben, I will email you the laltest code and > investigate whether > annonymous SVN access is possible to the Spider > Strategies SVN repository. > > Matt > > Ben Alex wrote: > > Hi everyone > > > > I'm presently working on a framework called ROO > which relies heavily on > > DTO assembly. We're currently using Dozer but > encountering some > > limitations, and would like to consider using > Morph instead. The Copier > > interface and separation of DelegatingTransformer > seems exactly what we > > need to address requirements such as not copying > fields which have been > > lazily initialized. We also have other > requirements such as > > bidirectional DTO to DO mapping and replacement of > DO associations based > > on input DTOs, but I think the simplicity of > Morph's architecture (plus > > Spring IoC) will let us plug in what we need. > > > > Anyhow, I was hoping to get access to the latest > source code, given the > > last release was close to a year ago. I noticed > some late December > > discussion regarding moving from SF to Spider > Strategies' servers. > > Unfortunately I wasn't around during that > discussion, but I would have > > preferred to maintain the project on SF servers - > as anonymous users > > such as myself can get access to the latest. I > lead the Acegi Security > > for Spring project, and we have no real problem > with SF. I also > > contribute to a few other SF projects, and again > no problem. Plus I work > > for Interface21 (the company behind Spring) and we > develop Spring and > > Spring Web Flow on SF servers without issue. I am > unsure what the issue > > with SF was - aside from the occasional downtime > which we all know, love > > and expect - but generally the availability is > reasonable. There's > > always https://www.dev.java.net/ if you wish to > leave SourceForge but > > not go through the culture shift of ASF. Or use SF > with SVN if you don't > > wish to setup SSH with CVS. > > > > In the meantime, any thoughts on how I can obtain > source code access > > would be appreciated (or confirmation that the > last release contains the > > latest source). > > > > Cheers > > Ben > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of > IT > > Join SourceForge.net's Techsay panel and you'll > get the chance to share your > > opinions on IT & business topics through brief > surveys - and earn cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > morph-developer mailing list > > mor...@li... > > > https://lists.sourceforge.net/lists/listinfo/morph-developer > > > > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get > the chance to share your > opinions on IT & business topics through brief > surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Matt S. <Mat...@wh...> - 2007-01-08 14:14:39
|
Hi Ben, I will email you the laltest code and investigate whether annonymous SVN access is possible to the Spider Strategies SVN repository. Matt Ben Alex wrote: > Hi everyone > > I'm presently working on a framework called ROO which relies heavily on > DTO assembly. We're currently using Dozer but encountering some > limitations, and would like to consider using Morph instead. The Copier > interface and separation of DelegatingTransformer seems exactly what we > need to address requirements such as not copying fields which have been > lazily initialized. We also have other requirements such as > bidirectional DTO to DO mapping and replacement of DO associations based > on input DTOs, but I think the simplicity of Morph's architecture (plus > Spring IoC) will let us plug in what we need. > > Anyhow, I was hoping to get access to the latest source code, given the > last release was close to a year ago. I noticed some late December > discussion regarding moving from SF to Spider Strategies' servers. > Unfortunately I wasn't around during that discussion, but I would have > preferred to maintain the project on SF servers - as anonymous users > such as myself can get access to the latest. I lead the Acegi Security > for Spring project, and we have no real problem with SF. I also > contribute to a few other SF projects, and again no problem. Plus I work > for Interface21 (the company behind Spring) and we develop Spring and > Spring Web Flow on SF servers without issue. I am unsure what the issue > with SF was - aside from the occasional downtime which we all know, love > and expect - but generally the availability is reasonable. There's > always https://www.dev.java.net/ if you wish to leave SourceForge but > not go through the culture shift of ASF. Or use SF with SVN if you don't > wish to setup SSH with CVS. > > In the meantime, any thoughts on how I can obtain source code access > would be appreciated (or confirmation that the last release contains the > latest source). > > Cheers > Ben > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > > |
From: Ben A. <ben...@ac...> - 2007-01-08 13:33:35
|
Hi everyone I'm presently working on a framework called ROO which relies heavily on DTO assembly. We're currently using Dozer but encountering some limitations, and would like to consider using Morph instead. The Copier interface and separation of DelegatingTransformer seems exactly what we need to address requirements such as not copying fields which have been lazily initialized. We also have other requirements such as bidirectional DTO to DO mapping and replacement of DO associations based on input DTOs, but I think the simplicity of Morph's architecture (plus Spring IoC) will let us plug in what we need. Anyhow, I was hoping to get access to the latest source code, given the last release was close to a year ago. I noticed some late December discussion regarding moving from SF to Spider Strategies' servers. Unfortunately I wasn't around during that discussion, but I would have preferred to maintain the project on SF servers - as anonymous users such as myself can get access to the latest. I lead the Acegi Security for Spring project, and we have no real problem with SF. I also contribute to a few other SF projects, and again no problem. Plus I work for Interface21 (the company behind Spring) and we develop Spring and Spring Web Flow on SF servers without issue. I am unsure what the issue with SF was - aside from the occasional downtime which we all know, love and expect - but generally the availability is reasonable. There's always https://www.dev.java.net/ if you wish to leave SourceForge but not go through the culture shift of ASF. Or use SF with SVN if you don't wish to setup SSH with CVS. In the meantime, any thoughts on how I can obtain source code access would be appreciated (or confirmation that the last release contains the latest source). Cheers Ben |
From: Matt S. <Mat...@wh...> - 2006-12-20 20:37:39
|
Here's what I think we should do for hosting Morph. My boss (Scott O'Reilly) will setup a SVN repository for us to use on Spider Strategies servers, since SF CVS is so difficult to use. Matt Benson and any other developers that need access can be granted a username and password, and it will be very simple to connect to and modify the contents of the repository. The only potential issue I can see here is that if a Morph user wanted to view the absolute latest code in the repository they would not be able to do so. However, if they need a fix that urgently we can just cut a new release and publish it to SourceForge or email it to that user. I will send Matt Benson details on connecting to the repository once it is setup. For the website, we could set that up on Spider Strategies servers but realistically only Spider Strategies staff would be able to access the server. So, let's just leave web hosting on SF for now. Matt |
From: Matt B. <gud...@ya...> - 2006-12-20 17:28:05
|
--- Matt Sgarlata <Mat...@wh...> wrote: > > > Wanting Apache visibility won't, you can > understand, > > be seen as a great reason for incubating. ;) The > > community and its experience might be better > reasons. > > Incubator guidelines seem to desire there be some > > level of community already in place; maybe we > should > > continue to think about this but pursue other > options > > in the meantime. > > > Yeah, I don't think Morph meets the qualifications > needed to make it as > an Apache project. I think our most viable options > for the time being > are to use SF or Spider Strategies. I will do some > investigating to > determine what would be involved in doing some > hosting on Spider > Strategies servers. I did some more research into > my issue connecting > to SF CVS, and I think it's just an issue with my > workstation being > configured incorrectly. It seems to get SSH working > I need to download > 3 or 4 software programs, generate public and > private keys, publish > public keys at SF, make sure my private keys are in > the right place on > my laptop, configure Eclipse properly, and offer up > sacrifice to the IT > gods. I'll do some more research in the next couple > days and get back > to you with what I think the best solution is. Sure, just let me know. > > I'm fine with all that. In this case, the problem > was > > the competing String vs. Object setters; the > result > > was, in theory, random, however, so we might come > back > > to this issue for discussion. > > > Agreed. This problem was pointed out to me some > time ago, and I hadn't > really focused on it too much since it's not > relevant to the work I am > doing right now. There may be a bug report in the > issue tracker on SF > that covers this. Another area where Morph falls > down is it doesn't > support all the options for manipulating collections > that exist in the > JavaBeans specification, namely methods like > addChild(int index, Object > value) or whatever the signature is. > Noted. -MB > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get > the chance to share your > opinions on IT & business topics through brief > surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Matt S. <Mat...@wh...> - 2006-12-20 17:10:43
|
> Wanting Apache visibility won't, you can understand, > be seen as a great reason for incubating. ;) The > community and its experience might be better reasons. > Incubator guidelines seem to desire there be some > level of community already in place; maybe we should > continue to think about this but pursue other options > in the meantime. > Yeah, I don't think Morph meets the qualifications needed to make it as an Apache project. I think our most viable options for the time being are to use SF or Spider Strategies. I will do some investigating to determine what would be involved in doing some hosting on Spider Strategies servers. I did some more research into my issue connecting to SF CVS, and I think it's just an issue with my workstation being configured incorrectly. It seems to get SSH working I need to download 3 or 4 software programs, generate public and private keys, publish public keys at SF, make sure my private keys are in the right place on my laptop, configure Eclipse properly, and offer up sacrifice to the IT gods. I'll do some more research in the next couple days and get back to you with what I think the best solution is. > I'm fine with all that. In this case, the problem was > the competing String vs. Object setters; the result > was, in theory, random, however, so we might come back > to this issue for discussion. > Agreed. This problem was pointed out to me some time ago, and I hadn't really focused on it too much since it's not relevant to the work I am doing right now. There may be a bug report in the issue tracker on SF that covers this. Another area where Morph falls down is it doesn't support all the options for manipulating collections that exist in the JavaBeans specification, namely methods like addChild(int index, Object value) or whatever the signature is. |
From: Matt B. <gud...@ya...> - 2006-12-20 16:32:53
|
--- Matt Sgarlata <Mat...@wh...> wrote: > Regarding having my company (Spider Strategies) host > SVN and perhaps the > website as well, I don't think this would be a step > from more open to > less open. There wouldn't be any firewall issues > involved. All our > developers work from home, and we like to keep > things simple. In fact, > our servers are probably considerably less secure > than the SourceForge > servers, but the tradeoff there is we would actually > be able to connect > to them and use them without going crazy in the > process. Also, I > imagine I could get us setup in a matter of days > (rather than weeks with > Apache). As you mentioned, the project is already > licensed under the > Apache 2.0 license, and by hosting the software > Spider Strategies > wouldn't be trying to make any claims of ownership > or anything. The > goal here is to just get something that works well > and easily for all > the Morph developers, not to tie the software to any > particular > company. Fair enough. :) > I guess I'm thinking along the lines of > what the Spring > framework does. I think they still use SF for CVS > and for their > binaries, but their website has its own server, > springframework.org. My > guess would be that server is paid for by > Interface21, Rod Johnson's > company. Spring also uses JIRA for its issue > tracking, which I'm > guessing is paid for by the creators of JIRA (I > think they give free > hosting for open source projects, but I'm not sure). I'm about 99.99% sure this is correct. BTW, just so you know, I am thoroughly soaked through with Spring Kool-Aid (not a fanboy, but definitely an adherent). ;) > > Regarding the project joining the Apache Incubator, > I am not adverse to > the idea. I haven't really looked into that because > it seems like a lot > of extra work, whereas on SourceForge I could just > post stuff and not > have to conform to any rules. Of course the > benefits of joining Apache > would be that the project would get more visibility > and their servers > are probably a lot better than those of SourceForge. Wanting Apache visibility won't, you can understand, be seen as a great reason for incubating. ;) The community and its experience might be better reasons. Incubator guidelines seem to desire there be some level of community already in place; maybe we should continue to think about this but pursue other options in the meantime. > If this is a route > you would like to take then you will have my support > and if there are > any forms we need to fill out and sign I'm sure that > won't be an issue > either. Another thing to consider is that I kind of > split Morph into 2 > parts: Morph itself and a separate framework called > 'Composite' for > working with composite objects. I'm still not sure > whether or not this > was a good idea, and it may complicate matters with > Apache since both > projects should probably be hosted together, since > Morph depends on > Composite. > Good point. > To summarize, I don't care where we host the project > or its various > pieces, I just want to get something that works. I > really see finding a > viable source code repository as our #1 concern > right now, because > without it collaboration between the two of us on > the actual code will > be very difficult. Agreed. I'm anxious to compare ideas here. :) > > I have a test case that exhibits the problem, and > > would be happy to fix ChainedConverter. > > > That would be great :) I would be very interested > to see these > changes. Again, without a source code repository > it's going to make it > very difficult for me to see the changes you make. > Ideally we could get > a source code repository setup first, I could check > in all the latest > code, then you could make your changes. That way, I > would be able to > see the changes you make, file by file and line by > line, and comment on > them. > > As far as this one goes, the current version you > sent > > me fixes this by removing the String setter; you > > probably remember this or have looked at it > recently. > > I take this to mean the behavior of the library is > > correct as you see it in this case, and that the > test > > case was flawed. > > > The intent of this test case was to verify that if > an object only had a > setter, Morph would still recognize the property and > set the value > correctly. This is different behavior than some > other libraries out > there, which strictly adhere to the JavaBeans > standard and insist on > getters and setters. I have always had the > philosophy that if it would > be possible for Morph to do something then it should > just go ahead and > do it, rather than not doing it because it doesn't > conform to some > standard, with which end users of the framework may > or may not be > familiar. Besides, Morph isn't a framework for > working with JavaBeans, > it's a framework for working with anything. For > example, request > parameters can only be retrieved and not set, and to > apply the JavaBeans > philosophy that all properties must be mutable would > be kind of silly. I'm fine with all that. In this case, the problem was the competing String vs. Object setters; the result was, in theory, random, however, so we might come back to this issue for discussion. > > I'm assuming Ant isn't the part you have to > relearn, > > though I wonder why you don't include a buildfile > with > > morph. If you had to rewrite it every time, then > > sure... > > > The lack of a buildfile is just an oversight in the > distribution. There > is a buildfile, and you're right it should be > included in the > distribution. Again, if we had an actual working > source code repository > you could pull down the buildfile easily. I can > email build.xml to you > if you would like. No matter, I've already written one that works. :) -MB > > Matt > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get > the chance to share your > opinions on IT & business topics through brief > surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Matt S. <Mat...@wh...> - 2006-12-20 16:13:28
|
Regarding having my company (Spider Strategies) host SVN and perhaps the website as well, I don't think this would be a step from more open to less open. There wouldn't be any firewall issues involved. All our developers work from home, and we like to keep things simple. In fact, our servers are probably considerably less secure than the SourceForge servers, but the tradeoff there is we would actually be able to connect to them and use them without going crazy in the process. Also, I imagine I could get us setup in a matter of days (rather than weeks with Apache). As you mentioned, the project is already licensed under the Apache 2.0 license, and by hosting the software Spider Strategies wouldn't be trying to make any claims of ownership or anything. The goal here is to just get something that works well and easily for all the Morph developers, not to tie the software to any particular company. I guess I'm thinking along the lines of what the Spring framework does. I think they still use SF for CVS and for their binaries, but their website has its own server, springframework.org. My guess would be that server is paid for by Interface21, Rod Johnson's company. Spring also uses JIRA for its issue tracking, which I'm guessing is paid for by the creators of JIRA (I think they give free hosting for open source projects, but I'm not sure). Regarding the project joining the Apache Incubator, I am not adverse to the idea. I haven't really looked into that because it seems like a lot of extra work, whereas on SourceForge I could just post stuff and not have to conform to any rules. Of course the benefits of joining Apache would be that the project would get more visibility and their servers are probably a lot better than those of SourceForge. If this is a route you would like to take then you will have my support and if there are any forms we need to fill out and sign I'm sure that won't be an issue either. Another thing to consider is that I kind of split Morph into 2 parts: Morph itself and a separate framework called 'Composite' for working with composite objects. I'm still not sure whether or not this was a good idea, and it may complicate matters with Apache since both projects should probably be hosted together, since Morph depends on Composite. To summarize, I don't care where we host the project or its various pieces, I just want to get something that works. I really see finding a viable source code repository as our #1 concern right now, because without it collaboration between the two of us on the actual code will be very difficult. > I have a test case that exhibits the problem, and > would be happy to fix ChainedConverter. > That would be great :) I would be very interested to see these changes. Again, without a source code repository it's going to make it very difficult for me to see the changes you make. Ideally we could get a source code repository setup first, I could check in all the latest code, then you could make your changes. That way, I would be able to see the changes you make, file by file and line by line, and comment on them. > As far as this one goes, the current version you sent > me fixes this by removing the String setter; you > probably remember this or have looked at it recently. > I take this to mean the behavior of the library is > correct as you see it in this case, and that the test > case was flawed. > The intent of this test case was to verify that if an object only had a setter, Morph would still recognize the property and set the value correctly. This is different behavior than some other libraries out there, which strictly adhere to the JavaBeans standard and insist on getters and setters. I have always had the philosophy that if it would be possible for Morph to do something then it should just go ahead and do it, rather than not doing it because it doesn't conform to some standard, with which end users of the framework may or may not be familiar. Besides, Morph isn't a framework for working with JavaBeans, it's a framework for working with anything. For example, request parameters can only be retrieved and not set, and to apply the JavaBeans philosophy that all properties must be mutable would be kind of silly. > I'm assuming Ant isn't the part you have to relearn, > though I wonder why you don't include a buildfile with > morph. If you had to rewrite it every time, then > sure... > The lack of a buildfile is just an oversight in the distribution. There is a buildfile, and you're right it should be included in the distribution. Again, if we had an actual working source code repository you could pull down the buildfile easily. I can email build.xml to you if you would like. Matt |
From: Matt B. <gud...@ya...> - 2006-12-20 15:35:15
|
--- Matt Sgarlata <Mat...@wh...> wrote: > Hello again Matt, sorry I'm still being slow with my > responses, but I'm > still trying to catch up from my week away from work > :) > > In response to a previous email, you're right the > ChainedConverter can't > just fall back on the implementation of > isTransformable in > BaseTransformer but it does so anyway. So that is > definitely broken. I > probably haven't caught that in real life because I > haven't actually > used the ChainedConverter to do anything, it was > more just trying out an > idea to see if I could get it to work. I have a test case that exhibits the problem, and would be happy to fix ChainedConverter. > > Here are responses to your most recent email, > inline: > > > MorphTestCase.testCopyToDestWithoutGetter() is not > > even in CVS, though it's in the 1.0.1 release; in > any > > event, it probably bears some discussion as to > what > > would be correct behavior here. > > As far as this one goes, the current version you sent me fixes this by removing the String setter; you probably remember this or have looked at it recently. I take this to mean the behavior of the library is correct as you see it in this case, and that the test case was flawed. > I haven't been able to connect to CVS for some time, > and I again was not > able to connect today. So the code in CVS is fairly > old. I sent you > the latest Morph distribution. > Thanks! I guess sf.net is still a little flaky on the overall. :( I note that I can hit anonymous CVS today, so it seems like it is better than it has been earlier in the year, when anon cvs was unavailable for a month or so, or more... > I haven't been cutting new releases because, as I > mentioned, it takes me > a good 2-3 hours to do a release. The problem is > there are nearly a > half dozen programs I have to use (ant to prepare > the release, ftp to > upload the release, secure ftp to upload the website > to the web server, > secure telnet to unzip the new version of the > website and make sure I > put it in the right directory) In addition to this > being a huge pain in > the neck, I also don't even have most of these > programs on my computer > anymore because I have a new laptop. Since I only > use most of these > programs every few months it means I have to relearn > how to use them > each time. > I'm assuming Ant isn't the part you have to relearn, though I wonder why you don't include a buildfile with morph. If you had to rewrite it every time, then sure... > My boss is on vacation right now, but I'll see if > maybe we can setup my > company's SVN repository so that it hosts Morph. > That way I'll be able > to connect to it, and hopefully we can get you > access as well. I guess if it's more reliable than sf, that's something. It strikes me, though, that Ivy just joined the Apache incubator in part because the project's growth was stifled by its residence behind corporate walls; it had a two-person developer community. Again, I very much like Morph's design, want to use it, and am eager to do my share to bring it a few more percent forward (not saying I can bring it to 100% but I see a few places I'd like to touch). There's also java.net and google code, though the sf web hosting feature is nice. Also, I could look into what it would take to get Morph into the Apache incubator, if that is something you (and your company if they retain any claim to Morph) might be interested in. Let me go ahead and explain that parenthetical: if a project becomes an Apache project, no copyright holder has to relinquish copyright. Rather than be interpreted as having spoken to the contrary, I want to clarify this up front. The only thing you or your company (depending on Morph's status with regard to you both) must do is grant the ASF a license to use the code blah blah basically in a way that allows the ASF to distribute the code under the ASL, which is, of course, how you're already distributing it. I would think this would mean there shouldn't be any issues from your end, but you never can tell. Again, I hope I'm not coming across as trying to bully you in any way here. :) Perhaps more of an issue would be recognizing in exactly what capacity Morph might be a good fit as an ASF project, if at all. I can go ahead and do some preliminary investigation in this regard--and feel free to offer any opinion here; in any event, I definitely won't start any balls rolling or wheels turning until I know more about your estimate of the feasibility here. > Perhaps > I can get web space for Morph as well, because > although it does see a > good bit of traffic, it shouldn't be anything too > crippling. If you had web space, that would mitigate some of the drawbacks of google or java.net, though the behind-closed-doors thing would still exist. I just hate to see OSS go from more-open to less-open in any way; please understand that by this I certainly don't mean any reflection on your company, with which I am by no means familiar. > > The other two failures appear to be time-zone > related > > as I am in CST and these are expecting something > with > > EST. I will have a look at these, but FYI they > are > > > > DefaultToTextConverterTestCase.testValidPairs() > > TimeToTextConverterTestCase.testValidPairs() > > > I changed my timezone to Pacific time and received > the same error you > describe. I'm retrieving the default time format > using this call: > > DateFormat.getDateTimeInstance(DateFormat.LONG, > DateFormat.LONG); > > I think the bug is in the test case, not in the > converters. I've > explicitly hardcoded EST into the String for the > test in > BaseToTextConverterTestCase line 112: > > String converted = "January 30, 2005 11:51:02 AM > EST"; Yes, but since you set the offset of the Calendar you'd think it could/should work. I have been playing around with this, but haven't quite gotten it there yet. -Matt B. > > Matt > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get > the chance to share your > opinions on IT & business topics through brief > surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > morph-developer mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-developer > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Matt S. <mat...@sp...> - 2006-12-19 23:45:33
|
Hi again Matt, I don't think I addressed one of your questions regarding Morph's performance. In general I've found Morph's performance to be an insignificant contributor to the overall performance of the programs I've worked on. I did some extensive performance tuning of my company's product a year or so ago and found Morph was taking too long in some circumstances. I made some changes then to fix the performance issues I found and that seemed to do the trick. I did these measurements using JProbe. The only time I consider Morph to be inappropriate is if it is being called thousands of times in a single user interaction and a direct call to the Java libraries will suffice. For example, for displaying a large table of numbers through a JSP, I changed my calls from something like Morph.convertToDouble to a simple call to new Double(string) or something similar. Any time you're using all this OO-design, reflection, etc. you are going to have a slower end result than if you had done things with direct calls to the Java libraries. However, Morph isn't an order of magnitude slower than doing things manually. Matt -- This message is intended only for the named recipient. If you are not the intended recipient, you are notified that disclosing, copying, distributing, or taking any action in reliance on the contents of this information is strictly prohibited. |
From: Matt S. <Mat...@wh...> - 2006-12-19 23:38:14
|
Hello again Matt, sorry I'm still being slow with my responses, but I'm still trying to catch up from my week away from work :) In response to a previous email, you're right the ChainedConverter can't just fall back on the implementation of isTransformable in BaseTransformer but it does so anyway. So that is definitely broken. I probably haven't caught that in real life because I haven't actually used the ChainedConverter to do anything, it was more just trying out an idea to see if I could get it to work. Here are responses to your most recent email, inline: > MorphTestCase.testCopyToDestWithoutGetter() is not > even in CVS, though it's in the 1.0.1 release; in any > event, it probably bears some discussion as to what > would be correct behavior here. > I haven't been able to connect to CVS for some time, and I again was not able to connect today. So the code in CVS is fairly old. I sent you the latest Morph distribution. I haven't been cutting new releases because, as I mentioned, it takes me a good 2-3 hours to do a release. The problem is there are nearly a half dozen programs I have to use (ant to prepare the release, ftp to upload the release, secure ftp to upload the website to the web server, secure telnet to unzip the new version of the website and make sure I put it in the right directory) In addition to this being a huge pain in the neck, I also don't even have most of these programs on my computer anymore because I have a new laptop. Since I only use most of these programs every few months it means I have to relearn how to use them each time. My boss is on vacation right now, but I'll see if maybe we can setup my company's SVN repository so that it hosts Morph. That way I'll be able to connect to it, and hopefully we can get you access as well. Perhaps I can get web space for Morph as well, because although it does see a good bit of traffic, it shouldn't be anything too crippling. > The other two failures appear to be time-zone related > as I am in CST and these are expecting something with > EST. I will have a look at these, but FYI they are > > DefaultToTextConverterTestCase.testValidPairs() > TimeToTextConverterTestCase.testValidPairs() > I changed my timezone to Pacific time and received the same error you describe. I'm retrieving the default time format using this call: DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); I think the bug is in the test case, not in the converters. I've explicitly hardcoded EST into the String for the test in BaseToTextConverterTestCase line 112: String converted = "January 30, 2005 11:51:02 AM EST"; Matt |
From: Matt B. <gud...@ya...> - 2006-12-19 19:38:16
|
--- Matt Benson <gud...@ya...> wrote: [SNIP] > Further, I have just built and tested the > morph-1.0.1 > release, and get 132 of 732 tests failed. :( > On further investigation, only three tests fail (I had Ant's <junit> task attempting to run abstract base classes). Sorry for the false alarm. Of the three remaining failures: MorphTestCase.testCopyToDestWithoutGetter() is not even in CVS, though it's in the 1.0.1 release; in any event, it probably bears some discussion as to what would be correct behavior here. The other two failures appear to be time-zone related as I am in CST and these are expecting something with EST. I will have a look at these, but FYI they are DefaultToTextConverterTestCase.testValidPairs() TimeToTextConverterTestCase.testValidPairs() br, Matt B. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |