Skip to content
This repository has been archived by the owner on Jul 17, 2023. It is now read-only.

Commit

Permalink
GUACAMOLE-394: Deprecate ConnectionRecordSet. Refactor accordingly.
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-jumper committed Sep 25, 2017
1 parent cd5d238 commit 26122eb
Show file tree
Hide file tree
Showing 13 changed files with 123 additions and 121 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,17 @@
import java.util.Set;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.auth.jdbc.base.RestrictedObject;
import org.apache.guacamole.net.auth.ActivityRecordSet;
import org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty;
import org.apache.guacamole.net.auth.ConnectionRecord;

/**
* A JDBC implementation of ConnectionRecordSet. Calls to asCollection() will
* query connection history records from the database. Which records are
* returned will be determined by the values passed in earlier.
* A JDBC implementation of ActivityRecordSet for ConnectionRecords. Calls to
* asCollection() will query connection history records from the database. Which
* records are returned will be determined by the values passed in earlier.
*/
public class ConnectionRecordSet extends RestrictedObject
implements org.apache.guacamole.net.auth.ConnectionRecordSet {
implements ActivityRecordSet<ConnectionRecord> {

/**
* Service for managing connection objects.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

package org.apache.guacamole.auth.jdbc.connection;

import org.apache.guacamole.net.auth.ConnectionRecordSet;
import org.apache.guacamole.net.auth.ActivityRecordSet;

/**
* A sort predicate which species the property to use when sorting connection
Expand All @@ -30,7 +30,7 @@ public class ConnectionRecordSortPredicate {
/**
* The property to use when sorting ConnectionRecords.
*/
private final ConnectionRecordSet.SortableProperty property;
private final ActivityRecordSet.SortableProperty property;

/**
* Whether the sort order is descending (true) or ascending (false).
Expand All @@ -47,7 +47,7 @@ public class ConnectionRecordSortPredicate {
* @param descending
* Whether the sort order is descending (true) or ascending (false).
*/
public ConnectionRecordSortPredicate(ConnectionRecordSet.SortableProperty property,
public ConnectionRecordSortPredicate(ActivityRecordSet.SortableProperty property,
boolean descending) {
this.property = property;
this.descending = descending;
Expand All @@ -59,7 +59,7 @@ public ConnectionRecordSortPredicate(ConnectionRecordSet.SortableProperty proper
* @return
* The property that should be used when sorting ConnectionRecords.
*/
public ConnectionRecordSet.SortableProperty getProperty() {
public ActivityRecordSet.SortableProperty getProperty() {
return property;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,17 @@
import org.apache.guacamole.auth.jdbc.user.RemoteAuthenticatedUser;
import org.apache.guacamole.form.Form;
import org.apache.guacamole.net.auth.ActiveConnection;
import org.apache.guacamole.net.auth.ActivityRecordSet;
import org.apache.guacamole.net.auth.AuthenticationProvider;
import org.apache.guacamole.net.auth.Connection;
import org.apache.guacamole.net.auth.ConnectionGroup;
import org.apache.guacamole.net.auth.ConnectionRecordSet;
import org.apache.guacamole.net.auth.ConnectionRecord;
import org.apache.guacamole.net.auth.Directory;
import org.apache.guacamole.net.auth.SharingProfile;
import org.apache.guacamole.net.auth.User;
import org.apache.guacamole.net.auth.UserContext;
import org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet;
import org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory;
import org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet;
import org.apache.guacamole.net.auth.simple.SimpleDirectory;

/**
Expand Down Expand Up @@ -175,8 +176,8 @@ public Directory<SharingProfile> getSharingProfileDirectory()
}

@Override
public ConnectionRecordSet getConnectionHistory() {
return new SimpleConnectionRecordSet();
public ActivityRecordSet<ConnectionRecord> getConnectionHistory() {
return new SimpleActivityRecordSet<ConnectionRecord>();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@
</foreach>

<!-- Bind sort property enum values for sake of readability -->
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ConnectionRecordSet$SortableProperty@START_DATE"/>
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ActivityRecordSet$SortableProperty@START_DATE"/>

<!-- Sort predicates -->
<foreach collection="sortPredicates" item="sortPredicate"
Expand Down Expand Up @@ -199,7 +199,7 @@
</foreach>

<!-- Bind sort property enum values for sake of readability -->
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ConnectionRecordSet$SortableProperty@START_DATE"/>
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ActivityRecordSet$SortableProperty@START_DATE"/>

<!-- Sort predicates -->
<foreach collection="sortPredicates" item="sortPredicate"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
</foreach>

<!-- Bind sort property enum values for sake of readability -->
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ConnectionRecordSet$SortableProperty@START_DATE"/>
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ActivityRecordSet$SortableProperty@START_DATE"/>

<!-- Sort predicates -->
<foreach collection="sortPredicates" item="sortPredicate"
Expand Down Expand Up @@ -197,7 +197,7 @@
</foreach>

<!-- Bind sort property enum values for sake of readability -->
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ConnectionRecordSet$SortableProperty@START_DATE"/>
<bind name="START_DATE" value="@org.apache.guacamole.net.auth.ActivityRecordSet$SortableProperty@START_DATE"/>

<!-- Sort predicates -->
<foreach collection="sortPredicates" item="sortPredicate"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,18 @@
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.form.Form;
import org.apache.guacamole.net.auth.ActiveConnection;
import org.apache.guacamole.net.auth.ActivityRecordSet;
import org.apache.guacamole.net.auth.AuthenticatedUser;
import org.apache.guacamole.net.auth.AuthenticationProvider;
import org.apache.guacamole.net.auth.Connection;
import org.apache.guacamole.net.auth.ConnectionGroup;
import org.apache.guacamole.net.auth.ConnectionRecordSet;
import org.apache.guacamole.net.auth.ConnectionRecord;
import org.apache.guacamole.net.auth.Directory;
import org.apache.guacamole.net.auth.SharingProfile;
import org.apache.guacamole.net.auth.User;
import org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet;
import org.apache.guacamole.net.auth.simple.SimpleConnectionGroup;
import org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory;
import org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet;
import org.apache.guacamole.net.auth.simple.SimpleDirectory;
import org.apache.guacamole.net.auth.simple.SimpleUser;
import org.slf4j.Logger;
Expand Down Expand Up @@ -204,9 +205,9 @@ public Directory<SharingProfile> getSharingProfileDirectory()
}

@Override
public ConnectionRecordSet getConnectionHistory()
public ActivityRecordSet<ConnectionRecord> getConnectionHistory()
throws GuacamoleException {
return new SimpleConnectionRecordSet();
return new SimpleActivityRecordSet<ConnectionRecord>();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,83 +19,13 @@

package org.apache.guacamole.net.auth;

import org.apache.guacamole.GuacamoleException;

/**
* The set of all available connection records, or a subset of those records.
*
* @deprecated
* Use {@link ActivityRecordSet}&lt;{@link ConnectionRecord}&gt; instead.
*/
public interface ConnectionRecordSet extends ActivityRecordSet<ConnectionRecord> {

/**
* Returns the subset of connection records to only those where the
* connection name, user identifier, or any associated date field contain
* the given value. This function may also affect the contents of the
* current ConnectionRecordSet. The contents of the current
* ConnectionRecordSet should NOT be relied upon after this function is
* called.
*
* @param value
* The value which all connection records within the resulting subset
* should contain within their associated connection name or user
* identifier.
*
* @return
* The subset of connection history records which contain the specified
* value within their associated connection name or user identifier.
*
* @throws GuacamoleException
* If an error occurs while restricting the current subset.
*/
@Override
ConnectionRecordSet contains(String value) throws GuacamoleException;

/**
* Returns the subset of connection history records containing only the
* first <code>limit</code> records. If the subset has fewer than
* <code>limit</code> records, then this function has no effect. This
* function may also affect the contents of the current
* ConnectionRecordSet. The contents of the current ConnectionRecordSet
* should NOT be relied upon after this function is called.
*
* @param limit
* The maximum number of records that the new subset should contain.
*
* @return
* The subset of connection history records that containing only the
* first <code>limit</code> records.
*
* @throws GuacamoleException
* If an error occurs while limiting the current subset.
*/
@Override
ConnectionRecordSet limit(int limit) throws GuacamoleException;

/**
* Returns a ConnectionRecordSet containing identically the records within
* this set, sorted according to the specified criteria. The sort operation
* performed is guaranteed to be stable with respect to any past call to
* sort(). This function may also affect the contents of the current
* ConnectionRecordSet. The contents of the current ConnectionRecordSet
* should NOT be relied upon after this function is called.
*
* @param property
* The property by which the connection records within the resulting
* set should be sorted.
*
* @param desc
* Whether the records should be sorted according to the specified
* property in descending order. If false, records will be sorted
* according to the specified property in ascending order.
*
* @return
* The ConnnectionRecordSet, sorted according to the specified
* criteria.
*
* @throws GuacamoleException
* If an error occurs while sorting the current subset.
*/
@Override
ConnectionRecordSet sort(SortableProperty property, boolean desc)
throws GuacamoleException;

@Deprecated
public interface ConnectionRecordSet
extends ActivityRecordSet<ConnectionRecord> {
}
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,16 @@ Directory<SharingProfile> getSharingProfileDirectory()
/**
* Retrieves all connection records visible to current user. The resulting
* set of connection records can be further filtered and ordered using the
* methods defined on ConnectionRecordSet.
* methods defined on ActivityRecordSet.
*
* @return
* A set of all connection records visible to the current user.
*
* @throws GuacamoleException
* If an error occurs while retrieving the connection records.
*/
ConnectionRecordSet getConnectionHistory() throws GuacamoleException;
ActivityRecordSet<ConnectionRecord> getConnectionHistory()
throws GuacamoleException;

/**
* Retrieves a connection group which can be used to view and manipulate
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/

package org.apache.guacamole.net.auth.simple;

import java.util.Collection;
import java.util.Collections;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.net.auth.ActivityRecord;
import org.apache.guacamole.net.auth.ActivityRecordSet;
import org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty;

/**
* An immutable and empty ActivityRecordSet.
*
* @param <RecordType>
* The type of ActivityRecord contained within this set.
*/
public class SimpleActivityRecordSet<RecordType extends ActivityRecord>
implements ActivityRecordSet<RecordType> {

@Override
public Collection<RecordType> asCollection()
throws GuacamoleException {
return Collections.<RecordType>emptyList();
}

@Override
public ActivityRecordSet<RecordType> contains(String value)
throws GuacamoleException {
return this;
}

@Override
public ActivityRecordSet<RecordType> limit(int limit)
throws GuacamoleException {
return this;
}

@Override
public ActivityRecordSet<RecordType> sort(SortableProperty property,
boolean desc) throws GuacamoleException {
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@
import java.util.Collections;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.net.auth.ConnectionRecord;
import org.apache.guacamole.net.auth.ConnectionRecordSet;

/**
* An immutable and empty ConnectionRecordSet.
*
* @deprecated
* Use {@link SimpleActivityRecordSet}&lt;{@link ConnectionRecord}&gt;
* instead.
*/
public class SimpleConnectionRecordSet implements ConnectionRecordSet {
@Deprecated
public class SimpleConnectionRecordSet implements org.apache.guacamole.net.auth.ConnectionRecordSet {

@Override
public Collection<ConnectionRecord> asCollection()
Expand All @@ -37,19 +41,19 @@ public Collection<ConnectionRecord> asCollection()
}

@Override
public ConnectionRecordSet contains(String value)
public org.apache.guacamole.net.auth.ConnectionRecordSet contains(String value)
throws GuacamoleException {
return this;
}

@Override
public ConnectionRecordSet limit(int limit)
public org.apache.guacamole.net.auth.ConnectionRecordSet limit(int limit)
throws GuacamoleException {
return this;
}

@Override
public ConnectionRecordSet sort(SortableProperty property, boolean desc)
public org.apache.guacamole.net.auth.ConnectionRecordSet sort(SortableProperty property, boolean desc)
throws GuacamoleException {
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.form.Form;
import org.apache.guacamole.net.auth.ActiveConnection;
import org.apache.guacamole.net.auth.ActivityRecordSet;
import org.apache.guacamole.net.auth.AuthenticationProvider;
import org.apache.guacamole.net.auth.Connection;
import org.apache.guacamole.net.auth.ConnectionGroup;
import org.apache.guacamole.net.auth.ConnectionRecordSet;
import org.apache.guacamole.net.auth.ConnectionRecord;
import org.apache.guacamole.net.auth.Directory;
import org.apache.guacamole.net.auth.SharingProfile;
import org.apache.guacamole.net.auth.User;
Expand Down Expand Up @@ -209,9 +210,9 @@ public Directory<ActiveConnection> getActiveConnectionDirectory()
}

@Override
public ConnectionRecordSet getConnectionHistory()
public ActivityRecordSet<ConnectionRecord> getConnectionHistory()
throws GuacamoleException {
return new SimpleConnectionRecordSet();
return new SimpleActivityRecordSet<ConnectionRecord>();
}

@Override
Expand Down
Loading

0 comments on commit 26122eb

Please sign in to comment.