[Rt-commit] rt branch, 4.4/remove-deprecations, created. rt-4.2.11-244-g7bbdd5a

? sunnavy sunnavy at bestpractical.com
Tue Oct 20 15:52:20 EDT 2015


The branch, 4.4/remove-deprecations has been created
        at  7bbdd5ae48ad2c1da3bbd063d5bdbd326c02f96d (commit)

- Log -----------------------------------------------------------------
commit 1aef82cfece0fad04107bccead1075d9f814c247
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Wed Oct 21 02:21:56 2015 +0800

    remove 4.4 deprecations
    
    Fixes: I#31136

diff --git a/lib/RT/Config.pm b/lib/RT/Config.pm
index f736939..bcf4189 100644
--- a/lib/RT/Config.pm
+++ b/lib/RT/Config.pm
@@ -409,23 +409,6 @@ our %META;
         },
 
     },
-    PlainTextPre => {
-        PostSet => sub {
-            my $self  = shift;
-            my $value = shift;
-            $self->SetFromConfig(
-                Option => \'PlainTextMono',
-                Value  => [$value],
-                %{$self->Meta('PlainTextPre')->{'Source'}}
-            );
-        },
-        PostLoadCheck => sub {
-            my $self = shift;
-            # XXX: deprecated, remove in 4.4
-            $RT::Logger->info("You set \$PlainTextPre in your config, which has been removed in favor of \$PlainTextMono.  Please update your config.")
-                if $self->Meta('PlainTextPre')->{'Source'}{'Package'};
-        },
-    },
     PlainTextMono => {
         Section         => 'Ticket display',
         Overridable     => 1,
@@ -948,18 +931,6 @@ our %META;
             }
         },
     },
