The IService handle provides a Map<String,Serializable> for storing parameters ... so the following should work:
put( "url", new URL("http://udig.refractions.net/confluence/display/UDIG/Home"))
And it does - and it will continue to work until the application is shut down and restarted.
When the application is restarted and the service is again created with the map of connection paramters everything is "downgraded" to Map<String,String>. The existing DataStore based services all handle this gracefully - but we should obey our contract and preserve type.
This is an implementation problem with "local" Catalog (and probably the CatalogPlugin - the catalog api does not require any changes here.