My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
-----------------------------------------------------------------------
-- asf_volume_server -- The volume_server application with Ada Server Faces
-- Copyright (C) 2010, 2011, 2012 Stephane Carrez
-- Written by Stephane Carrez (Stephane.Carrez@gmail.com)
--
-- Licensed 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.
-----------------------------------------------------------------------

with Ada.IO_Exceptions;
with ASF.Server.Web;
with ASF.Servlets;
with ASF.Servlets.Faces;
with ASF.Servlets.Files;
with ASF.Servlets.Measures;
with ASF.Filters.Dump;
with ASF.Beans;
with ASF.Applications;
with ASF.Applications.Main;
with ASF.Applications.Main.Configs;
with Util.Beans.Objects;
with Util.Log.Loggers;

with Countries;
with Volume;
with Messages;
procedure Asf_Volume_Server is

CONTEXT_PATH : constant String := "/volume";
CONFIG_PATH : constant String := "samples.properties";

Log : Util.Log.Loggers.Logger := Util.Log.Loggers.Create ("Openid");

Factory : ASF.Applications.Main.Application_Factory;
App : aliased ASF.Applications.Main.Application;
Faces : aliased ASF.Servlets.Faces.Faces_Servlet;
Files : aliased ASF.Servlets.Files.File_Servlet;
Perf : aliased ASF.Servlets.Measures.Measure_Servlet;
Dump : aliased ASF.Filters.Dump.Dump_Filter;
Bean : aliased Volume.Compute_Bean;
Conv : aliased Volume.Float_Converter;
WS : ASF.Server.Web.AWS_Container;
C : ASF.Applications.Config;
None : ASF.Beans.Parameter_Bean_Ref.Ref;
begin
C.Set (ASF.Applications.VIEW_EXT, ".html");
C.Set (ASF.Applications.VIEW_DIR, "samples/web");
C.Set ("web.dir", "samples/web");
begin
C.Load_Properties (CONFIG_PATH);

exception
when Ada.IO_Exceptions.Name_Error =>
Log.Error ("Cannot read application configuration file {0}", CONFIG_PATH);

end;
App.Initialize (C, Factory);
App.Set_Global ("contextPath", CONTEXT_PATH);
App.Set_Global ("compute",
Util.Beans.Objects.To_Object (Bean'Unchecked_Access,
Util.Beans.Objects.STATIC));

App.Set_Global ("countries", Util.Beans.Objects.To_Object (Countries.Create_Country_List));

-- Declare a global bean to identify this sample from within the XHTML files.
App.Set_Global ("sampleName", "volume");

-- Register the servlets and filters
App.Add_Servlet (Name => "faces", Server => Faces'Unchecked_Access);
App.Add_Servlet (Name => "files", Server => Files'Unchecked_Access);
App.Add_Filter (Name => "dump", Filter => Dump'Unchecked_Access);
App.Add_Servlet (Name => "perf", Server => Perf'Unchecked_Access);
App.Add_Filter (Name => "perf", Filter => Perf'Unchecked_Access);

-- Define servlet mappings
App.Add_Mapping (Name => "faces", Pattern => "*.html");
App.Add_Mapping (Name => "files", Pattern => "*.css");
App.Add_Mapping (Name => "files", Pattern => "*.js");
App.Add_Mapping (Name => "files", Pattern => "*.png");
App.Add_Filter_Mapping (Name => "dump", Pattern => "*.html");
App.Add_Filter_Mapping (Name => "dump", Pattern => "*.js");

App.Add_Converter (Name => "float", Converter => Conv'Unchecked_Access);

App.Register_Class (Name => "Message_Bean", Handler => Messages.Create_Message_Bean'Access);
App.Register_Class (Name => "Message_List", Handler => Messages.Create_Message_List'Access);
App.Register (Name => "message", Class => "Message_Bean", Params => None);
App.Register (Name => "messages", Class => "Message_List", Params => None);

ASF.Applications.Main.Configs.Read_Configuration (App, "samples/web/WEB-INF/web.xml");
WS.Register_Application (CONTEXT_PATH, App'Unchecked_Access);

Log.Info ("Connect you browser to: http://localhost:8080/volume/compute.html");
WS.Start;

delay 6000.0;

end Asf_Volume_Server;

Change log

r686 by Stephane.Carrez on Feb 5, 2012   Diff
New sample forum application to illustrate
lists and some ajax actions
- display a list of forum messages,
- allows users to add a forum message
using an AJAX form
- implement the forum storage using an Ada
vector container
Go to: 
Project members, sign in to write a code review

Older revisions

r680 by Stephane.Carrez on Feb 5, 2012   Diff
New documentation for h:outputText and
f:selectItems
New sample bean to show how to create
a f:selectItems value list
r662 by Stephane.Carrez on Jan 29, 2012   Diff
Example and documentation for jstl
tags
r644 by Stephane.Carrez on Jan 22, 2012   Diff
Add a global bean to identify the
application from the XHTML files
All revisions of this file

File info

Size: 4357 bytes, 107 lines
Powered by Google Project Hosting