-    LogToScreen => {
-        Deprecated => {
-            Instead => 'LogToSTDERR',
-            Remove  => '4.4',
-        },
-    },
-    UserAutocompleteFields => {
-        Deprecated => {
-            Instead => 'UserSearchFields',
-            Remove  => '4.4',
-        },
-    },
     CustomFieldGroupings => {
         Type            => 'HASH',
         PostLoadCheck   => sub {
@@ -1015,12 +986,6 @@ our %META;
     ChartColors => {
         Type    => 'ARRAY',
     },
-    WebExternalAuth           => { Deprecated => { Instead => 'WebRemoteUserAuth',             Remove => '4.4' }},
-    WebExternalAuthContinuous => { Deprecated => { Instead => 'WebRemoteUserContinuous',       Remove => '4.4' }},
-    WebFallbackToInternalAuth => { Deprecated => { Instead => 'WebFallbackToRTLogin',          Remove => '4.4' }},
-    WebExternalGecos          => { Deprecated => { Instead => 'WebRemoteUserGecos',            Remove => '4.4' }},
-    WebExternalAuto           => { Deprecated => { Instead => 'WebRemoteUserAutocreate',       Remove => '4.4' }},
-    AutoCreate                => { Deprecated => { Instead => 'UserAutocreateDefaultsOnLogin', Remove => '4.4' }},
     LogoImageHeight => {
         Deprecated => {
             LogLevel => "info",
@@ -1033,13 +998,6 @@ our %META;
             Message => "The LogoImageWidth configuration option did not affect display, and has been removed; please remove it from your RT_SiteConfig.pm",
         },
     },
-    DatabaseRequireSSL => {
-        Deprecated => {
-            Remove => '4.4',
-            LogLevel => "info",
-            Message => "The DatabaseRequireSSL configuration option did not enable SSL connections to the database, and has been removed; please remove it from your RT_SiteConfig.pm.  Use DatabaseExtraDSN to accomplish the same purpose.",
-        },
-    },
 );
 my %OPTIONS = ();
 my @LOADED_CONFIGS = ();
diff --git a/lib/RT/CustomField.pm b/lib/RT/CustomField.pm
index a422f0f..85388d6 100644
--- a/lib/RT/CustomField.pm
+++ b/lib/RT/CustomField.pm
@@ -824,14 +824,6 @@ sub ValidateType {
     my $self = shift;
     my $type = shift;
 
-    if ( $type =~ s/(?:Single|Multiple)$// ) {
-        RT->Deprecated(
-            Arguments => "suffix 'Single' or 'Multiple'",
-            Instead   => "MaxValues",
-            Remove    => "4.4",
-        );
-    }
-
     if ( $FieldTypes{$type} ) {
         return 1;
     }
@@ -844,14 +836,6 @@ sub ValidateType {
 sub SetType {
     my $self = shift;
     my $type = shift;
-    if ($type =~ s/(?:(Single)|Multiple)$//) {
-        RT->Deprecated(
-            Arguments => "suffix 'Single' or 'Multiple'",
-            Instead   => "MaxValues",
-            Remove    => "4.4",
-        );
-        $self->SetMaxValues($1 ? 1 : 0);
-    }
     my $need_to_update_hint;
     $need_to_update_hint = 1 if $self->EntryHint && $self->EntryHint eq $self->FriendlyType;
     my ( $ret, $msg ) = $self->_Set( Field => 'Type', Value => $type );
@@ -1486,13 +1470,6 @@ sub IsOnlyGlobal {
     return ($self->LookupType =~ /^RT::(?:Group|User)/io);
 
 }
-sub ApplyGlobally {
-    RT->Deprecated(
-        Instead   => "IsOnlyGlobal",
-        Remove    => "4.4",
-    );
-    return shift->IsOnlyGlobal(@_);
-}
 
 =head1 AddedTo
 
@@ -1509,13 +1486,6 @@ sub AddedTo {
     return RT::ObjectCustomField->new( $self->CurrentUser )
         ->AddedTo( CustomField => $self );
 }
-sub AppliedTo {
-    RT->Deprecated(
-        Instead   => "AddedTo",
-        Remove    => "4.4",
-    );
-    shift->AddedTo(@_);
-};
 
 =head1 NotAddedTo
 
@@ -1532,13 +1502,6 @@ sub NotAddedTo {
     return RT::ObjectCustomField->new( $self->CurrentUser )
         ->NotAddedTo( CustomField => $self );
 }
-sub NotAppliedTo {
-    RT->Deprecated(
-        Instead   => "NotAddedTo",
-        Remove    => "4.4",
-    );
-    shift->NotAddedTo(@_)
-};
 
 =head2 IsAdded
 
@@ -1556,13 +1519,6 @@ sub IsAdded {
     return undef unless $ocf->id;
     return $ocf;
 }
-sub IsApplied {
-    RT->Deprecated(
-        Instead   => "IsAdded",
-        Remove    => "4.4",
-    );
-    shift->IsAdded(@_);
-};
 
 sub IsGlobal { return shift->IsAdded(0) }
 
@@ -1947,16 +1903,6 @@ sub RegisterLookupType {
     $FRIENDLY_LOOKUP_TYPES{$path} = $friendly_name;
 }
 
-sub _ForObjectType {
-    RT->Deprecated(
-        Instead => 'RegisterLookupType',
-        Remove  => '4.4',
-    );
-    my $self = shift;
-    $self->RegisterLookupType(@_);
-}
-
-
 =head2 IncludeContentForValue [VALUE] (and SetIncludeContentForValue)
 
 Gets or sets the  C<IncludeContentForValue> for this custom field. RT
diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index b79f474..0b10c21 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -261,88 +261,9 @@ sub LoadRoleGroup {
     return $self->LoadByCols(%args);
 }
 
-
-=head2 LoadTicketRoleGroup  { Ticket => TICKET_ID, Name => TYPE }
-
-Deprecated in favor of L</LoadRoleGroup> or L<RT::Record/RoleGroup>.
-
-=cut
-
-sub LoadTicketRoleGroup {
-    my $self = shift;
-    my %args = (
-        Ticket => '0',
-        Name => undef,
-        @_,
-    );
-    RT->Deprecated(
-        Instead => "RT::Group->LoadRoleGroup or RT::Ticket->RoleGroup",
-        Remove => "4.4",
-    );
-    $args{'Name'} = $args{'Type'} if exists $args{'Type'};
-    $self->LoadByCols(
-        Domain   => 'RT::Ticket-Role',
-        Instance => $args{'Ticket'},
-        Name     => $args{'Name'},
-    );
-}
-
-
-
-=head2 LoadQueueRoleGroup  { Queue => Queue_ID, Type => TYPE }
-
-Deprecated in favor of L</LoadRoleGroup> or L<RT::Record/RoleGroup>.
-
-=cut
-
-sub LoadQueueRoleGroup {
-    my $self = shift;
-    my %args = (
-        Queue => undef,
-        Name => undef,
-        @_,
-    );
-    RT->Deprecated(
-        Instead => "RT::Group->LoadRoleGroup or RT::Queue->RoleGroup",
-        Remove => "4.4",
-    );
-    $args{'Name'} = $args{'Type'} if exists $args{'Type'};
-    $self->LoadByCols(
-        Domain   => 'RT::Queue-Role',
-        Instance => $args{'Queue'},
-        Name     => $args{'Name'},
-    );
-}
-
-
-
-=head2 LoadSystemRoleGroup  Name
-
-Deprecated in favor of L</LoadRoleGroup> or L<RT::Record/RoleGroup>.
-
-=cut
-
-sub LoadSystemRoleGroup {
-    my $self = shift;
-    my $type = shift;
-    RT->Deprecated(
-        Instead => "RT::Group->LoadRoleGroup or RT::System->RoleGroup",
-        Remove => "4.4",
-    );
-    $self->LoadByCols(
-        Domain   => 'RT::System-Role',
-        Instance => RT::System->Id,
-        Name     => $type
-    );
-}
-
 sub LoadByCols {
     my $self = shift;
     my %args = ( @_ );
-    if ( exists $args{'Type'} ) {
-        RT->Deprecated( Instead => 'Name', Arguments => 'Type', Remove => '4.4' );
-        $args{'Name'} = $args{'Type'};
-    }
     return $self->SUPER::LoadByCols( %args );
 }
 
@@ -382,12 +303,7 @@ sub _Create {
         _RecordTransaction => 1,
         @_
     );
-    if ( $args{'Type'} ) {
-        RT->Deprecated( Instead => 'Name', Arguments => 'Type', Remove => '4.4' );
-        $args{'Name'} = $args{'Type'};
-    } else {
-        $args{'Type'} = $args{'Name'};
-    }
+    $args{'Type'} = $args{'Name'};
 
     # Enforce uniqueness on user defined group names
     if ($args{'Domain'} and $args{'Domain'} eq 'UserDefined') {
@@ -623,11 +539,6 @@ sub CreateRoleGroup {
         return ( 0, $self->loc("Invalid Group Name and Domain") );
     }
 
-    if ( exists $args{'Type'} ) {
-        RT->Deprecated( Instead => 'Name', Arguments => 'Type', Remove => '4.4' );
-        $args{'Name'} = $args{'Type'};
-    }
-
     my %create = map { $_ => $args{$_} } qw(Domain Instance Name);
 
     my $duplicate = RT::Group->new( RT->SystemUser );
@@ -710,18 +621,6 @@ sub RoleGroupObject {
     return $obj;
 }
 
-sub Type {
-    my $self = shift;
-    RT->Deprecated( Instead => 'Name', Remove => '4.4' );
-    return $self->_Value('Type', @_);
-}
-
-sub SetType {
-    my $self = shift;
-    RT->Deprecated( Instead => 'Name', Remove => '4.4' );
-    return $self->SetName(@_);
-}
-
 sub SetName {
     my $self = shift;
     my $value = shift;
@@ -1502,26 +1401,6 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
 
 =cut
 
-
-=head2 Type
-
-Returns the current value of Type.
-(In the database, Type is stored as varchar(64).)
-
-Deprecated, use Name instead, will be removed in 4.4.
-
-=head2 SetType VALUE
-
-
-Set Type to VALUE.
-Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
-(In the database, Type will be stored as a varchar(64).)
-
-Deprecated, use SetName instead, will be removed in 4.4.
-
-=cut
-
-
 =head2 Instance
 
 Returns the current value of Instance.
diff --git a/lib/RT/Groups.pm b/lib/RT/Groups.pm
index 4d06528..ed558c1 100644
--- a/lib/RT/Groups.pm
+++ b/lib/RT/Groups.pm
@@ -182,67 +182,6 @@ sub LimitToRolesForObject {
     $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => $object->id);
 }
 
-=head2 LimitToRolesForQueue QUEUE_ID
-
-B<DEPRECATED>. Use L</LimitToRolesForObject> instead.
-
-Limits the set of groups found to role groups for queue QUEUE_ID
-
-=cut
-
-sub LimitToRolesForQueue {
-    my $self = shift;
-    my $queue = shift;
-    RT->Deprecated(
-        Instead => "LimitToRolesForObject",
-        Remove => "4.4",
-    );
-    $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'RT::Queue-Role', CASESENSITIVE => 0 );
-    $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => $queue);
-}
-
-
-
-=head2 LimitToRolesForTicket Ticket_ID
-
-B<DEPRECATED>. Use L</LimitToRolesForObject> instead.
-
-Limits the set of groups found to role groups for Ticket Ticket_ID
-
-=cut
-
-sub LimitToRolesForTicket {
-    my $self = shift;
-    my $Ticket = shift;
-    RT->Deprecated(
-        Instead => "LimitToRolesForObject",
-        Remove => "4.4",
-    );
-    $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'RT::Ticket-Role', CASESENSITIVE => 0 );
-    $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => $Ticket);
-}
-
-
-
-=head2 LimitToRolesForSystem System_ID
-
-B<DEPRECATED>. Use L</LimitToRolesForObject> instead.
-
-Limits the set of groups found to role groups for System System_ID
-
-=cut
-
-sub LimitToRolesForSystem {
-    my $self = shift;
-    RT->Deprecated(
-        Instead => "LimitToRolesForObject",
-        Remove => "4.4",
-    );
-    $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'RT::System-Role', CASESENSITIVE => 0 );
-    $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => RT::System->Id );
-}
-
-
 =head2 WithMember {PrincipalId => PRINCIPAL_ID, Recursively => undef}
 
 Limits the set of groups returned to groups which have
