Class: SoarSr::JUDDIProvider
- Inherits:
-
Object
- Object
- SoarSr::JUDDIProvider
- Defined in:
- lib/soar_sr/juddi_provider.rb
Instance Attribute Summary collapse
-
#broker ⇒ Object
readonly
Returns the value of attribute broker.
-
#cache ⇒ Object
readonly
Returns the value of attribute cache.
-
#urns ⇒ Object
readonly
Returns the value of attribute urns.
Instance Method Summary collapse
- #add_service_uri(service, uri) ⇒ Object
- #assign_service_component_to_business(name, business_key = @urns['company']) ⇒ Object
- #assign_service_to_business(name, business_key = @urns['company']) ⇒ Object
- #delete_business(key) ⇒ Object
- #delete_service(name) ⇒ Object
- #delete_service_component(name) ⇒ Object
- #find_businesses(pattern = nil) ⇒ Object
- #find_service_component_uri(service_component) ⇒ Object
- #find_service_components(pattern = nil) ⇒ Object
- #find_services(pattern = nil) ⇒ Object
- #get_business(key) ⇒ Object
- #get_service(name) ⇒ Object
- #get_service_component(name) ⇒ Object
-
#initialize(urns, broker, cache_freshness) ⇒ JUDDIProvider
constructor
A new instance of JUDDIProvider.
- #remove_service_uri(service, uri) ⇒ Object
- #save_business(key, name, description = nil, contacts = nil) ⇒ Object
- #save_service(name, description = nil, definition = nil) ⇒ Object
- #save_service_component(name, description = nil, definition = nil) ⇒ Object
- #save_service_component_uri(service_component, uri) ⇒ Object
- #service_uris(service) ⇒ Object
Constructor Details
#initialize(urns, broker, cache_freshness) ⇒ JUDDIProvider
Returns a new instance of JUDDIProvider.
11 12 13 14 15 |
# File 'lib/soar_sr/juddi_provider.rb', line 11 def initialize(urns, broker, cache_freshness) @urns = urns @broker = broker @cache = Persistent::Cache.new("uddi-broker", cache_freshness, Persistent::Cache::STORAGE_RAM) end |
Instance Attribute Details
#broker ⇒ Object (readonly)
Returns the value of attribute broker.
7 8 9 |
# File 'lib/soar_sr/juddi_provider.rb', line 7 def broker @broker end |
#cache ⇒ Object (readonly)
Returns the value of attribute cache.
9 10 11 |
# File 'lib/soar_sr/juddi_provider.rb', line 9 def cache @cache end |
#urns ⇒ Object (readonly)
Returns the value of attribute urns.
8 9 10 |
# File 'lib/soar_sr/juddi_provider.rb', line 8 def urns @urns end |
Instance Method Details
#add_service_uri(service, uri) ⇒ Object
57 58 59 60 61 |
# File 'lib/soar_sr/juddi_provider.rb', line 57 def add_service_uri(service, uri) result = remove_service_uri(service, uri) result = save_service_uri(service, uri) if result['status'] == 'success' result end |
#assign_service_component_to_business(name, business_key = @urns['company']) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/soar_sr/juddi_provider.rb', line 24 def assign_service_component_to_business(name, business_key = @urns['company']) @broker. result = get_service_component(name) service = result['data'] @broker.save_service_element(service['name'], service['description'], service['definition'], @urns['service-components'], business_key) end |
#assign_service_to_business(name, business_key = @urns['company']) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/soar_sr/juddi_provider.rb', line 17 def assign_service_to_business(name, business_key = @urns['company']) @broker. result = get_service(name) service = result['data'] @broker.save_service_element(service['name'], service['description'], service['definition'], @urns['services'], business_key) end |
#delete_business(key) ⇒ Object
139 140 141 142 |
# File 'lib/soar_sr/juddi_provider.rb', line 139 def delete_business(key) @broker. @broker.delete_business(key) end |
#delete_service(name) ⇒ Object
43 44 45 46 |
# File 'lib/soar_sr/juddi_provider.rb', line 43 def delete_service(name) @broker. @broker.delete_service_element(name, @urns['services']) end |
#delete_service_component(name) ⇒ Object
90 91 92 93 |
# File 'lib/soar_sr/juddi_provider.rb', line 90 def delete_service_component(name) @broker. @broker.delete_service_element(name, @urns['service-components']) end |
#find_businesses(pattern = nil) ⇒ Object
131 132 133 134 135 136 137 |
# File 'lib/soar_sr/juddi_provider.rb', line 131 def find_businesses(pattern = nil) pattern = pattern.nil? ? '%' : "%#{pattern}%" cached = @cache["find_businesses:#{pattern}"]; return cached if cached value = @broker.find_business(pattern) @cache["find_businesses:#{pattern}"] = value value end |
#find_service_component_uri(service_component) ⇒ Object
112 113 114 115 116 117 |
# File 'lib/soar_sr/juddi_provider.rb', line 112 def find_service_component_uri(service_component) cached = @cache["find_service_component_uri:#{service_component}"]; return cached if cached value = @broker.find_element_bindings(service_component, @urns['service-components']) @cache["find_service_component_uri:#{service_component}"] = value value end |
#find_service_components(pattern = nil) ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/soar_sr/juddi_provider.rb', line 95 def find_service_components(pattern = nil) pattern = pattern.nil? ? '%' : "%#{pattern}%" cached = @cache["find_service_components:#{pattern}"]; return cached if cached value = @broker.find_service_components(pattern) @cache["find_service_components:#{pattern}"] = value value end |
#find_services(pattern = nil) ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/soar_sr/juddi_provider.rb', line 48 def find_services(pattern = nil) pattern = pattern.nil? ? '%' : "%#{pattern}%" cached = @cache["find_services:#{pattern}"]; return cached if cached value = @broker.find_services(pattern) @cache["find_services:#{pattern}"] = value value end |
#get_business(key) ⇒ Object
124 125 126 127 128 129 |
# File 'lib/soar_sr/juddi_provider.rb', line 124 def get_business(key) cached = @cache["get_business:#{key}"]; return cached if cached value = @broker.get_business(key) @cache["get_business:#{key}"] = value value end |
#get_service(name) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/soar_sr/juddi_provider.rb', line 31 def get_service(name) cached = @cache["get_service:#{name}"]; return cached if cached value = @broker.get_service_element(name, @urns['services']) @cache["get_service:#{name}"] = value value end |
#get_service_component(name) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/soar_sr/juddi_provider.rb', line 78 def get_service_component(name) cached = @cache["get_service_component:#{name}"]; return cached if cached value = @broker.get_service_element(name, @urns['service-components']) @cache["get_service_component:#{name}"] = value value end |
#remove_service_uri(service, uri) ⇒ Object
63 64 65 66 67 68 69 |
# File 'lib/soar_sr/juddi_provider.rb', line 63 def remove_service_uri(service, uri) @broker. result = service_uris(service) existing_id = has_existing_binding?(result['data']['bindings'], uri) if has_bindings?(result) result = @broker.delete_binding(existing_id) if existing_id result end |
#save_business(key, name, description = nil, contacts = nil) ⇒ Object
119 120 121 122 |
# File 'lib/soar_sr/juddi_provider.rb', line 119 def save_business(key, name, description = nil, contacts = nil) @broker. @broker.save_business(key, name, description, contacts) end |
#save_service(name, description = nil, definition = nil) ⇒ Object
38 39 40 41 |
# File 'lib/soar_sr/juddi_provider.rb', line 38 def save_service(name, description = nil, definition = nil) @broker. @broker.save_service_element(name, description.is_a?(Array) ? description : [description], definition, @urns['services'], @urns['company']) end |
#save_service_component(name, description = nil, definition = nil) ⇒ Object
85 86 87 88 |
# File 'lib/soar_sr/juddi_provider.rb', line 85 def save_service_component(name, description = nil, definition = nil) @broker. @broker.save_service_element(name, description.is_a?(Array) ? description : [description], definition, @urns['service-components'], @urns['company']) end |
#save_service_component_uri(service_component, uri) ⇒ Object
104 105 106 107 108 109 110 |
# File 'lib/soar_sr/juddi_provider.rb', line 104 def save_service_component_uri(service_component, uri) @broker. result = @broker.find_element_bindings(service_component, @urns['service-components']) # only one binding for service components delete_existing_bindings(result['data']['bindings']) if has_bindings?(result) @broker.save_element_bindings(service_component, [uri], @urns['service-components'], "service component") end |
#service_uris(service) ⇒ Object
71 72 73 74 75 76 |
# File 'lib/soar_sr/juddi_provider.rb', line 71 def service_uris(service) cached = @cache["service_uris:#{service}"]; return cached if cached value = @broker.find_element_bindings(service, @urns['services']) @cache["service_uris:#{service}"] = value value end |