summaryrefslogtreecommitdiffstats
path: root/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model
diff options
context:
space:
mode:
Diffstat (limited to 'tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model')
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp154
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h140
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.cpp59
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.h96
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.cpp52
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.h78
6 files changed, 0 insertions, 579 deletions
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp b/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp
deleted file mode 100644
index 877b98e7b4..0000000000
--- a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/ruby/model/RubyImplementation.h"
-#include "tuscany/sca/ruby/model/RubyServiceBinding.h"
-#include "tuscany/sca/ruby/model/RubyReferenceBinding.h"
-#include "tuscany/sca/model/Component.h"
-#include "tuscany/sca/model/Composite.h"
-#include "tuscany/sca/model/Service.h"
-#include "tuscany/sca/model/ServiceType.h"
-#include "tuscany/sca/model/Reference.h"
-#include "tuscany/sca/model/ReferenceType.h"
-#include "tuscany/sca/util/Utils.h"
-
-namespace tuscany
-{
- namespace sca
- {
-
- namespace ruby
- {
-
- bool RubyImplementation::initialized = false;
- VALUE RubyImplementation::xmlDocumentClass = 0;
-
- // Constructor
- RubyImplementation::RubyImplementation(Composite* composite, const string& module, const string& className, const string& script)
- : ComponentType(composite, script.substr(0, script.find_last_of('.'))),
- module(module), className(className), script(script)
- {
- loadClass();
- }
-
- RubyImplementation::~RubyImplementation()
- {
- }
-
- void RubyImplementation::loadClass()
- {
- // Initialize the Ruby runtime
- if (!initialized)
- {
- ruby_init();
- ruby_init_loadpath();
-
- // Load the Rexml module. Rexml is used to handle XML documents.
- //rb_require("rexml/document");
- // Use rb_eval_string for now as it provides better error reporting
- rb_eval_string("require(\"rexml/document\")");
-
- xmlDocumentClass = rb_path2class("REXML::Document");
-
- initialized = true;
- }
-
- // Load the specified Ruby script
- if (script != "")
- {
- // Convert any windows slashes \ in the root path to unix slashes /
- // otherwise the ruby interpreter throws an error
- string rootpath = getComposite()->getRoot();
- int pos = 0;
- while((pos = rootpath.find('\\', pos)) != string::npos)
- {
- rootpath = rootpath.replace(pos, 1, "/");
- }
-
- // Use rb_eval_string for now as it provides better error reporting
- string path = "require(\"" + rootpath + "/" + script +"\")";
- //rb_require((char *)path.c_str());
- rb_eval_string(path.c_str());
- }
-
- // Load the Ruby implementation class
- implementationClass = rb_path2class(className.c_str());
-
- // Create a default service
- ServiceType* defaultServiceType = new ServiceType(this, "", NULL, NULL);
- addServiceType(defaultServiceType);
-
- // Introspect the Ruby class and create references and properties for
- // all public attributes
- VALUE methods = rb_class_public_instance_methods(0, NULL, implementationClass);
- int n = RARRAY(methods)->len;
- for (int i = 0; i<n; i++)
- {
- VALUE method = rb_ary_entry(methods, i);
- string methodName = string(rb_string_value_cstr(&method));
-
- // Create a reference type for each setter method
- int s = methodName.size();
- if (s > 1 && methodName[s-1] == '=' && methodName[0] != '=')
- {
- string variableName = methodName.substr(0, s-1);
- ReferenceType* referenceType = new ReferenceType(
- this, variableName, NULL, NULL, ReferenceType::ONE_ONE);
- addReferenceType(referenceType);
-
- // Create a property type as well
- addPropertyType(variableName, "http://www.w3.org/2001/XMLSchema#string", false, NULL);
-
- }
- }
- }
-
- void RubyImplementation::initializeComponent(Component* component)
- {
- ComponentType::initializeComponent(component);
-
- // Create Ruby bindings for all the services
- const Component::SERVICE_MAP& services = component->getServices();
- Component::SERVICE_MAP::const_iterator iter = services.begin();
- for (int i=0; i< services.size(); i++)
- {
- Service *service = iter->second;
- RubyServiceBinding* binding = new RubyServiceBinding(service);
- service->setBinding(binding);
- iter++;
- }
-
- // Create Ruby bindings for all the references
- const Component::REFERENCE_MAP& references = component->getReferences();
- Component::REFERENCE_MAP::const_iterator refiter = references.begin();
- for (int ri=0; ri< references.size(); ri++)
- {
- Reference *reference = refiter->second;
- RubyReferenceBinding* binding = new RubyReferenceBinding(reference);
- reference->setBinding(binding);
- refiter++;
- }
- }
-
- } // End namespace ruby
- } // End namespace sca
-} // End namespace tuscany
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h b/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h
deleted file mode 100644
index 32b5801f42..0000000000
--- a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-
-#ifndef tuscany_sca_ruby_model_rubyimplementation_h
-#define tuscany_sca_ruby_model_rubyimplementation_h
-#include "tuscany/sca/model/ComponentType.h"
-
-#include <map>
-using std::map;
-#include <string>
-using std::string;
-
-#include "tuscany/sca/ruby/Ruby.h"
-
-using namespace tuscany::sca::model;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace ruby
- {
- /**
- * Holds information about an SCA implementation written in Ruby
- */
- class RubyImplementation : public ComponentType
- {
-
- public:
- /**
- * Constructor.
- * @param composite The composite containing this implementation.
- * @param module Name of the Ruby module.
- * @param className Name of the Ruby implementation class.
- * @param script Path of the Ruby script.
- */
- RubyImplementation(Composite* composite, const string& module, const string& className, const string& script);
-
- /**
- * Destructor
- */
- virtual ~RubyImplementation();
-
- /**
- * Initialize a component of this type.
- * @param component The component to initialize.
- */
- virtual void initializeComponent(Component* component);
-
- /**
- * Returns the name of the Ruby module.
- * @return The name of the Ruby module.
- */
- const string& getModule() const { return module; }
-
- /**
- * Returns the name of Ruby class.
- * @return Name of the Ruby class.
- */
- const string& getClass() const { return className; }
-
- /**
- * Returns the path of the Ruby script.
- * @return The path of the Ruby script.
- */
- const string& getScript() const { return script; }
-
- /**
- * Returns the Ruby implementation class
- */
- VALUE getImplementationClass() const { return implementationClass; }
-
- /**
- * Returns the Ruby REXML::Document class
- */
- static VALUE getXMLDocumentClass() { return xmlDocumentClass; }
-
- private:
-
- /**
- * Load the Ruby implementation class
- */
- void loadClass();
-
- /**
- * Name of the Ruby module.
- */
- string module;
-
- /**
- * Name of the Ruby class.
- */
- string className;
-
- /**
- * Path of the Ruby script.
- */
- string script;
-
- /**
- * The Ruby implementation class
- */
- VALUE implementationClass;
-
- /**
- * True if the Ruby runtime has been initialized
- */
- static bool initialized;
-
- /**
- * The Ruby REXML::Document class.
- */
- static VALUE xmlDocumentClass;
-
- };
-
- } // End namespace ruby
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_ruby_model_rubyimplementation_h
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.cpp b/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.cpp
deleted file mode 100644
index 0e813983f2..0000000000
--- a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/ruby/model/RubyReferenceBinding.h"
-#include "tuscany/sca/ruby/RubyServiceProxy.h"
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace ruby
- {
-
- // Constructor
- RubyReferenceBinding::RubyReferenceBinding(Reference* reference)
- : ReferenceBinding(reference, ""), serviceProxy(NULL), targetServiceBinding(NULL)
- {
- }
-
- // Destructor
- RubyReferenceBinding::~RubyReferenceBinding()
- {
- }
-
- ServiceProxy* RubyReferenceBinding::getServiceProxy()
- {
- return serviceProxy;
- }
-
- void RubyReferenceBinding::configure(ServiceBinding* binding)
- {
- targetServiceBinding = binding;
-
- serviceProxy = new RubyServiceProxy(getReference());
- }
-
- } // End namespace ruby
- } // End namespace sca
-} // End namespace tuscany
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.h b/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.h
deleted file mode 100644
index cab1c22c48..0000000000
--- a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-
-#ifndef tuscany_sca_ruby_model_rubyreferencebinding_h
-#define tuscany_sca_ruby_model_rubyreferencebinding_h
-
-#include "tuscany/sca/model/ReferenceBinding.h"
-
-
-#include <string>
-using std::string;
-
-using namespace tuscany::sca::model;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace ruby
- {
- /**
- * Information about a Ruby service binding for service or a reference.
- */
- class RubyReferenceBinding : public ReferenceBinding
- {
- public:
-
- /**
- * Constructor.
- */
- RubyReferenceBinding(Reference* reference);
-
- /**
- * Destructor.
- */
- virtual ~RubyReferenceBinding();
-
- /**
- * Returns the type of binding.
- */
- virtual string getType() { return "http://www.osoa.org/xmlns/sca/1.0#RubyImplementationBinding"; };
-
- /**
- * Create a proxy representing the reference to the
- * client component.
- */
- virtual ServiceProxy* getServiceProxy();
-
- /**
- * Configure this binding from a service binding.
- */
- virtual void configure(ServiceBinding* serviceBinding);
-
- /**
- * Returns the target service binding.
- */
- ServiceBinding* getTargetServiceBinding() const { return targetServiceBinding; };
-
- private:
-
- /**
- * The proxy representing the reference to the client
- * component.
- */
- ServiceProxy* serviceProxy;
-
- /**
- * The service binding of the target
- */
- ServiceBinding* targetServiceBinding;
- };
-
- } // End namespace ruby
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_ruby_model_rubyreferencebinding_h
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.cpp b/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.cpp
deleted file mode 100644
index 376a4db0f7..0000000000
--- a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/ruby/model/RubyServiceBinding.h"
-#include "tuscany/sca/ruby/RubyServiceWrapper.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace ruby
- {
-
- // Constructor
- RubyServiceBinding::RubyServiceBinding(Service* service)
- : ServiceBinding(service, "")
- {
- serviceWrapper = new RubyServiceWrapper(service);
- }
-
- // Destructor
- RubyServiceBinding::~RubyServiceBinding()
- {
- }
-
- ServiceWrapper* RubyServiceBinding::getServiceWrapper()
- {
- return (ServiceWrapper*)serviceWrapper;
- }
-
- } // End namespace ws
- } // End namespace sca
-} // End namespace tuscany
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.h b/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.h
deleted file mode 100644
index 24c0275bb9..0000000000
--- a/tags/cpp-1.0-incubating-M2-RC1/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-
-#ifndef tuscany_sca_ruby_model_rubyservicebinding_h
-#define tuscany_sca_ruby_model_rubyservicebinding_h
-
-#include "tuscany/sca/model/ServiceBinding.h"
-using namespace tuscany::sca::model;
-#include <string>
-using std::string;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace ruby
- {
- /**
- * Information about a Ruby service binding for service or a reference.
- */
- class RubyServiceBinding : public ServiceBinding
- {
- public:
-
- /**
- * Constructor.
- */
- RubyServiceBinding(Service* service);
-
- /**
- * Destructor.
- */
- virtual ~RubyServiceBinding();
-
- /**
- * Returns the type of binding.
- */
- virtual string getType() { return "http://www.osoa.org/xmlns/sca/1.0#RubyImplementationBinding"; };
-
- /**
- * Create a wrapper for the service configured by this
- * binding.
- */
- virtual ServiceWrapper* getServiceWrapper();
-
- private:
-
- /**
- * The wrapper for the service configured by this binding.
- */
- ServiceWrapper* serviceWrapper;
-
- };
-
- } // End namespace ruby
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_ruby_model_rubyservicebinding_h