diff --git a/lib/RT/Interface/CLI.pm b/lib/RT/Interface/CLI.pm
index f992f16..eae1892 100644
--- a/lib/RT/Interface/CLI.pm
+++ b/lib/RT/Interface/CLI.pm
@@ -82,26 +82,6 @@ our @EXPORT_OK = qw(CleanEnv GetCurrentUser debug loc Init);
 
 =cut
 
-
-=head2 CleanEnv
-
-Removes some of the nastiest nasties from the user's environment.
-
-=cut
-
-sub CleanEnv {
-    RT->Deprecated( Remove => "4.4" );
-
-    $ENV{'PATH'} = '/bin:/usr/bin';    # or whatever you need
-    $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'};
-    $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'};
-    $ENV{'ENV'} = '' if defined $ENV{'ENV'};
-    $ENV{'IFS'} = '' if defined $ENV{'IFS'};
-}
-
-
-
-
 {
 
     my $CurrentUser; # shared betwen GetCurrentUser and loc
@@ -148,11 +128,6 @@ sub loc {
 
 }
 
-sub debug {
-    RT->Deprecated( Remove => "4.4", Instead => '$RT::Logger->debug' );
-    $RT::Logger->debug(@_);
-}
-
 sub ShowHelp {
     my $self = shift;
     my %args = @_;
diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 1bd28ce..f60f192 100644
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -166,16 +166,6 @@ sub EscapeHTML {
     $$ref =~ s/'/'/g;
 }
 
-# Back-compat
-# XXX: Remove in 4.4
-sub EscapeUTF8 {
-    RT->Deprecated(
-        Instead => "EscapeHTML",
-        Remove => "4.4",
-    );
-    EscapeHTML(@_);
-}
-
 =head2 EscapeURI SCALARREF
 
 Escapes URI component according to RFC2396
diff --git a/lib/RT/Principal.pm b/lib/RT/Principal.pm
index b09060d..32f0cdb 100644
--- a/lib/RT/Principal.pm
+++ b/lib/RT/Principal.pm
@@ -745,24 +745,6 @@ sub _ReferenceId {
     }
 }
 
-sub ObjectId {
-    my $self = shift;
-    RT->Deprecated( Instead => 'id', Remove => '4.4' );
-    return $self->_Value('ObjectId');
-}
-
-sub LoadByCols {
-    my $self = shift;
-    my %args = @_;
-    if ( exists $args{'ObjectId'} ) {
-        RT->Deprecated( Arguments => 'ObjectId', Instead => 'id', Remove => '4.4' );
-    }
-    return $self->SUPER::LoadByCols( %args );
-}
-
-
-
-
 =head2 id
 
 Returns the current value of id.
diff --git a/lib/RT/Queue.pm b/lib/RT/Queue.pm
index 04734eb..0d3d0e4 100644
--- a/lib/RT/Queue.pm
+++ b/lib/RT/Queue.pm
@@ -488,45 +488,6 @@ sub TicketTransactionCustomFields {
     return ($cfs);
 }
 
-
-
-
-
-=head2 AllRoleGroupTypes
-
-B<DEPRECATED> and will be removed in a future release. Use L</Roles>
-instead.
-
-Returns a list of the names of the various role group types for Queues,
-including roles used only for ACLs like Requestor and Owner. If you don't want
-them, see L</ManageableRoleGroupTypes>.
-
-=cut
-
-sub AllRoleGroupTypes {
-    RT->Deprecated(
-        Remove => "4.4",
-        Instead => "RT::Queue->Roles",
-    );
-    shift->Roles;
-}
-
-=head2 IsRoleGroupType
-
-B<DEPRECATED> and will be removed in a future release. Use L</HasRole> instead.
-
-Returns whether the passed-in type is a role group type.
-
-=cut
-
-sub IsRoleGroupType {
-    RT->Deprecated(
-        Remove => "4.4",
-        Instead => "RT::Queue->HasRole",
-    );
-    shift->HasRole(@_);
-}
-
 =head2 ManageableRoleGroupTypes
 
 Returns a list of the names of the various role group types for Queues,
diff --git a/lib/RT/Record.pm b/lib/RT/Record.pm
index fc8dac2..ae0262d 100644
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -145,28 +145,6 @@ sub RecordType {
     return $res;
 }
 
-=head2 ObjectTypeStr
-
-DEPRECATED. Stays here for backwards. Returns localized L</RecordType>.
-
-=cut
-
-# we deprecate because of:
-# * ObjectType is used in several classes with ObjectId to store
-#   records of different types, for example transactions use those
-#   and it's unclear what this method should return 'Transaction'
-#   or type of referenced record
-# * returning localized thing is not good idea
-
-sub ObjectTypeStr {
-    my $self = shift;
-    RT->Deprecated(
-        Remove => "4.4",
-        Instead => "RecordType",
-    );
-    return $self->loc( $self->RecordType( @_ ) );
-}
-
 =head2 Attributes
 
 Return this object's attributes as an RT::Attributes object
@@ -445,30 +423,6 @@ sub CreatedObj {
 }
 
 
-# B<DEPRECATED> and will be removed in 4.4
-sub AgeAsString {
-    my $self = shift;
-    RT->Deprecated(
-        Remove => "4.4",
-        Instead => "->CreatedObj->AgeAsString",
-    );
-    return ( $self->CreatedObj->AgeAsString() );
-}
-
-# B<DEPRECATED> and will be removed in 4.4
-sub LongSinceUpdateAsString {
-    my $self = shift;
-    RT->Deprecated(
-        Remove => "4.4",
-        Instead => "->LastUpdatedObj->AgeAsString",
-    );
-    if ( $self->LastUpdated ) {
-        return ( $self->LastUpdatedObj->AgeAsString() );
-    } else {
-        return "never";
-    }
-}
-
 sub LastUpdatedAsString {
     my $self = shift;
     if ( $self->LastUpdated ) {
diff --git a/lib/RT/ScripAction.pm b/lib/RT/ScripAction.pm
index 7851408..3ea330a 100644
--- a/lib/RT/ScripAction.pm
+++ b/lib/RT/ScripAction.pm
@@ -131,14 +131,6 @@ sub Load  {
         ($ok, $msg) = $self->LoadByCol('Name', $identifier);
     }
 
-    if (@_) {
-        RT->Deprecated(
-            Arguments => "Template as second argument",
-            Remove    => "4.4",
-        );
-        $self->{'Template'} = shift;
-    }
-
     return wantarray ? ($ok, $msg) : $ok;
 }
 
@@ -179,42 +171,6 @@ sub LoadAction  {
     );
 }
 
-
-=head2 TemplateObj
-
-Return this action's template object.  Deprecated.
-
-=cut
-
-sub TemplateObj {
-    my $self = shift;
-    RT->Deprecated(
-        Remove => "4.4",
-    );
-
-    if ( !$self->{'TemplateObj'} ) {
-        return undef unless $self->{Template};
-        $self->{'TemplateObj'} = RT::Template->new( $self->CurrentUser );
-        $self->{'TemplateObj'}->Load( $self->{'Template'} );
-
-        if ( ( $self->{'TemplateObj'}->__Value('Queue') == 0 )
-            && $self->{'_TicketObj'} ) {
-            my $tmptemplate = RT::Template->new( $self->CurrentUser );
-            my ( $ok, $err ) = $tmptemplate->LoadQueueTemplate(
-                Queue => $self->{'_TicketObj'}->QueueObj->id,
-                Name  => $self->{'TemplateObj'}->Name);
-
-            if ( $tmptemplate->id ) {
-                # found the queue-specific template with the same name
-                $self->{'TemplateObj'} = $tmptemplate;
-            }
-        }
-
-    }
-
-    return ( $self->{'TemplateObj'} );
-}
-
 sub Prepare  {
     my $self = shift;
     $self->{_Message_ID} = 0;
diff --git a/lib/RT/SearchBuilder.pm b/lib/RT/SearchBuilder.pm
index 202eb6f..6987990 100644
--- a/lib/RT/SearchBuilder.pm
+++ b/lib/RT/SearchBuilder.pm
@@ -914,13 +914,6 @@ sub Limit {
         : $self->Table
     ;
 
-    if ( $table and $ARGS{FIELD} and my $instead = $deprecated{ lc $table }{ lc $ARGS{'FIELD'} } ) {
-        RT->Deprecated(
-            Message => "$table.$ARGS{'FIELD'} column is deprecated",
-            Instead => $instead, Remove => '4.4'
-        );
-    }
-
     unless ( exists $ARGS{CASESENSITIVE} or (exists $ARGS{QUOTEVALUE} and not $ARGS{QUOTEVALUE}) ) {
         if ( $ARGS{FIELD} and $ARGS{'OPERATOR'} !~ /IS/i
             && $table && $check_case_sensitivity{ lc $table }{ lc $ARGS{'FIELD'} }
diff --git a/lib/RT/SearchBuilder/Role/Roles.pm b/lib/RT/SearchBuilder/Role/Roles.pm
index 134a507..dc5c2fd 100644
--- a/lib/RT/SearchBuilder/Role/Roles.pm
+++ b/lib/RT/SearchBuilder/Role/Roles.pm
@@ -102,10 +102,6 @@ sub _RoleGroupsJoin {
     $args{'Class'} ||= $self->_RoleGroupClass;
 
     my $name = $args{'Name'};
-    if ( exists $args{'Type'} ) {
-        RT->Deprecated( Arguments => 'Type', Instead => 'Name', Remove => '4.4' );
-        $name = $args{'Type'};
-    }
 
     return $self->{'_sql_role_group_aliases'}{ $args{'Class'} .'-'. $name }
         if $self->{'_sql_role_group_aliases'}{ $args{'Class'} .'-'. $name }
diff --git a/lib/RT/Ticket.pm b/lib/RT/Ticket.pm
index 775eaa7..863956d 100644
--- a/lib/RT/Ticket.pm
+++ b/lib/RT/Ticket.pm
@@ -1183,28 +1183,6 @@ sub DueObj {
     return $time;
 }
 
-
-
-=head2 DueAsString
-
-Returns this ticket's due date as a human readable string.
-
-B<DEPRECATED> and will be removed in 4.4; use C<<
-$ticket->DueObj->AsString >> instead.
-
-=cut
-
-sub DueAsString {
-    my $self = shift;
-    RT->Deprecated(
-        Instead => "->DueObj->AsString",
-        Remove => "4.4",
-    );
-    return $self->DueObj->AsString();
-}
-
-
-
 =head2 ResolvedObj
 
   Returns an RT::Date object of this ticket's 'resolved' time.
@@ -1350,33 +1328,6 @@ sub ToldObj {
     return $time;
 }
 
-
-
-=head2 ToldAsString
-
-A convenience method that returns ToldObj->AsString
-
-B<DEPRECATED> and will be removed in 4.4; use C<<
-$ticket->ToldObj->AsString >> instead.
-
-=cut
-
-sub ToldAsString {
-    my $self = shift;
-    RT->Deprecated(
-        Instead => "->ToldObj->AsString",
-        Remove => "4.4",
-    );
-    if ( $self->Told ) {
-        return $self->ToldObj->AsString();
-    }
-    else {
-        return ("Never");
-    }
-}
-
-
-
 sub _DurationAsString {
     my $self = shift;
     my $value = shift;
diff --git a/lib/RT/Tickets.pm b/lib/RT/Tickets.pm
index eda7cab..f0a3daa 100644
--- a/lib/RT/Tickets.pm
+++ b/lib/RT/Tickets.pm
@@ -1373,17 +1373,6 @@ sub OrderByCols {
     return $self->SUPER::OrderByCols(@res);
 }
 
-sub _SQLLimit {
-    my $self = shift;
-    RT->Deprecated( Remove => "4.4", Instead => "Limit" );
-    $self->Limit(@_);
-}
-sub _SQLJoin {
-    my $self = shift;
-    RT->Deprecated( Remove => "4.4", Instead => "Join" );
-    $self->Join(@_);
-}
-
 sub _OpenParen {
     $_[0]->SUPER::_OpenParen( $_[1] || 'ticketsql' );
 }
diff --git a/lib/RT/Transaction.pm b/lib/RT/Transaction.pm
index 5d1bb5a..a4b246a 100644
--- a/lib/RT/Transaction.pm
+++ b/lib/RT/Transaction.pm
@@ -1475,27 +1475,15 @@ parameters to update this transaction's custom fields.
 
 sub UpdateCustomFields {
     my $self = shift;
-    my %args = (@_);
-
-    # This method used to have an API that took a hash of a single
-    # value "ARGSRef", which was a reference to a hash of arguments.
-    # This was insane. The next few lines of code preserve that API
-    # while giving us something saner.
-    my $args;
-    if ($args{'ARGSRef'}) {
-        RT->Deprecated( Arguments => "ARGSRef", Remove => "4.4" );
-        $args = $args{ARGSRef};
-    } else {
-        $args = \%args;
-    }
+    my %args = @_;
 
-    foreach my $arg ( keys %$args ) {
+    foreach my $arg ( keys %args ) {
         next
           unless ( $arg =~
             /^(?:Object-RT::Transaction--)?CustomField-(\d+)/ );
         next if $arg =~ /-Magic$/;
         my $cfid   = $1;
-        my $values = $args->{$arg};
+        my $values = $args{$arg};
         my $cf = $self->LoadCustomFieldByIdentifier($cfid);
         next unless $cf->ObjectTypeFromLookupType($cf->__Value('LookupType'))->isa(ref $self);
         foreach
diff --git a/share/html/Elements/Callback b/share/html/Elements/Callback
deleted file mode 100644
index d472e14..0000000
--- a/share/html/Elements/Callback
+++ /dev/null
@@ -1,56 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-$ARGS{'CallbackPage'} = delete $ARGS{'Page'} || $m->callers(1)->path;
-$ARGS{'CallbackName'} = delete $ARGS{'_CallbackName'};
-RT->Deprecated(
-    Instead => '$m->callback',
-    Remove => "4.4",
-);
-return $m->callback( %ARGS );
-</%INIT>
diff --git a/share/html/Elements/ShowSearch b/share/html/Elements/ShowSearch
index b53238f..52e628b 100644
--- a/share/html/Elements/ShowSearch
+++ b/share/html/Elements/ShowSearch
@@ -125,21 +125,6 @@ foreach ( $SearchArg, $ProcessedSearchArg ) {
 
     # extract-message-catalog would "$1", so we avoid quotes for loc calls
     $_->{'Format'} =~ s/__loc\(["']?(\w+)["']?\)__/my $f = "$1"; loc($f)/ge;
-    if ( $_->{'Query'} =~ /__Bookmarks__/ ) {
-        $_->{'Rows'} = 999;
-
-        # DEPRECATED: will be here for a while up to 4.4
-        RT->Deprecated(
-            Remove  => "4.4",
-            Instead => "id = '__Bookmarked__'",
-            Message => "The __Bookmarks__ query syntax is deprecated",
-            Object  => $search,
-        );
-
-        my @bookmarks = $session{'CurrentUser'}->UserObj->Bookmarks;
-        my $query = join(" OR ", map " id = '$_' ", @bookmarks ) || 'id=0';
-        $_->{'Query'} =~ s/__Bookmarks__/( $query )/g;
-    }
 }
 
 my $QueryString = '?' . $m->comp( '/Elements/QueryString', %$SearchArg );
diff --git a/share/html/Elements/TicketList b/share/html/Elements/TicketList
deleted file mode 100644
index b252af6..0000000
--- a/share/html/Elements/TicketList
+++ /dev/null
@@ -1,74 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-RT->Deprecated(
-    Remove => "4.4",
-    Instead => "/Elements/CollectionList",
-);
-$m->comp(
-         '/Elements/CollectionList',
-         %ARGS,
-         Class => 'RT::Tickets'
-        );
-</%INIT>
-<%ARGS>
-$Collection => undef
-$Query => undef
-$Format => RT->Config->Get('DefaultSearchResultFormat')
-$DisplayFormat => undef
-$Order => undef
-$OrderBy => undef
-$Rows => 50
-$Page => 1
-$Title => loc('Ticket Search')
-$BaseURL => undef
-$AllowSorting => undef
-$ShowNavigation => 1
-$ShowHeader => 1
-$ShowEmpty => 0
-</%ARGS>
diff --git a/share/html/Elements/TitleBox b/share/html/Elements/TitleBox
deleted file mode 100644
index 73d3e77..0000000
--- a/share/html/Elements/TitleBox
+++ /dev/null
@@ -1,52 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%init>
-# For compatibility with 3.4
-RT->Deprecated( Remove => 4.4, Instead => "/Widgets/TitleBox" );
-$m->comp('/Widgets/TitleBox', %ARGS );
-</%init>
diff --git a/share/html/Elements/TitleBoxEnd b/share/html/Elements/TitleBoxEnd
deleted file mode 100644
index 8b52b07..0000000
--- a/share/html/Elements/TitleBoxEnd
+++ /dev/null
@@ -1,52 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%init>
-# For compatibility with 3.4
-RT->Deprecated( Remove => 4.4, Instead => "/Widgets/TitleBoxEnd" );
-$m->comp('/Widgets/TitleBoxEnd', %ARGS );
-</%init>
diff --git a/share/html/Elements/TitleBoxStart b/share/html/Elements/TitleBoxStart
deleted file mode 100644
index c639d19..0000000
--- a/share/html/Elements/TitleBoxStart
+++ /dev/null
@@ -1,52 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%init>
-# For compatibility with 3.4
-RT->Deprecated( Remove => 4.4, Instead => "/Widgets/TitleBoxStart" );
-$m->comp('/Widgets/TitleBoxStart', %ARGS );
-</%init>
diff --git a/share/html/Ticket/Elements/EditCustomFields b/share/html/Ticket/Elements/EditCustomFields
deleted file mode 100644
index 3e30c78..0000000
--- a/share/html/Ticket/Elements/EditCustomFields
+++ /dev/null
@@ -1,70 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-RT->Deprecated( Remove => "4.4", Instead => "/Elements/EditCustomFields" );
-
-my $CustomFields;
-if ($TicketObj && !$OnCreate) {
-    $CustomFields = $TicketObj->CustomFields;
-} else {
-    $CustomFields = $QueueObj->TicketCustomFields;
-}
-$m->callback( %ARGS, CallbackName => 'MassageCustomFields', CustomFields => $CustomFields );
-
-return $m->comp('/Elements/EditCustomFields',
-    %ARGS,
-    Object => $TicketObj || RT::Ticket->new( $session{'CurrentUser'} ),
-    CustomFields => $CustomFields,
-);
-
-</%INIT>
-<%ARGS>
-$TicketObj => undef
-$QueueObj => undef
-$OnCreate => undef
-</%ARGS>
diff --git a/share/html/Ticket/Elements/LoadTextAttachments b/share/html/Ticket/Elements/LoadTextAttachments
deleted file mode 100644
index 69ec52b..0000000
--- a/share/html/Ticket/Elements/LoadTextAttachments
+++ /dev/null
@@ -1,54 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%#                                          <sales at bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<%INIT>
-RT->Deprecated( Remove => "4.4", Instead => "RT::Ticket->TextAttachments" );
-return $Ticket->TextAttachments;
-</%INIT>
-<%ARGS>
-$Ticket
-</%ARGS>
diff --git a/share/html/m/tickets/search b/share/html/m/tickets/search
index 0edc917..eda3685 100644
--- a/share/html/m/tickets/search
+++ b/share/html/m/tickets/search
@@ -86,24 +86,6 @@ my $search;
         $search_arg = $session{'CurrentUser'}->UserObj->Preferences( $search, $search->Content );
     }
 
-    foreach ($search_arg) {
-        if ( $_->{'Query'} =~ /__Bookmarks__/ ) {
-            $_->{'Rows'} = 999;
-
-            # DEPRECATED: will be here for a while up to 4.4
-            RT->Deprecated(
-                Remove  => "4.4",
-                Instead => "id = '__Bookmarked__'",
-                Message => "The __Bookmarks__ query syntax is deprecated",
-                Object  => $search,
-            );
-
-            my @bookmarks = $session{'CurrentUser'}->UserObj->Bookmarks;
-            my $query = join(" OR ", map " id = '$_' ", @bookmarks ) || 'id=0';
-            $_->{'Query'} =~ s/__Bookmarks__/( $query )/g;
-        }
-    }
-
     $query    = $search_arg->{Query};
     $order_by = $search_arg->{OrderBy};
     $order    = $search_arg->{Order};
diff --git a/t/api/customfield.t b/t/api/customfield.t
index 265af97..83ea2da 100644
--- a/t/api/customfield.t
+++ b/t/api/customfield.t
@@ -46,21 +46,6 @@ $cf = RT::CustomField->new(RT->SystemUser);
 );
 ok( ! $ok, "Correctly could not create with bogus type: $msg");
 
-
-# Deprecated types
-warning_like {
-    ok($cf->ValidateType('SelectSingle'), "ValidateType accepts SelectSingle");
-} qr/deprecated/, "...but warns of deprecation";
-
-warning_like {
-    ok($cf->ValidateType('SelectMultiple'), "ValidateType accepts SelectMultiple");
-} qr/deprecated/, "...but warns of deprecation";
-
-warning_like {
-    ok( ! $cf->ValidateType('SelectFooMultiple'), "ValidateType does not accept SelectFooMultiple");
-} qr/deprecated/, "...and also warns of deprecation";
-
-
 # Test adding and removing CFVs
 $cf->Load(1);
 ($ok, $msg) = $cf->AddValue(Name => 'foo' , Description => 'TestCFValue', SortOrder => '6');

commit 7bbdd5ae48ad2c1da3bbd063d5bdbd326c02f96d
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Wed Oct 21 03:50:29 2015 +0800

    drop Group's Type column
    
    see also 71fcde32

diff --git a/etc/schema.Oracle b/etc/schema.Oracle
index a4a080e..846af6a 100644
--- a/etc/schema.Oracle
+++ b/etc/schema.Oracle
@@ -79,7 +79,6 @@ CREATE TABLE Groups (
         Name            VARCHAR2(200),
         Description     VARCHAR2(255),
         Domain          VARCHAR2(64),
-        Type            VARCHAR2(64),
         Instance        NUMBER(11,0) DEFAULT 0, -- NOT NULL
         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
         Created         DATE,
@@ -87,9 +86,8 @@ CREATE TABLE Groups (
         LastUpdated     DATE
 --      Instance        VARCHAR2(64)
 );
-CREATE INDEX Groups1 ON Groups (LOWER(Domain), LOWER(Type), Instance);
-CREATE INDEX Groups2 ON Groups (LOWER(Domain), LOWER(Name), Instance);
-CREATE INDEX Groups3 ON Groups (Instance);
+CREATE INDEX Groups1 ON Groups (LOWER(Domain), LOWER(Name), Instance);
+CREATE INDEX Groups2 ON Groups (Instance);
 
 
 CREATE SEQUENCE SCRIPCONDITIONS_seq;
diff --git a/etc/schema.Pg b/etc/schema.Pg
index 0cef6a2..4d85c4f 100644
--- a/etc/schema.Pg
+++ b/etc/schema.Pg
@@ -134,7 +134,6 @@ CREATE TABLE Groups (
   Name varchar(200) NULL  ,
   Description varchar(255) NULL  ,
   Domain varchar(64),
-  Type varchar(64),
   Instance integer,
   Creator integer NOT NULL DEFAULT 0  ,
   Created TIMESTAMP NULL  ,
@@ -143,9 +142,8 @@ CREATE TABLE Groups (
   PRIMARY KEY (id)
 
 );
-CREATE INDEX Groups1 ON Groups (LOWER(Domain), LOWER(Type), Instance);
-CREATE INDEX Groups2 ON Groups (LOWER(Domain), LOWER(Name), Instance);
-CREATE INDEX Groups3 On Groups (Instance);
+CREATE INDEX Groups1 ON Groups (LOWER(Domain), LOWER(Name), Instance);
+CREATE INDEX Groups2 On Groups (Instance);
 
 
 
diff --git a/etc/schema.SQLite b/etc/schema.SQLite
index e37dce4..04cec68 100644
--- a/etc/schema.SQLite
+++ b/etc/schema.SQLite
@@ -82,7 +82,6 @@ CREATE TABLE Groups (
   Name varchar(200) collate NOCASE NULL  ,
   Description varchar(255) collate NOCASE NULL  ,
   Domain varchar(64) collate NOCASE,
-  Type varchar(64) collate NOCASE,
   Instance integer,
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
@@ -91,9 +90,8 @@ CREATE TABLE Groups (
   
 ) ;
 
-CREATE INDEX Groups1 ON Groups (Domain,Type,Instance);
-CREATE INDEX Groups2 ON Groups (Domain,Name,Instance);
-CREATE INDEX Groups3 ON Groups (Instance);
+CREATE INDEX Groups1 ON Groups (Domain,Name,Instance);
+CREATE INDEX Groups2 ON Groups (Instance);
 
 --- }}}
 
diff --git a/etc/schema.mysql b/etc/schema.mysql
index 4d576a1..76b7d93 100644
--- a/etc/schema.mysql
+++ b/etc/schema.mysql
@@ -78,7 +78,6 @@ CREATE TABLE Groups (
   Name varchar(200) NULL  ,
   Description varchar(255) NULL  ,
   Domain varchar(64) CHARACTER SET ascii NULL,
-  Type varchar(64) CHARACTER SET ascii NULL,
   Instance integer,
   Creator integer NOT NULL DEFAULT 0  ,
   Created DATETIME NULL  ,
@@ -87,9 +86,8 @@ CREATE TABLE Groups (
   PRIMARY KEY (id)
 ) ENGINE=InnoDB CHARACTER SET utf8;
 
-CREATE INDEX Groups1 ON Groups (Domain, Type, Instance);
-CREATE INDEX Groups2 ON Groups (Domain, Name, Instance);
-CREATE INDEX Groups3 On Groups (Instance);
+CREATE INDEX Groups1 ON Groups (Domain, Name, Instance);
+CREATE INDEX Groups2 On Groups (Instance);
 
 CREATE TABLE ScripConditions (
   id INTEGER NOT NULL  AUTO_INCREMENT,
diff --git a/etc/upgrade/4.3.11/schema.Oracle b/etc/upgrade/4.3.11/schema.Oracle
new file mode 100644
index 0000000..00d424c
--- /dev/null
+++ b/etc/upgrade/4.3.11/schema.Oracle
@@ -0,0 +1 @@
+ALTER TABLE Groups DROP COLUMN Type;
diff --git a/etc/upgrade/4.3.11/schema.Pg b/etc/upgrade/4.3.11/schema.Pg
new file mode 100644
index 0000000..00d424c
--- /dev/null
+++ b/etc/upgrade/4.3.11/schema.Pg
@@ -0,0 +1 @@
+ALTER TABLE Groups DROP COLUMN Type;
diff --git a/etc/upgrade/4.3.11/schema.mysql b/etc/upgrade/4.3.11/schema.mysql
new file mode 100644
index 0000000..00d424c
--- /dev/null
+++ b/etc/upgrade/4.3.11/schema.mysql
@@ -0,0 +1 @@
+ALTER TABLE Groups DROP COLUMN Type;
diff --git a/lib/RT/Group.pm b/lib/RT/Group.pm
index 0b10c21..5af8327 100644
--- a/lib/RT/Group.pm
+++ b/lib/RT/Group.pm
@@ -303,7 +303,6 @@ sub _Create {
         _RecordTransaction => 1,
         @_
     );
-    $args{'Type'} = $args{'Name'};
 
     # Enforce uniqueness on user defined group names
     if ($args{'Domain'} and $args{'Domain'} eq 'UserDefined') {
@@ -325,7 +324,6 @@ sub _Create {
         id          => $principal_id,
         Name        => $args{'Name'},
         Description => $args{'Description'},
-        Type        => $args{'Type'},
         Domain      => $args{'Domain'},
         Instance    => ($args{'Instance'} || '0')
     );
@@ -627,13 +625,6 @@ sub SetName {
 
     my ($status, $msg) = $self->_Set( Field => 'Name', Value => $value );
     return ($status, $msg) unless $status;
-
-    {
-        my ($status, $msg) = $self->__Set( Field => 'Type', Value => $value );
-        RT->Logger->error("Couldn't set Type: $msg") unless $status;
-    }
-
-    return ($status, $msg);
 }
 
 =head2 Delete
@@ -1467,8 +1458,6 @@ sub _CoreAccessible {
                 {read => 1, write => 1, sql_type => 12, length => 255,  is_blob => 0,  is_numeric => 0,  type => 'varchar(255)', default => ''},
         Domain =>
                 {read => 1, write => 1, sql_type => 12, length => 64,  is_blob => 0,  is_numeric => 0,  type => 'varchar(64)', default => ''},
-        Type =>
-                {read => 1, write => 1, sql_type => 12, length => 64,  is_blob => 0,  is_numeric => 0,  type => 'varchar(64)', default => ''},
         Instance =>
                 {read => 1, write => 1, sql_type => 4, length => 11,  is_blob => 0,  is_numeric => 1,  type => 'int(11)', default => ''},
         Creator =>
diff --git a/lib/RT/Principal.pm b/lib/RT/Principal.pm
index 32f0cdb..d31b948 100644
--- a/lib/RT/Principal.pm
+++ b/lib/RT/Principal.pm
@@ -423,7 +423,7 @@ sub HasRights {
     my $roles;
     {
         my $query
-            = "SELECT DISTINCT Groups.Type "
+            = "SELECT DISTINCT Groups.Name "
             . $self->_HasRoleRightQuery(
                 EquivObjects => $args{'EquivObjects'}
             );
diff --git a/sbin/rt-validator.in b/sbin/rt-validator.in
index 16432a3..8fbd4fc 100644
--- a/sbin/rt-validator.in
+++ b/sbin/rt-validator.in
@@ -249,7 +249,7 @@ push @CHECKS, 'User <-> ACL equivalence group' => sub {
     # from user to group
     $res *= check_integrity(
         'Users', 'id' => 'Groups', 'Instance',
-        join_condition   => 't.Domain = ? AND t.Type = ?',
+        join_condition   => 't.Domain = ? AND t.Name = ?',
         bind_values => [ 'ACLEquivalence',  'UserEquiv' ],
         action => sub {
             my $id = shift;
@@ -265,7 +265,7 @@ push @CHECKS, 'User <-> ACL equivalence group' => sub {
     # from group to user
     $res *= check_integrity(
         'Groups', 'Instance' => 'Users', 'id',
-        condition   => 's.Domain = ? AND s.Type = ?',
+        condition   => 's.Domain = ? AND s.Name = ?',
         bind_values => [ 'ACLEquivalence',  'UserEquiv' ],
         action => sub {
             my $id = shift;
@@ -280,7 +280,7 @@ push @CHECKS, 'User <-> ACL equivalence group' => sub {
     $res *= check_uniqueness(
         'Groups',
         columns     => ['Instance'],
-        condition   => '.Domain = ? AND .Type = ?',
+        condition   => '.Domain = ? AND .Name = ?',
         bind_values => [ 'ACLEquivalence',  'UserEquiv' ],
     );
     return $res;
@@ -345,7 +345,7 @@ push @CHECKS, 'Role Groups (Instance, Type) uniqueness' => sub {
     # Check that Domain, Instance and Type are unique
     return check_uniqueness(
         'Groups',
-        columns     => ['Domain', 'Instance', 'Type'],
+        columns     => ['Domain', 'Instance', 'Name'],
         condition   => '.Domain LIKE ?',
         bind_values => [ '%-Role' ],
     );
@@ -354,7 +354,7 @@ push @CHECKS, 'Role Groups (Instance, Type) uniqueness' => sub {
 push @CHECKS, 'System internal group uniqueness' => sub {
     return check_uniqueness(
         'Groups',
-        columns     => ['Instance', 'Type'],
+        columns     => ['Instance', 'Name'],
         condition   => '.Domain = ?',
         bind_values => [ 'SystemInternal' ],
     );
@@ -856,7 +856,7 @@ FROM
     Groups g JOIN $table m ON g.id = m.$column
 WHERE
     g.Domain = ?
-    AND g.Type = ?
+    AND g.Name = ?
 END
             my $action = sub {
                 my ($gid, $uid) = @_;

-----------------------------------------------------------------------


More information about the rt-commit mailing list