Revision history for Elive
0.96 20th June 2011
0.95 28th June 2011
[A pretty big release. This introduces Elive::Entity::Session; ELM 3.0
compatible meeting/session creation and management].
- New class Elive::Entity::Session. This implements inserts and updates
via the ELM 3.x createSession and updateSession commands.
-- Recurring meetings and telephony are not yet implemented.
-- I'm not using this in production anywhere, so I treating this
as a trial release, proabably until after the release of
Elluminate 11.0 [Gemini]).
-- It's largely call compatible with Elive::View::Session so in
most cases all you need to do in your source code to start
using it is: s{Elive::View::Session}{Elive::Entity::Session}.
- Refactored Elive::View::Meeting, now based on Elive::Entity::Session.
Elive::View::Meeting will be retained for the forseeable future, its
continuing roles are:
-- continue to allow insert/update via elm 2.x commands.
-- support for elive_query
[Elive::DAO refactoring]
- removed ugly need to call 'construct' when coercing sub-objects.
Elive::DAO::construct now works recursively and only needs to be
called once.
[Elive::Entity::Participants Construction]
- Full support for users, groups and invited guests.
- Introduced '-moderators' and '-participants' in participant
list construction. So you now have the option of:
Elive::Entity::Session->create({
...
participants => [
-moderators => [qw(alice bob)],
-others => '*staff_group',
]
});
Instead of using magic numbers for roles:
Elive::Entity::Session->create({
...
participants => [
'alice=2', 'bob=2', '*staff_group=3',
]
});
Also works for Elive::View::Session.
[Some renaming and new classes]
- Added class Elive::Entity::Preloads - lists of preloads
- Class Elive::Entity::ParticipantList::Participants has been
renamed to Elive::Entity::Participants.
- Class Elive::Entity::ParticipantList::Participant has been
renamed to Elive::Entity::Participant.
[elive_raise_meeting elm 3.x support]
- now supports -participant and -moderators|other options
- is now capable of raising meetings via either Elive::View::Meeting
(option -use elm2) or Elive::Entity::Meeting (option -use elm3).
- has new elm3 options: -exit_url -max_cameras -restricted
[other minor bug fixes]
- elive_query: tweaked binmode/utf8 on stdout as flagged by latest
Test::Perl::Critic
- elive_raise_meeeting (and underlying Elive::Entity::Meeting) now
properly support the add_preload option.
0.91 15th June 2011
Elive::View::Session - documented delegate attributes and methods.
Elive::Entity::Group - handle recursive sub groups. Added new
method expand_members().
Elive::DAO modifications for up-and-coming ELM3 support. New method
__apply_freeze_aliases()
0.90 9th June 2011
[refactoring]
- Added new object class Elive::Util::Type. Replacement for the
Elive::Util::parse_type() function.
- Elive::Struct is no more. Merged with Elive::DAO.
[minor work-arounds]
- Elive::Entity::ServerParameters - telephonyType SOAP response
is being returned as a reference: {Name: 'PHONE', Ordinal: 1,
TelephonyType: 1}, but the database simply contains the string
'PHONE'. This is now dereferenced to return a string ('PHONE').
0.89 20th May 2011
[minor bug fixes and refactoring].
- Moved getresults() and unpackas_list() from Elive::DAO to
Elive::Entity. These are a Command Toolkit specific kludge that
aren't required by StandardV2 and shouldn't be required for
any future adapters.
- Elive::Connection::SDK - now dies outright unless given a login
username.
- bug fix to safety check on admin user update/delete. Check was being
bypassed when role was updated
0.88 27th April 2011
0.87_2 15th April 2011
0.87_1 14th April 2011
0.87 11th April 2011
0.86 15th March 2011
0.85 15th March 2011
[Completing Elive::View::Session functionality. Phasing it in as the
preferred high level class for meeting construction and setup.]
- Added add_preload option to Elive::View::Session. Utilised in
elive_query.
- Elive pod doco. Changed introductory example to raise a meeting via
Elive::View::Session. Also added preload upload to example.
- Also took out 'see also' links to Elive::Entity::MeetingParameters,
Elive::Entity::Meeting, Elive::Entity::ServerParameters,
0.84 11th March 2011
0.83 3rd March 2011
[This release introduces Elive::View::Session - a consolidation
of Elive::Entity::Meeting, Elive::Entity::MeetingParameters,
Elive::Entity::ServerParameters and Elive::Entity::ParticipantList.]
- Initial construction of Elive::View::Session. Supporting tests
are in t/32-soap-session.t.
- Elive::Entity::ServerParameters - now handles update of seats.
- Added entity class Elive::Entity::InvitedGuest
- Extended Elive::Entity::ParticipantList to model invited guests.
- Removed Elive::script::elive_meeting::ViewMeeting; supersueded
by Elive::View::Session.
- Added Elive::Util::next_quarter_hour() - mostly to support
Elive::StandardV2 tests.
- Phased out 'use base ...' in favour of 'use parent ...'
0.82 10th February 2011
[I hadn't run t/26-soap-user.t and t/27-soap-group updates against a
live SOAP servive for a while :-| found some compatibility problems
between Elluminate 9.7 and 10.0.1.]
- Elive::Entity::User; to mirror SDK changes. The password was
previously handled seperately via the 'changePassword' command,
but is now a required field in the initial insert. Also tidied
up the update checks; introduced safetycheck() method for
consistancy.
- Elive::Entity::Group; update modifed to match change in SDK.
-- The separator character for has changed from ';' to ','.
-- Added new class Elive::Entity::Group::Members.
-- Group name now passed to 'updateGroup' command.
- extended t/26-soap-user.t and t/27-soap-group. These may be enabled
by setting the following enviroment variables:
-- ELIVE_TEST_USER_UPDATES
-- ELIVE_TEST_GROUP_UPDATES
These tests can only be run on a non-LDAP server. See README for
details.
0.81 4th February 2011
Elive::Entity::Meeting->insert({privateMeeting => 1, ...}); # use real attribute name
Elive::Entity::Meeting->insert({private => 1, ...}); # use alias name
0.80 28th January 2011
"unable to add 7 of 35 participants; rejected users: user1 user2 ..."
0.79 21st January 2011
0.78 8th December 2010
0.77 8th December 2010
0.76 10th November 2010
work on elive_query:
- added -adapter option. For impending integration with
Elive::StandardV2. Added data_classes() method to Elive::DAO for
discovery of entity classes.
- IO::Interactive::is_interactive() dieing when executed from debian
5 cron (error opening /dev/tty). Now evaled; assume non-interactive
on eval error.
0.75 28th October 2010
elive_query: Extended the range of data that can be selected for
meetings. This includes data for meeting parameters and server
parameters. Also now selectable are associated participants,
recordings and preloads.
select name,participants,url from meeting where id = 1234567890123
In particular, 'select ** from meeting' will retrieve all data from
Meeting, MeetingParameters and ServerParameters. This involves 2
secondary SOAP calls to retrieve associated data. Slow, but thorough.
0.74 18th October 2010
Bug Fixes:
- Elive::Entity::Preload - Make sure that the preload has an 'ownerId'
defined. It seems to be required for preloads to function properly.
0.74_2 14th October 2010
Support for LDAP groups in participant lists
- Elive::Entity::ParticipantList has been significantly refactored.
It now correctly interprets the 'type' property (introduced ~ ELM
v3.0) and supports both 'user' and 'group' properties.
- Group support also added to elive_raise_meeting - see pod
Bug fixes:
- Elive::Entity::Meeting: Added 'adapter' property. Interesting
values include: 'default' & 'standardv2'.
Other Enhancements:
- General support for credentials embedded in urls, E.g:
http://user@host.org/inst
0.74_1 7th October 2010
Essential changes to implement Elive::StandardV2 - A new companion
CPAN module that implements bindings to ELM Standard API Bridge V2.
The classes in this distribution that referenced by ELive::API are
Elive::Connection::API, Elive::Array, Elive::DAO and
Elive::DAO::Singleton.
- Elive::Entity now only contains ELM specialisations. The generic
portion has been moved to create a new base class, Elive::DAO.
- Added new mixin class Elive::DAO::Singleton
- Add subclasses Elive::Connection::SDK & Elive::Connection::API
- Elive::checkfor_errors moved to Elive::Connection
- Elive known_adapter() && check_adapter() methods replaced by
known_command() and check_command() methods in Elive::Connection::SDK
and Elive::Connection::API
0.73 3rd September 2010
0.72 13th August 2010
my $bob = Elive::Entity::User->get_by_loginName('bob');
my $group = Elive::Entity::Group->insert({
name => 'Elluminati',
members => [111111, 222222, 'alice', $bob ],
});
- Added script tests (elive_query, elive_raise_meeting,
elive_lint_config).
- Elive::Struct Provided method aliases for existing entity
level aliases. For example $meeting->private is now equivalent
to $meeting->privateMeeting.
0.71 21st June 2010
0.70 21st June 2010
Support for Elluminate 9.7 => 10.0
- New Preload properties: isProtected and isDataAvailable.
- New Recording properties: sessionInstanceId, startDate and endDate
- Accommodated some newly introduced bugs/changes:
-- User get_by_loginName() is no longer case insensitive
-- Preloaded whiteboard files lost extension during insert/update
(introduction.wdb => introduction).
Note: attempted insert/update of files with no extension will
crash the SOAP request with the error message:
'String index out of range: -1'
(have put in a ticket to Elluminate help desk).
0.69 11th June 2010
-- Most commonly, Atomic parsing of subroutine arguments. E.g.
what was:
sub disconnect {
my $class = shift;
my %opt = @_;
# ...
}
After refactoring becomes:
sub disconnect {
my ($class, %opt) = @_;
# ....
}
Second most common refactoring was adding explicit final 'return'
to subroutines. For gory details, see svn commit of rev 377.
0.68 2nd June 2010
0.67 28th May 2010
0.66 22nd May 2010
Elive::Entity::Meeting->new({facilitatorId => $user,
# ...
});
Instead of:
Elive::Entity::Meeting->new({facilitatorId => $user->userId,
# ...
});
0.65 17th May 2010
0.64 11th March 2010
0.63 7th March 2010
0.62 16th February 2010
Changes to README doco re troubleshooting and meeting pod.
0.61 26th January 2010
elive_raise_meeting support for Elluminate 9.7 release
- Modified user search/validation filter for Elm 3.2 compatibility.
- Added 'quit' command. Also 'describe'; alias for 'show'.
0.60 25th January 2010
0.59 23rd January 2010
0.58 14th January 2010
Support for Elluminate 9.7 release:
- Added new field 'dn' to Elive::Entity::Group - LDAP domain name.
- Added Elive::Entity::Group::thaw(). This was required to handle
modified output from Group DAO. We now get a single result with
all members separated by ';', instead of a list of individual
members.
- Fix in Elive::Entity::thaw(). It was modifying parts of the input
struct. Now makes a copy on entry via Storable::dclone.
- added 27-soap-group.t - group specific tests.
0.57 5th January 2010
0.56 4th January 2010
facilitatorId => $user->userId, # ... });
Can now be written:
Elive::Entity::Meeting->insert({
facilitatorId => $user,
# ...
});
- Improved mock testing coverage. Now able to run much of
the meeting and recording tests offline.
- Pod/doco improvements. In particular, show a meeting insert
in the introductory example.
- Removed some unreachable code from elive_raise_meeting.