You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/01/19 17:11:04 UTC
[isis] 02/04: ISIS-2158: decouple core from encodable (commons
internal package)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit b67cb1ea143d7465825cb44067540cb3f6bb31cf
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 19 18:04:52 2020 +0100
ISIS-2158: decouple core from encodable (commons internal package)
---
.../session/init/InitialisationSession.java | 7 ----
.../authentication/AuthenticationSession.java | 3 +-
.../AuthenticationSessionAbstract.java | 22 -----------
.../authentication/health/HealthAuthSession.java | 6 ---
.../singleuser/SingleUserSession.java | 22 +----------
.../authentication/standard/SimpleSession.java | 6 ---
.../isis/security/EncodabilityContractTest.java | 46 +++++++++-------------
.../SimpleSessionEncodabilityNoRolesTest.java | 4 +-
.../SimpleSessionEncodabilityWithRolesTest.java | 4 +-
9 files changed, 25 insertions(+), 95 deletions(-)
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/InitialisationSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/InitialisationSession.java
index ce2950a..3c6baeb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/InitialisationSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/session/init/InitialisationSession.java
@@ -19,9 +19,6 @@
package org.apache.isis.core.runtime.session.init;
-import java.io.IOException;
-
-import org.apache.isis.core.commons.internal.encoding.DataInputExtended;
import org.apache.isis.core.security.authentication.AuthenticationSessionAbstract;
public final class InitialisationSession extends AuthenticationSessionAbstract {
@@ -32,8 +29,4 @@ public final class InitialisationSession extends AuthenticationSessionAbstract {
super("initialisation", "");
}
- public InitialisationSession(final DataInputExtended input) throws IOException {
- super(input);
- }
-
}
\ No newline at end of file
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java
index f80b1c0..0b96848 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java
@@ -23,13 +23,12 @@ import java.io.Serializable;
import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.core.commons.collections.Can;
-import org.apache.isis.core.commons.internal.encoding.Encodable;
import org.apache.isis.core.security.authentication.manager.AuthenticationManager;
/**
* The representation within the system of an authenticated user.
*/
-public interface AuthenticationSession extends Encodable, Serializable {
+public interface AuthenticationSession extends Serializable {
/**
* The name of the authenticated user; for display purposes only.
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java
index 8103089..3f62fcf 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java
@@ -19,9 +19,7 @@
package org.apache.isis.core.security.authentication;
-import java.io.IOException;
import java.io.Serializable;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -36,8 +34,6 @@ import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.commons.internal.base._Strings;
import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.core.commons.internal.encoding.DataInputExtended;
-import org.apache.isis.core.commons.internal.encoding.DataOutputExtended;
import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
@@ -72,24 +68,6 @@ public abstract class AuthenticationSessionAbstract implements AuthenticationSes
// nothing to do
}
- public AuthenticationSessionAbstract(final DataInputExtended input) throws IOException {
- this.name = input.readUTF();
- this.roles.addAll(Arrays.asList(input.readUTFs()));
-
- this.validationCode = input.readUTF();
- this.messageBroker = new MessageBroker();
- // nothing to do
- }
-
- // -- encode
-
- @Override
- public void encode(final DataOutputExtended output) throws IOException {
- output.writeUTF(getUserName());
- output.writeUTFs(roles.toArray(new String[] {}));
- output.writeUTF(validationCode);
- }
-
// -- User Name
@Override
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/health/HealthAuthSession.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/health/HealthAuthSession.java
index 11db2b2..6d8c257 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/health/HealthAuthSession.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/health/HealthAuthSession.java
@@ -19,10 +19,8 @@
package org.apache.isis.core.security.authentication.health;
-import java.io.IOException;
import java.util.stream.Stream;
-import org.apache.isis.core.commons.internal.encoding.DataInputExtended;
import org.apache.isis.core.security.authentication.AuthenticationSessionAbstract;
public class HealthAuthSession extends AuthenticationSessionAbstract {
@@ -37,9 +35,5 @@ public class HealthAuthSession extends AuthenticationSessionAbstract {
super(USER_NAME, Stream.of(ROLE), CODE);
}
- public HealthAuthSession(final DataInputExtended input) throws IOException {
- super(input);
- }
-
}
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/singleuser/SingleUserSession.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/singleuser/SingleUserSession.java
index 01c0fab..4aac697 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/singleuser/SingleUserSession.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/singleuser/SingleUserSession.java
@@ -19,14 +19,9 @@
package org.apache.isis.core.security.authentication.singleuser;
-import java.io.IOException;
-
-import org.apache.isis.core.commons.internal.encoding.DataInputExtended;
-import org.apache.isis.core.commons.internal.encoding.DataOutputExtended;
-import org.apache.isis.core.commons.internal.encoding.Encodable;
import org.apache.isis.core.security.authentication.AuthenticationSessionAbstract;
-public final class SingleUserSession extends AuthenticationSessionAbstract implements Encodable {
+public final class SingleUserSession extends AuthenticationSessionAbstract {
private static final long serialVersionUID = 1L;
@@ -41,21 +36,6 @@ public final class SingleUserSession extends AuthenticationSessionAbstract imple
public SingleUserSession(final String code) {
super(DEFAULT_USER_NAME, code);
- initialized();
- }
-
- public SingleUserSession(final DataInputExtended input) throws IOException {
- super(input);
- initialized();
- }
-
- @Override
- public void encode(final DataOutputExtended output) throws IOException {
- super.encode(output);
- }
-
- private void initialized() {
- // nothing to do
}
}
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/standard/SimpleSession.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/standard/SimpleSession.java
index b060c9f..14024cc 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/standard/SimpleSession.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/standard/SimpleSession.java
@@ -19,11 +19,9 @@
package org.apache.isis.core.security.authentication.standard;
-import java.io.IOException;
import java.util.List;
import java.util.stream.Stream;
-import org.apache.isis.core.commons.internal.encoding.DataInputExtended;
import org.apache.isis.core.security.authentication.AuthenticationSessionAbstract;
import static org.apache.isis.core.commons.internal.base._NullSafe.stream;
@@ -51,10 +49,6 @@ public class SimpleSession extends AuthenticationSessionAbstract {
super(name, roles, code);
}
- public SimpleSession(final DataInputExtended input) throws IOException {
- super(input);
- }
-
@Getter @Setter
private Type type = Type.DEFAULT;
diff --git a/core/security/src/test/java/org/apache/isis/security/EncodabilityContractTest.java b/core/security/src/test/java/org/apache/isis/security/EncodabilityContractTest.java
index 71dab7a..15b138a 100644
--- a/core/security/src/test/java/org/apache/isis/security/EncodabilityContractTest.java
+++ b/core/security/src/test/java/org/apache/isis/security/EncodabilityContractTest.java
@@ -20,8 +20,11 @@
package org.apache.isis.security;
import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
+import java.io.Serializable;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JUnit4Mockery;
@@ -31,20 +34,17 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-import org.apache.isis.core.commons.internal.encoding.DataInputExtended;
-import org.apache.isis.core.commons.internal.encoding.DataInputStreamExtended;
-import org.apache.isis.core.commons.internal.encoding.DataOutputStreamExtended;
-import org.apache.isis.core.commons.internal.encoding.Encodable;
import org.apache.isis.core.security.authentication.AuthenticationSession;
+import lombok.val;
+
public abstract class EncodabilityContractTest {
protected final Mockery context = new JUnit4Mockery();
protected AuthenticationSession mockAuthSession;
- protected Encodable encodable;
+ protected Serializable serializable;
public EncodabilityContractTest() {
super();
@@ -52,41 +52,33 @@ public abstract class EncodabilityContractTest {
@Before
public void setUp() throws Exception {
- encodable = createEncodable();
+ serializable = createEncodable();
mockAuthSession = context.mock(AuthenticationSession.class);
}
/**
* Hook for subclasses to provide object to be tested.
*/
- protected abstract Encodable createEncodable();
+ protected abstract Serializable createEncodable();
@Test
public void shouldImplementEncodeable() throws Exception {
- assertThat(encodable, is(instanceOf(Encodable.class)));
- }
-
- @Test
- public void shouldHaveOneArgConstructorThatAcceptsInput() {
- final Object o = encodable;
- try {
- o.getClass().getConstructor(DataInputExtended.class);
- } catch (final Exception e) {
- fail("could not locate 1-arg constructor accepting a DataInputExtended instance");
- }
+ assertThat(serializable, is(instanceOf(Serializable.class)));
}
@Test
- public void shouldRoundTrip() throws IOException {
+ public void shouldRoundTrip() throws IOException, ClassNotFoundException {
final PipedInputStream pipedInputStream = new PipedInputStream();
final PipedOutputStream pipedOutputStream = new PipedOutputStream(pipedInputStream);
- final DataOutputStreamExtended outputImpl = new DataOutputStreamExtended(pipedOutputStream);
- final DataInputStreamExtended inputImpl = new DataInputStreamExtended(pipedInputStream);
-
- outputImpl.writeEncodable(encodable);
- final Object decodedEncodable = inputImpl.readEncodable(Object.class);
-
- assertRoundtripped(decodedEncodable, encodable);
+
+ try(val out = new ObjectOutputStream(pipedOutputStream)) {
+ out.writeObject(serializable);
+
+ val in = new ObjectInputStream(pipedInputStream);
+ val decodedObject = in.readObject();
+
+ assertRoundtripped(decodedObject, serializable);
+ }
}
protected abstract void assertRoundtripped(Object decodedEncodable, Object originalEncodable);
diff --git a/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityNoRolesTest.java b/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityNoRolesTest.java
index 0478512..a2df28d 100644
--- a/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityNoRolesTest.java
+++ b/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityNoRolesTest.java
@@ -19,19 +19,19 @@
package org.apache.isis.security.authentication.standard;
+import java.io.Serializable;
import java.util.Collections;
import org.jmock.integration.junit4.JMock;
import org.junit.runner.RunWith;
-import org.apache.isis.core.commons.internal.encoding.Encodable;
import org.apache.isis.core.security.authentication.standard.SimpleSession;
@RunWith(JMock.class)
public class SimpleSessionEncodabilityNoRolesTest extends SimpleSessionEncodabilityTestAbstract {
@Override
- protected Encodable createEncodable() {
+ protected Serializable createEncodable() {
return new SimpleSession("joe", Collections.emptyList());
}
diff --git a/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityWithRolesTest.java b/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityWithRolesTest.java
index 3dc472c..0d3ca7b 100644
--- a/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityWithRolesTest.java
+++ b/core/security/src/test/java/org/apache/isis/security/authentication/standard/SimpleSessionEncodabilityWithRolesTest.java
@@ -19,19 +19,19 @@
package org.apache.isis.security.authentication.standard;
+import java.io.Serializable;
import java.util.Arrays;
import org.jmock.integration.junit4.JMock;
import org.junit.runner.RunWith;
-import org.apache.isis.core.commons.internal.encoding.Encodable;
import org.apache.isis.core.security.authentication.standard.SimpleSession;
@RunWith(JMock.class)
public class SimpleSessionEncodabilityWithRolesTest extends SimpleSessionEncodabilityTestAbstract {
@Override
- protected Encodable createEncodable() {
+ protected Serializable createEncodable() {
return new SimpleSession("joe", Arrays.asList(new String[] { "role1", "role2" }));
}