Commit c4d27b06 authored by Frank Bergmann's avatar Frank Bergmann

- Upgrade to OpenACS 5.6

parent 4716a550
This diff is collapsed.
update acs_objects
set title = (select msg_type_name
from acs_sc_msg_types
where msg_type_id = object_id)
where object_type = 'acs_sc_msg_type';
update acs_objects
set title = (select contract_name
from acs_sc_contracts
where contract_id = object_id)
where object_type = 'acs_sc_contract';
update acs_objects
set title = (select operation_name
from acs_sc_operations
where operation_id = object_id)
where object_type = 'acs_sc_operation';
update acs_objects
set title = (select impl_pretty_name
from acs_sc_impls
where impl_id = object_id)
where object_type = 'acs_sc_implementation';
drop function acs_sc_msg_type__new(varchar,varchar);
create or replace function acs_sc_msg_type__new(varchar,varchar)
returns integer as '
declare
p_msg_type_name alias for $1;
p_msg_type_spec alias for $2;
v_msg_type_id integer;
begin
v_msg_type_id := acs_object__new(
null,
''acs_sc_msg_type'',
now(),
null,
null,
null,
''t'',
p_msg_type_name,
null
);
insert into acs_sc_msg_types (
msg_type_id,
msg_type_name
) values (
v_msg_type_id,
p_msg_type_name
);
perform acs_sc_msg_type__parse_spec(p_msg_type_name,p_msg_type_spec);
return v_msg_type_id;
end;' language 'plpgsql';
drop function acs_sc_contract__new(varchar,text);
create or replace function acs_sc_contract__new(varchar,text)
returns integer as '
declare
p_contract_name alias for $1;
p_contract_desc alias for $2;
v_contract_id integer;
begin
v_contract_id := acs_object__new(
null,
''acs_sc_contract'',
now(),
null,
null,
null,
''t'',
p_contract_name,
null
);
insert into acs_sc_contracts (
contract_id,
contract_name,
contract_desc
) values (
v_contract_id,
p_contract_name,
p_contract_desc
);
return v_contract_id;
end;' language 'plpgsql';
drop function acs_sc_operation__new(varchar,varchar,text,boolean,integer,varchar,varchar);
create or replace function acs_sc_operation__new(varchar,varchar,text,boolean,integer,varchar,varchar)
returns integer as '
declare
p_contract_name alias for $1;
p_operation_name alias for $2;
p_operation_desc alias for $3;
p_operation_iscachable_p alias for $4;
p_operation_nargs alias for $5;
p_operation_inputtype alias for $6;
p_operation_outputtype alias for $7;
v_contract_id integer;
v_operation_id integer;
v_operation_inputtype_id integer;
v_operation_outputtype_id integer;
begin
v_contract_id := acs_sc_contract__get_id(p_contract_name);
v_operation_id := acs_object__new(
null,
''acs_sc_operation'',
now(),
null,
null,
null,
''t'',
p_operation_name,
null
);
v_operation_inputtype_id := acs_sc_msg_type__get_id(p_operation_inputtype);
v_operation_outputtype_id := acs_sc_msg_type__get_id(p_operation_outputtype);
insert into acs_sc_operations (
contract_id,
operation_id,
contract_name,
operation_name,
operation_desc,
operation_iscachable_p,
operation_nargs,
operation_inputtype_id,
operation_outputtype_id
) values (
v_contract_id,
v_operation_id,
p_contract_name,
p_operation_name,
p_operation_desc,
p_operation_iscachable_p,
p_operation_nargs,
v_operation_inputtype_id,
v_operation_outputtype_id
);
return v_operation_id;
end;' language 'plpgsql';
drop function acs_sc_impl__new(varchar,varchar,varchar,varchar);
create or replace function acs_sc_impl__new(varchar,varchar,varchar,varchar)
returns integer as '
declare
p_impl_contract_name alias for $1;
p_impl_name alias for $2;
p_impl_pretty_name alias for $3;
p_impl_owner_name alias for $4;
v_impl_id integer;
begin
v_impl_id := acs_object__new(
null,
''acs_sc_implementation'',
now(),
null,
null,
null,
''t'',
p_impl_pretty_name,
null
);
insert into acs_sc_impls (
impl_id,
impl_name,
impl_pretty_name,
impl_owner_name,
impl_contract_name
) values (
v_impl_id,
p_impl_name,
p_impl_pretty_name,
p_impl_owner_name,
p_impl_contract_name
);
return v_impl_id;
end;' language 'plpgsql';
-- / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
-- This upgrade provides for the registering
-- of ACS SC db procedures with the PostgreSQL
-- 'package' infrastructure (acs_function_args).
-- $Id$
-- // acs-sc-packages-create.sql //
-- acs_sc_contract__new(varchar,text)
select define_function_args('acs_sc_contract__new','contract_name,contract_desc');
-- acs_sc_contract__get_id(varchar)
select define_function_args('acs_sc_contract__get_id','contract_name');
-- acs_sc_contract__get_name(integer)
select define_function_args('acs_sc_contract__get_name','contract_id');
-- acs_sc_contract__delete(varchar)
select define_function_args('acs_sc_contract__delete','contract_name');
-- acs_sc_operation__new(varchar,varchar,text,boolean,integer,varchar,varchar)
select define_function_args('acs_sc_operation__new','contract_name,operation_name,operation_desc,operation_iscachable_p;f,operation_nargs,operation_inputtype,operation_outputtype');
-- acs_sc_operation__get_id(varchar,varchar)
select define_function_args('acs_sc_operation__get_id','contract_name,operation_name');
-- acs_sc_operation__delete(integer)
select define_function_args('acs_sc_operation__delete','operation_id');
-- acs_sc_impl__new(varchar,varchar,varchar,varchar)
select define_function_args('acs_sc_impl__new','impl_contract_name,impl_name,impl_pretty_name,impl_owner_name');
-- acs_sc_impl__get_id(varchar,varchar)
select define_function_args('acs_sc_impl__get_id','impl_contract_name,impl_name');
-- acs_sc_impl__get_name(integer)
select define_function_args('acs_sc_impl__get_name','impl_id');
-- acs_sc_impl__delete(varchar,varchar)
select define_function_args('acs_sc_impl__delete','impl_contract_name,impl_name');
-- acs_sc_impl_alias__new(varchar,varchar,varchar,varchar,varchar)
select define_function_args('acs_sc_impl_alias__new','impl_contract_name,impl_name,impl_operation_name,impl_alias,impl_pl');
-- acs_sc_impl_alias__delete(varchar,varchar,varchar)
select define_function_args('acs_sc_impl_alias__delete','impl_contract_name,impl_name,impl_operation_name');
-- acs_sc_binding__new(varchar,varchar)
select define_function_args('acs_sc_binding__new','contract_name,impl_name');
-- acs_sc_binding__delete(varchar,varchar)
select define_function_args('acs_sc_binding__delete','contract_name,impl_name');
-- acs_sc_binding__exists_p(varchar,varchar)
select define_function_args('acs_sc_binding__exists_p','contract_name,impl_name');
-- // acs-sc-msg-types-create.sql //
-- acs_sc_msg_type__new(varchar,varchar)
select define_function_args('acs_sc_msg_type__new','msg_type_name,msg_type_spec');
-- acs_sc_msg_type__get_id(varchar)
select define_function_args('acs_sc_msg_type__get_id','msg_type_name');
-- acs_sc_msg_type__get_name(integer)
select define_function_args('acs_sc_msg_type__get_name','msg_type_id');
-- acs_sc_msg_type__delete(varchar)
select define_function_args('acs_sc_msg_type__delete','msg_type_name');
-- acs_sc_msg_type__new_element(varchar,varchar,varchar,boolean,integer)
select define_function_args('acs_sc_msg_type__new_element','msg_type_name,element_name,element_msg_type_name,element_msg_type_isset_p;f,element_pos');
-- acs_sc_msg_type__parse_spec(varchar,varchar)
select define_function_args('acs_sc_msg_type__parse_spec','msg_type_name,msg_type_spec');
\ No newline at end of file
<master>
<property name="title">Contract @contract_name;noquote@</property>
<property name="context">{@contract_name;noquote@}</property>
<h2>Binding @contract_name@</h2>
<p><listtemplate name="binding"></listtemplate></p>
<h2>Contract details</h2>
<ul>
<multiple name=contract>
<li> <b>@contract.operation_name@</b> -
@contract.operation_desc@
<ul>
<group column="operation_name">
<li>@contract.inout@ @contract.param@
@contract.param_type@ <if @contract.set_p@ eq t>[]</if></li>
</group>
</ul>
</multiple>
</ul>
ad_page_contract {
Display a given service contract
@author Jeff Davis <davis@xarg.net>
@creation-date 2005-02-05
@cvs-id $Id$
} {
id
impl_name:trim,notnull
}
set contract_name [db_string contract_name {select contract_name from acs_sc_contracts where contract_id = :id}]
db_multirow contract contract {
select o.contract_name, o.operation_name, o.operation_desc, (case when t.msg_type_id = o.operation_inputtype_id then 'input' else 'output' end) as inout,
e.element_name as param, e.element_msg_type_isset_p as set_p, et.msg_type_name as param_type
from acs_sc_operations o,
acs_sc_msg_types t,
acs_sc_msg_type_elements e,
acs_sc_msg_types et
where contract_id = :id
and t.msg_type_id in (o.operation_inputtype_id, operation_outputtype_id)
and e.msg_type_id = t.msg_type_id
and et.msg_type_id = e.element_msg_type_id
order by o.contract_name, o.operation_name, t.msg_type_name, e.element_pos }
template::list::create \
-name binding \
-multirow binding \
-elements {
impl_operation_name {
label "Operation"
}
impl_pl {
label "Language"
}
impl_alias {
label "Alias"
display_template {@binding.impl_alias;noquote@}
}
}
db_multirow -extend {check} binding binding {
select impl_operation_name, impl_alias, impl_pl
from acs_sc_impl_aliases
where impl_name = :impl_name and impl_contract_name = :contract_name
order by lower(impl_operation_name)
} {
if {$impl_pl eq "TCL"} {
regsub {^::} $impl_alias {} impl_alias
if {[info proc ::$impl_alias] ne ""} {
append impl_alias "</b> {[info args ::$impl_alias]}"
} elseif {[llength $impl_alias]>1
&& [info command ::xotcl::Object] ne ""
&& [::xotcl::Object isobject [lindex $impl_alias 0]]
&& [[lindex $impl_alias 0] info methods [lindex $impl_alias 1]] ne ""} {
# - it looks like a method,
# - we have XOTcl installed,
# - the first word is an object,
# - the second word is a method for the object,
# ... so provide a link to the XOTcl api browser
set href "/xotcl/show-object?object=[lindex $impl_alias 0]&show_methods=2"
append impl_alias "<a href='$href'>" \
"<img border='0' src='/resources/acs-subsite/ZoomIn16.gif'></a>"
} else {
append impl_alias {</b> - <b style="color: red">NOT FOUND!</b>}
}
set impl_alias "<b>$impl_alias"
}
}
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