Commit e1a99071 authored by Frank Bergmann's avatar Frank Bergmann

- Updated to OpenACS 5.9.1

parent f3cf52e5
......@@ -7,10 +7,10 @@
<initial-install-p>t</initial-install-p>
<singleton-p>t</singleton-p>
<version name="5.9.0" url="http://openacs.org/repository/download/apm/acs-service-contract-5.9.0.apm">
<version name="5.9.1" url="http://openacs.org/repository/download/apm/acs-service-contract-5.9.1.apm">
<owner url="http://openacs.org">OpenACS</owner>
<summary>API and UI for service contracts</summary>
<release-date>2015-10-04</release-date>
<release-date>2017-08-06</release-date>
<maturity>3</maturity>
<vendor url="http://openacs.org">OpenACS</vendor>
<description format="text/html">Service contracts defines an API for the creation of interfaces and discovery of interface implementations.
......@@ -18,8 +18,8 @@
url or the contracts used by dotlrn and new-portals to allow packages to provide portalized panes.</description>
<license>GPL version 2</license>
<provides url="acs-service-contract" version="5.9.0"/>
<requires url="acs-kernel" version="5.9.0"/>
<provides url="acs-service-contract" version="5.9.1"/>
<requires url="acs-kernel" version="5.9.1"/>
<callbacks>
</callbacks>
......
......@@ -77,7 +77,7 @@ as
impl_name acs_sc_impls.impl_name%TYPE
);
/* Next 2 functions are deprecated but left here for backwards compatability */
/* Next 2 functions are deprecated but left here for backwards compatibility */
function new_alias (
impl_contract_name acs_sc_contracts.contract_name%TYPE,
......
......@@ -33,7 +33,7 @@ as
impl_name acs_sc_impls.impl_name%TYPE
);
/* Next 2 functions are deprecated but left here for backwards compatability */
/* Next 2 functions are deprecated but left here for backwards compatibility */
function new_alias (
impl_contract_name acs_sc_contracts.contract_name%TYPE,
......
......@@ -372,7 +372,7 @@ as
impl_name acs_sc_impls.impl_name%TYPE
);
/* Next 2 functions are deprecated but left here for backwards compatability */
/* Next 2 functions are deprecated but left here for backwards compatibility */
function new_alias (
impl_contract_name acs_sc_contracts.contract_name%TYPE,
......
......@@ -433,11 +433,12 @@ CREATE OR REPLACE FUNCTION acs_sc_impl__delete(
p_impl_name varchar
) RETURNS integer AS $$
DECLARE
v_impl_id integer;
BEGIN
delete from acs_sc_impls
where impl_contract_name = p_impl_contract_name
and impl_name = p_impl_name;
v_impl_id := acs_sc_impl__get_id(p_impl_contract_name,p_impl_name);
perform acs_object__delete(v_impl_id);
return 0;
......
......@@ -91,7 +91,7 @@ ad_proc -public acs_sc_binding_exists_p {
@author Neophytos Demetriou
} {
return [db_string binding_exists_p {*SQL*}]
return [db_string binding_exists_p {}]
}
......@@ -126,7 +126,7 @@ ad_proc -private acs_sc_get_alias {
if {![set exists_p]} {return ""}
db_0or1row get_alias {*SQL*}
db_0or1row get_alias {}
return [list $impl_alias $impl_pl]
......@@ -160,14 +160,14 @@ ad_proc -private acs_sc_proc {
error "ACS-SC: Cannot find alias for $proc_name"
}
if {![db_0or1row get_operation_definition {*SQL*}]} {
if {![db_0or1row get_operation_definition {}]} {
ns_log warning "ACS-SC: operation definition not found for contract $contract operation $operation"
return 0
}
append docblock "\n<b>acs-service-contract operation. Call via acs_sc::invoke.</b>\n\n$operation_desc\n\n"
db_foreach operation_inputtype_element {*SQL*} {
db_foreach operation_inputtype_element {} {
lappend arguments "$element_name"
append docblock "\n@param $element_name $element_msg_type_name"
if { $element_msg_type_isset_p } {
......@@ -175,7 +175,7 @@ ad_proc -private acs_sc_proc {
}
}
db_foreach operation_outputtype_element {*SQL*} {
db_foreach operation_outputtype_element {} {
append docblock "\n@return <b>$element_name</b> - $element_msg_type_name"
if { $element_msg_type_isset_p } {
append docblock " \[\]"
......@@ -209,7 +209,7 @@ ad_proc -private acs_sc_get_statement {
} {
Builds the statement to call from the provided metadata.
@param impl_alias tcl or plpgsql proc to call
@param impl_alias Tcl or plpgsql proc to call
@param impl_pl programmimg language of the proc to call (TCL or PLPGSQL)
@param arguments list of argument names
......
......@@ -192,13 +192,7 @@ ad_proc -public acs_sc::contract::get_operations {
} {
Get a list of names of operations for the contract.
} {
return [db_list select_operations {
select o.operation_name
from acs_sc_operations o,
acs_sc_contracts c
where c.contract_name = :contract_name
and o.contract_id = c.contract_id
}]
return [db_list select_operations {}]
}
......
......@@ -88,7 +88,7 @@ ad_proc -public acs_sc::impl::new_from_spec {
<li>owner: Owner of the implementation, use the package-key.
<li>name: Name of your implementation.
<li>name: Pretty name of your implementation. You'd typically use this when displaying the service contract implementation through a UI.
<li>aliases: Specification of the tcl procedures for each of the service contract's operations.
<li>aliases: Specification of the Tcl procedures for each of the service contract's operations.
</ul>
The aliases section is itself an array-list. The keys are the operation names
......
......@@ -13,16 +13,6 @@
end;
</querytext>
</fullquery>
<fullquery name="acs_sc::msg_type::delete.delete_by_id">
<querytext>
begin
acs_sc_msg_type.del(
msg_type_id => :msg_type_id
);
end;
</querytext>
</fullquery>
<fullquery name="acs_sc::msg_type::delete.delete_by_name">
<querytext>
......
......@@ -36,7 +36,7 @@ ad_proc -public acs_sc::msg_type::delete {
# It seems like delete by ID doesn't work, because our PG bind thing turns all integers into strings
# by wrapping them in single quotes, causing PG to invoke the function for deleting by name
if {$name eq ""} {
if { $name eq "" } {
# get msg_type name
db_1row select_name {
select msg_type_name as name
......
......@@ -8,7 +8,7 @@
<h2>Contract details</h2>
<ul>
<multiple name=contract>
<li> <b>@contract.operation_name@</b> -
<li> <strong>@contract.operation_name@</strong> -
@contract.operation_desc@
<ul>
<group column="operation_name">
......
......@@ -4,7 +4,7 @@
<ul>
<multiple name=contract>
<li> <b>@contract.operation_name@</b> -
<li> <strong>@contract.operation_name@</strong> -
@contract.operation_desc@
<ul>
<group column="operation_name">
......
<property name="context">{/doc/acs-service-contract {Service Contracts}} {ACS Service Contract Documentation}</property>
<property name="context">{/doc/acs-service-contract {ACS Service Contracts}} {ACS Service Contract Documentation}</property>
<property name="doc(title)">ACS Service Contract Documentation</property>
<master>
<h1>ACS Service Contract Documentation</h1>
......@@ -30,16 +30,16 @@ only available through tcl.</p>
documentation through ad_proc.</p>
<p>The Service Contract interface specification was inspired by
WDSL, the interface specfication for web services.</p>
<h2>Hitchiker's Guide to Service Contract Definitions</h2>
<h2>Hitchiker&#39;s Guide to Service Contract Definitions</h2>
<ul>
<li>contract - analagous to interface, contracts serve as logical
<li>contract - analogous to interface, contracts serve as logical
containers for operations.</li><li>operation - a method of an interface. defines a method
signature, including both input and outputs as well as metadata
such as caching.</li><li>implementation - an implementation is a set of concrete
functions that fufills an interface.</li><li>implementation alias - is the method of an implementation that
fufills a given operation of the contract.</li><li>bindings - association between an interface and an
implementation.</li><li>types - define the kind of input and outputs a operation
recieves.</li>
receives.</li>
</ul>
<h2>Usage</h2>
<h3>Design the Contract</h3>
......@@ -47,7 +47,7 @@ recieves.</li>
mind that all implementations need to implement it and that
extension of the contract after deployment is often not practical.
In other words take the time to do a little future proofing and
thinking about possible uses that you weren't planning on.</p>
thinking about possible uses that you weren&#39;t planning on.</p>
<h3>Defining Operations</h3>
<p>Next define the logical operations that will make up your
contract</p>
......
......@@ -24,7 +24,7 @@
documentation through ad_proc.</p><p> The Service Contract interface specification was inspired by
WDSL, the interface specfication for web services.</p><h2> Hitchiker's Guide to Service Contract Definitions</h2>
<ul>
<li>contract - analagous to interface, contracts serve as logical
<li>contract - analogous to interface, contracts serve as logical
containers for operations.</li>
<li>operation - a method of an interface. defines a method signature,
including both input and outputs as well as metadata
......@@ -34,7 +34,7 @@
<li>implementation alias - is the method of an implementation that
fufills a given operation of the contract.</li>
<li>bindings - association between an interface and an implementation.</li>
<li>types - define the kind of input and outputs a operation recieves.</li>
<li>types - define the kind of input and outputs a operation receives.</li>
</ul>
<h2> Usage</h2>
<h3> Design the Contract</h3>
......
......@@ -38,7 +38,7 @@ ACS Service Contract Documentation
Hitchiker's Guide to Service Contract Definitions
- contract - analagous to interface, contracts serve as logical
- contract - analogous to interface, contracts serve as logical
containers for operations.
- operation - a method of an interface. defines a method signature,
......@@ -53,7 +53,7 @@ ACS Service Contract Documentation
- bindings - association between an interface and an implementation.
- types - define the kind of input and outputs a operation recieves.
- types - define the kind of input and outputs a operation receives.
Usage
......
......@@ -70,7 +70,7 @@ The Service Contract interface specification was inspired by
<title>Hitchiker's Guide to Service Contract Definitions</title>
<itemizedlist>
<listitem><para>
contract - analagous to interface, contracts serve as logical
contract - analogous to interface, contracts serve as logical
containers for operations.</para></listitem>
<listitem><para>
operation - a method of an interface. defines a method signature,
......@@ -85,7 +85,7 @@ implementation alias - is the method of an implementation that
<listitem><para>
bindings - association between an interface and an implementation.</para></listitem>
<listitem><para>
types - define the kind of input and outputs a operation recieves.</para></listitem>
types - define the kind of input and outputs a operation receives.</para></listitem>
</itemizedlist>
</section>
......
<property name="context">{/doc/acs-service-contract {Service Contracts}} {}</property>
<property name="context">{/doc/acs-service-contract {ACS Service Contracts}} {}</property>
<property name="doc(title)"></property>
<master>
......@@ -18,5 +18,5 @@ Binding - A concrete implementation for a particular interface.
Function - The implementation of an operation. Actors Registrar -
An entity that defines the specification of a contract and
registers it with the repository. Provider - Provides an
implementation of the contract. Dependant - Something that uses a
implementation of the contract. Dependent - Something that uses a
contract.
......@@ -32,7 +32,7 @@ Registrar - An entity that defines the specification of a contract and registers
Provider - Provides an implementation of the contract.
Dependant - Something that uses a contract.
Dependent - Something that uses a contract.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment