[Building Sakai] How to find undocumented properties in code

Stephen Jaegle sjaegle at gmail.com
Thu May 19 08:47:33 PDT 2011


Thank you both. In another communication, someone also pointed out that the
otherwise outdated Sakai Config Viewer project may have useful methodology
in it as well.

--Steve


Bryan Holladay wrote:
> 
> I've done some work with this for the 2.8 release and here is a helpful
> bash script I ran to find all the properties (checked out the source code
> and searched through it):
> 
> Script
> 
> #!/bin/sh
> 
> grep -ilR "import
> org.sakaiproject.component.api.ServerConfigurationService" . | grep java$
> > filesListTmp.txt
> grep -ilR "import
> org.sakaiproject.component.cover.ServerConfigurationService" . | grep
> java$ >> filesListTmp.txt
> 
> echo > sakaiProps.txt
> for line in `cat filesListTmp.txt`
> do
>     grep -iR -A 1 "confi.*Servic.*.getString" $line >> sakaiProps.txt
>         grep -iR -A 1 "confi.*Servic.*.getBoolean" $line >> sakaiProps.txt
>         grep -iR -A 1 "confi.*Servic.*.getInt" $line >> sakaiProps.txt
> done
> 
> 
> 
> 
> Instructions
> 
> Run this script in the root folder for each source you want to compare. 
> Creates two files:
> 
> filesListTmp.txt
> This is a list of all the java files that have sakai properties
> 
> sakaiProps.txt
> This is the code that shows the sakai properties.  Use this file to
> compare with the other source to find differences.
> 
> 
> 
> -Bryan
> 
> 
> On May 18, 2011, at 7:05 PM, John Bush wrote:
> 
>> This is not an easy problem to solve.  yes you can find some properties
>> by calls to ServerConfigurationService, but there is a whole other
>> mechanism that can also be used that bypasses that.
>> 
>> Sakai properties can also be spring injected using this syntax:
>> 
>> property at some.bean.name
>> 
>> so basically every component.xml or other Spring file exposes a lot of
>> other properties.  You can't even get at these by looking at just the
>> spring files, because the real list would be looking at all the setters
>> in all of the beans prescribed by the spring config.
>> 
>> Technically, I guess either some spring lifecycle component, or aop,
>> bytecode injection method could probably be created to create a full
>> list.
>> 
>> On Wed, May 18, 2011 at 3:36 PM, Stephen Jaegle <sjaegle at gmail.com>
>> wrote:
>> 
>> Hi:
>> 
>> Some time ago I found the msg.displayEid property through considerable
>> searching effort; a web search
>> (http://www.google.com/search?q=%22msg.displayEid%22) reveals there are
>> few
>> references to it anywhere as of this writing. Aside from searching online
>> documentation such as the properties list on confluence and sample or
>> default properties files, from which relatively undocumented properties
>> such
>> as msg.displayEid are absent (see the search results url above), what
>> algorithms for finding otherwise undocumented properties in Sakai source
>> code are better and more complete than simply refining a grep for
>> ServerConfigurationService.get? Do properties generally get passed in
>> ways
>> other than using ServerConfigurationService?
>> 
>> Thanks,
>> 
>> Steve
>> --
>> View this message in context:
>> http://old.nabble.com/How-to-find-undocumented-properties-in-code-tp31651493p31651493.html
> 
>> John Bush
> 
> 

-- 
View this message in context: http://old.nabble.com/Re%3A--Building-Sakai--How-to-find-undocumented-properties-in-code-tp31651656p31655704.html
Sent from the Sakai - Development mailing list archive at Nabble.com.



More information about the sakai-dev mailing list