[mashup-dev] RE: [Registry-dev] svn commit r11161 - trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc

Sanjiva Weerawarana sanjiva at wso2.com
Mon Dec 17 10:00:18 PST 2007


+1 to making this consistent. I kinda like having my tags be "normal" ..
but happy to live with case normalization and whitespace normalization (to
one space). However, I can see the simplicity of Jonathan's patterns too.

So, if this comes to a vote I vote +1 for the reg style instead of the
mashup style but can easily live (happily ever after) with the mashup
style too.

On names- Jonathan we cannot possible require unique formal names right?? 
As such I suggest in our advanced search form we allow people to search in 
that field too. Not sure how our naming strategy could allow naming 
conflicts or spoofing attacks (?).

Sanjiva.

Jonathan Marsh wrote:
> We should have a consistent interface to tagging between the registry
> and mashup server.  Basically we need to have a consistent strategy
> for: 1) what characters are allowed in a tag, 2) to what extent the tag
> is normalized upon entry, and 3) how much freedom there is in searching
> for a tag (e.g. whitespace differences, case differences).
> 
> It sounds like you've answered these points as: 1) any character is
> allowed, including whitespace, but disallowing commas. 2) comma
> separated lists are split into individual tags.  Whitespace is
> normalized (in the xml sense) I hope? 3) Case insensitive matches?
> 
> That's slightly different than I had planned for the mashup server: 1)
> non-punctuation characters allowed only (no whitespace), plus maybe a
> few useful symbols like "_". 2) cases are folded (lowercase),
> whitespace-separated lists are split into individual tags (unless
> quoted e.g. 'wso2 "open source"' --> {"wso2", "opensource"}, whitespace
> and punctuation stripped ('"Chathura's party"' --> {"chathurasparty"}).
>  3) searching is an exact match of the normalized search string with
> the normalized tag value.
> 
> Both approaches are coherent, and appear successful on the web.  The
> first approach maximally preserves the user's input at the expense of
> making matching tags harder to implement and possibly a bit more
> fragile.  The second approach makes searching more robust and
> predictable at the expense of preserving the user's input.
> 
> Maybe there's even a middle approach that we could bake further down
> into the registry - store the tag value in two fields in the table -
> one preserving the users input, and one containing a heavily normalized
> version that we can easily search on.  Normalize the input to getTags,
> but also expose the utility normalizing function so that executeQuery
> users can still do good tag matches.
> 
> P.S. we have similar issue with user names - right now one searches for
> mashups from a particular user by their username (e.g. admin) rather
> than their formal name (Jonathan Marsh) even though the username only
> appears in the UI in urls.  And we don't enforce unique formal names at
> present which could result in name conflicts or even spoofing attacks.
> 
> Jonathan Marsh - http://www.wso2.com -
> http://auburnmarshes.spaces.live.com
> 
> 
>> -----Original Message----- From: registry-dev-bounces at wso2.org
>> [mailto:registry-dev- bounces at wso2.org] On Behalf Of svn at wso2.org 
>> Sent: Saturday, December 15, 2007 6:04 AM To: registry-dev at wso2.org 
>> Subject: [Registry-dev] svn commit r11161 - 
>> trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc
>> 
>> Author: chathura Date: Sat Dec 15 06:04:21 2007 New Revision: 11161
>> 
>> Log:
>> 
>> 
>> Now multiple tags has to be separeted using commas. That means, you
>> can apply tags with spaces in them (e.g. Sri Lanka)
>> 
>> 
>> 
>> Modified:
>> 
>> trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRe
>>  gistry.java
>> 
>> Modified: 
>> trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRe
>>  gistry.java 
>> =======================================================================
>>  ======= --- 
>> trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRe
>>  gistry.java	(original) +++ 
>> trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/JDBCRe
>>  gistry.java	Sat Dec 15 06:04:21 2007 @@ -444,8 +444,8 @@
>> 
>> String userID = User.getCurrentUser();
>> 
>> -        // break the space separated words into multiple tags -
>> String[] tags = tag.split(" "); +        // break the comma separated
>> words into multiple tags +        String[] tags = tag.split(",");
>> 
>> try { conn.setAutoCommit(false); @@ -458,6 +458,8 @@
>> 
>> for (int i = 0; i < tags.length; i++) {
>> 
>> +                tags[i] = tags[i].trim(); + if (tags[i].length() ==
>> 0 || tags[i].equals(" ")) { continue; } @@ -504,7 +506,7 @@ public
>> TaggedResourcePath[] getResourcePathsWithTag(String tag) throws
>> RegistryException {
>> 
>> // break the tags from spaces -        String[] tags =
>> tag.trim().split(" "); +        String[] tags =
>> tag.trim().split(",");
>> 
>> //List pathList = new ArrayList(); List taggedPaths = new
>> ArrayList(); @@ -521,6 +523,7 @@ 
>> taggedResourcePath.setResourcePath(path);
>> 
>> for (int i = 0; i < tags.length; i++) { +                    tags[i]
>> = tags[i].trim(); long count = tagsDAO.getTagCount(path, tags[i], 
>> conn); taggedResourcePath.addTagCount(tags[i], count); }
>> 
>> _______________________________________________ Registry-dev mailing
>> list Registry-dev at wso2.org 
>> http://wso2.org/cgi-bin/mailman/listinfo/registry-dev
> 
> 
> _______________________________________________ Mashup-dev mailing list
>  Mashup-dev at wso2.org 
> http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev
> 

-- 
Sanjiva Weerawarana, Ph.D.
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
email: sanjiva at wso2.com; cell: +1 650 265 8311 | +94 77 787 6880

"Oxygenating the Web Service Platform."



More information about the Registry-dev mailing list