diff --git a/Services/core.rb b/Services/core.rb index e8e74c5..cd18d35 100755 --- a/Services/core.rb +++ b/Services/core.rb @@ -12,7 +12,7 @@ module Gem::UserInteraction def terminate_interaction(exit_code = 0) # Suppress the instruction to exit ruby: # ui.terminate_interaction exit_code - end + end end # class Object @@ -1801,7 +1801,7 @@ core_service.on(:at_start, {:description => "System Service Layer Startup", :usa ::GxG::Engine::determine_loads() end end -core_service.on(:at_stop, {:description => "System Service Layer Shutdown", :usage => "{ :at_stop => (service-object) }", :public => false}) do |service| +core_service.on(:at_stop, {:description => "System Service Layer Shutdown", :usage => "{ :at_stop => (service-object) }", :public => false}) do |service, credential| # ### Stop Services ::GxG::Services::stop_order().each do |the_service_moniker| unless the_service_moniker == :core @@ -1838,16 +1838,6 @@ core_service.on(:at_stop, {:description => "System Service Layer Shutdown", :usa end # end - # ### Startup Scripts - Dir.entries("#{::GxG::SYSTEM_PATHS[:system]}/Startup").each do |entry| - if File.extname(entry) == ".rb" - begin - require "#{::GxG::SYSTEM_PATHS[:system]}/Startup/#{entry}" - rescue Exception => the_error - log_error({:error => the_error}) - end - end - end # end # ### Provide Universal Resouce Access @@ -1890,6 +1880,17 @@ Signal.trap("HUP") do exit(0) end # +# ### Startup Scripts +Dir.entries("#{::GxG::SYSTEM_PATHS[:system]}/Startup").each do |entry| + if File.extname(entry) == ".rb" + begin + require "#{::GxG::SYSTEM_PATHS[:system]}/Startup/#{entry}" + rescue Exception => the_error + log_error({:error => the_error}) + end + end +end +# unless ($0 == "irb" || $0 == "jirb" || Module.constants.include?(:IRB)) # ### Place-holder loop for running in the background while true do diff --git a/Services/federation/federation.rb b/Services/federation/federation.rb index 201f244..8bba0c1 100644 --- a/Services/federation/federation.rb +++ b/Services/federation/federation.rb @@ -20,24 +20,26 @@ federation_service.on(:resume, {:description => "Federation Service Resume", :us end # ### Define Internal Service Control Events: federation_service.on(:at_start, {:description => "Federation Startup", :usage => "{ :at_start => (service-object) }"}) do |service, credential| - # ::GxG::GXG_FEDERATION = {:title => "Untitled", :uuid => nil, :available => {}, :connections => {}} + # GXG_FEDERATION = {:title => "Untitled", :uuid => nil, :access_url => nil, :available => {}, :connections => {}} ::GxG::GXG_FEDERATION_SAFETY.synchronize { ::GxG::GXG_FEDERATION[:uuid] = federation_service.configuration[:uuid] ::GxG::GXG_FEDERATION[:title] = federation_service.configuration[:title] + # ::GxG::SERVICES[:www].configuration[:relative_url] + ::GxG::GXG_FEDERATION[:access_url] = federation_service.configuration[:access_url] } # {:result => true} end # -federation_service.on(:at_stop, {:description => "Federation Stop", :usage => "{ :at_stop => (service-object) }", :public => false}) do |service| +federation_service.on(:at_stop, {:description => "Federation Stop", :usage => "{ :at_stop => (service-object) }", :public => false}) do |service,credential| # # {:result => true} end # -federation_service.on(:connect, {:description => "Federation Connect", :usage => "{ :connect => (uuid) }", :public => false}) do |data| - # +federation_service.on(:connect, {:description => "Federation Connect", :usage => "{ :connect => {:uuid => (uuid), :username => String, :password => String} }", :public => false}) do |data, credential| + # {:uuid => localuuid, :title => localtitle, :access_url => localaccess, :bridge_challenge => @bridge_challenge} if ::GxG::valid_uuid?(data.to_s.to_sym) ::GxG::CHANNELS.create_channel(data.to_s.to_sym) ::GxG::GXG_FEDERATION_SAFETY.synchronize { {:result => {:uuid => ::GxG::GXG_FEDERATION[:uuid], :title => ::GxG::GXG_FEDERATION[:title]}} } @@ -47,7 +49,7 @@ federation_service.on(:connect, {:description => "Federation Connect", :usage => # end # -federation_service.on(:disconnect, {:description => "Federation Disconnect", :usage => "{ :disconnect => (uuid) }", :public => false}) do |data| +federation_service.on(:disconnect, {:description => "Federation Disconnect", :usage => "{ :disconnect => (uuid) }", :public => false}) do |data,credential| # if ::GxG::valid_uuid?(data.to_s.to_sym) ::GxG::CHANNELS.destroy_channel(data.to_s.to_sym) @@ -58,7 +60,7 @@ federation_service.on(:disconnect, {:description => "Federation Disconnect", :us # end # -federation_service.on(:operation, {:description => "Perform Operation(s)", :usage => "{ :operation => (Hash/Array) }", :public => false}) do |data| +federation_service.on(:operation, {:description => "Perform Operation(s)", :usage => "{ :operation => (Hash/Array) }", :public => false}) do |data,credential| # operation(data) result = {:result => false} if data.is_any?(::Array, ::Hash) @@ -103,7 +105,7 @@ federation_service.on(:operation, {:description => "Perform Operation(s)", :usag result end # -federation_service.on(:channel_exist, {:description => "Does a channel exist?", :usage => "{ :channel_exist => (uuid) }", :public => false}) do |data| +federation_service.on(:channel_exist, {:description => "Does a channel exist?", :usage => "{ :channel_exist => (uuid) }", :public => false}) do |data,credential| # channel_exist(the_uuid) if ::GxG::valid_uuid?(data.to_s.to_sym) the_channel = ::GxG::CHANNELS.fetch_channel(data.to_s.to_sym) @@ -119,7 +121,7 @@ federation_service.on(:channel_exist, {:description => "Does a channel exist?", end # # -federation_service.on(:next_message, {:description => "Get a message", :usage => "{ :next_message => (uuid) }", :public => false}) do |data| +federation_service.on(:next_message, {:description => "Get a message", :usage => "{ :next_message => (uuid) }", :public => false}) do |data,credential| # next_message(the_uuid) if ::GxG::valid_uuid?(data.to_s.to_sym) {:result => ::GxG::CHANNELS.next_message(data.to_s.to_sym)} @@ -129,7 +131,7 @@ federation_service.on(:next_message, {:description => "Get a message", :usage => # end # -federation_service.on(:send_message, {:description => "Send a message", :usage => "{ :send_message => {:uuid => (uuid), :message => (message)} }", :public => false}) do |data| +federation_service.on(:send_message, {:description => "Send a message", :usage => "{ :send_message => {:uuid => (uuid), :message => (message)} }", :public => false}) do |data,credential| # send_message(the_uuid, the_message) if ::GxG::valid_uuid?(data[:uuid].to_s.to_sym) {:result => ::GxG::CHANNELS.send_message(data[:uuid].to_s.to_sym, data[:message])} @@ -144,6 +146,8 @@ unless ::GxG::Services::service_available?(:federation) # Set Configuration Defaults federation_service.configuration[:title] = "Untitled" federation_service.configuration[:uuid] = ::GxG::uuid_generate.to_s + federation_service.configuration[:access_url] = nil + # ::GxG::SERVICES[:www].configuration[:relative_url] federation_service.save_configuration ::GxG::Services::install_service(:federation) ::GxG::Services::enable_service(:federation) diff --git a/seeds/gxg-framework-current.gem b/seeds/gxg-framework-current.gem index 7123162..5c49826 100644 Binary files a/seeds/gxg-framework-current.gem and b/seeds/gxg-framework-current.gem differ