Class: SoarSr::JUDDIProvider
- Inherits:
-
Object
- Object
- SoarSr::JUDDIProvider
- Defined in:
- lib/soar_sr/juddi_provider.rb
Constant Summary collapse
- MAX_THREADS =
10
Instance Attribute Summary collapse
-
#broker ⇒ Object
readonly
Returns the value of attribute broker.
-
#cache ⇒ Object
readonly
Returns the value of attribute cache.
-
#cache_freshness ⇒ Object
readonly
Returns the value of attribute cache_freshness.
-
#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(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.
13 14 15 16 17 18 |
# File 'lib/soar_sr/juddi_provider.rb', line 13 def initialize(urns, broker, cache_freshness) @urns = urns @broker = broker @cache_freshness = cache_freshness @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.
8 9 10 |
# File 'lib/soar_sr/juddi_provider.rb', line 8 def broker @broker end |
#cache ⇒ Object (readonly)
Returns the value of attribute cache.
10 11 12 |
# File 'lib/soar_sr/juddi_provider.rb', line 10 def cache @cache end |
#cache_freshness ⇒ Object (readonly)
Returns the value of attribute cache_freshness.
11 12 13 |
# File 'lib/soar_sr/juddi_provider.rb', line 11 def cache_freshness @cache_freshness end |
#urns ⇒ Object (readonly)
Returns the value of attribute urns.
9 10 11 |
# File 'lib/soar_sr/juddi_provider.rb', line 9 def urns @urns end |
Instance Method Details
#add_service_uri(service, uri) ⇒ Object
59 60 61 62 63 |
# File 'lib/soar_sr/juddi_provider.rb', line 59 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
27 28 29 30 31 32 |
# File 'lib/soar_sr/juddi_provider.rb', line 27 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
20 21 22 23 24 25 |
# File 'lib/soar_sr/juddi_provider.rb', line 20 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
140 141 142 143 |
# File 'lib/soar_sr/juddi_provider.rb', line 140 def delete_business(key) @broker. @broker.delete_business(key) end |
#delete_service(name) ⇒ Object
46 47 48 49 |
# File 'lib/soar_sr/juddi_provider.rb', line 46 def delete_service(name) @broker. @broker.delete_service_element(name, @urns['services']) end |
#delete_service_component(name) ⇒ Object
92 93 94 95 |
# File 'lib/soar_sr/juddi_provider.rb', line 92 def delete_service_component(name) @broker. @broker.delete_service_element(name, @urns['service-components']) end |
#find_businesses(pattern = nil) ⇒ Object
132 133 134 135 136 137 138 |
# File 'lib/soar_sr/juddi_provider.rb', line 132 def find_businesses(pattern = nil) pattern = pattern.nil? ? '%' : "%#{pattern}%" key = "find_businesses:#{pattern}" lookup_and_cache(key) do @broker.find_business(pattern) end end |
#find_service_component_uri(service_component) ⇒ Object
113 114 115 116 117 118 |
# File 'lib/soar_sr/juddi_provider.rb', line 113 def find_service_component_uri(service_component) key = "find_service_component_uri:#{service_component}" lookup_and_cache(key) do @broker.find_element_bindings(service_component, @urns['service-components']) end end |
#find_service_components(pattern = nil) ⇒ Object
97 98 99 100 101 102 103 |
# File 'lib/soar_sr/juddi_provider.rb', line 97 def find_service_components(pattern = nil) pattern = pattern.nil? ? '%' : "%#{pattern}%" key = "find_service_components:#{pattern}" lookup_and_cache(key) do @broker.find_service_components(pattern) end end |
#find_services(pattern = nil) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/soar_sr/juddi_provider.rb', line 51 def find_services(pattern = nil) pattern = pattern.nil? ? '%' : "%#{pattern}%" key = "find_services:#{pattern}" lookup_and_cache(key) do @broker.find_services(pattern) end end |
#get_business(business_key) ⇒ Object
125 126 127 128 129 130 |
# File 'lib/soar_sr/juddi_provider.rb', line 125 def get_business(business_key) key = "get_business:#{business_key}" lookup_and_cache(key) do @broker.get_business(business_key) end end |
#get_service(name) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/soar_sr/juddi_provider.rb', line 34 def get_service(name) key = "get_service:#{name}" lookup_and_cache(key) do @broker.get_service_element(name, @urns['services']) end end |
#get_service_component(name) ⇒ Object
80 81 82 83 84 85 |
# File 'lib/soar_sr/juddi_provider.rb', line 80 def get_service_component(name) key = "get_service_component:#{name}" lookup_and_cache(key) do @broker.get_service_element(name, @urns['service-components']) end end |
#remove_service_uri(service, uri) ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/soar_sr/juddi_provider.rb', line 65 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
120 121 122 123 |
# File 'lib/soar_sr/juddi_provider.rb', line 120 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
41 42 43 44 |
# File 'lib/soar_sr/juddi_provider.rb', line 41 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
87 88 89 90 |
# File 'lib/soar_sr/juddi_provider.rb', line 87 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
105 106 107 108 109 110 111 |
# File 'lib/soar_sr/juddi_provider.rb', line 105 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
73 74 75 76 77 78 |
# File 'lib/soar_sr/juddi_provider.rb', line 73 def service_uris(service) key = "service_uris:#{service}" lookup_and_cache(key) do @broker.find_element_bindings(service, @urns['services']) end end |