diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 182f616..81cac66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,11 +26,11 @@ jobs: steps: - uses: actions/checkout@v6 - - name: Set up JDK 8 + - name: Set up JDK 11 uses: actions/setup-java@v5 with: distribution: 'zulu' - java-version: 8 + java-version: 11 - name: Cache local Maven repository uses: actions/cache@v5 diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8731a55..ed0842a 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -24,11 +24,11 @@ jobs: steps: - uses: actions/checkout@v6 - - name: Set up JDK 8 + - name: Set up JDK 11 uses: actions/setup-java@v5 with: distribution: 'zulu' - java-version: 8 + java-version: 11 - name: Cache local Maven repository uses: actions/cache@v5 diff --git a/pom.xml b/pom.xml index 8773dfa..bdefa54 100644 --- a/pom.xml +++ b/pom.xml @@ -92,59 +92,25 @@ - - UTF-8 - 1.7 - 1.7 - - 1.0 - 1.7.32 - 2.25.3 + + 1.7.36 2.3.1 + + 11 + UTF-8 - - com.sun - ldapbp - ${ldapbp.version} - test - - org.slf4j slf4j-api ${slf4j.version} - - org.slf4j - jcl-over-slf4j - ${slf4j.version} - test - - - org.apache.logging.log4j - log4j-api - ${log4j.version} - test - - - org.apache.logging.log4j - log4j-core - ${log4j.version} - test - - - org.apache.logging.log4j - log4j-slf4j-impl - ${log4j.version} - test - - junit - junit - 4.13.2 + org.glassfish.main.external + ldapbp-repackaged + 5.0 test @@ -153,10 +119,17 @@ ${jaxb.version} test + + org.junit.jupiter + junit-jupiter + 5.14.1 + test + clean test + org.apache.maven.plugins @@ -179,6 +152,31 @@ + + org.gaul + modernizer-maven-plugin + 3.2.0 + + ${targetJdk} + + java/util/Enumeration + java/util/Hashtable."<init>":(IF)V + java/util/Hashtable."<init>":(I)V + java/util/Hashtable."<init>":()V + java/util/Hashtable."<init>":(Ljava/util/Map;)V + + + + + modernizer-check + verify + + modernizer + + + + + org.apache.maven.plugins maven-resources-plugin @@ -282,12 +280,11 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.0 + 3.5.3 true utf-8 alphabetical - false **/unit/*Test.java @@ -299,8 +296,16 @@ maven-compiler-plugin 3.14.1 - ${maven.compiler.source} - ${maven.compiler.target} + ${targetJdk} + ${targetJdk} + false + true + true + -Xlint:unchecked + + --add-exports + java.naming/com.sun.jndi.ldap=ALL-UNNAMED + @@ -329,10 +334,7 @@ org.apache.maven.plugins maven-surefire-plugin - true - utf-8 - alphabetical - false + --add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED **/it/*Test.java @@ -365,7 +367,15 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.11.3 + 3.12.0 + + none + ${targetJdk} + + --legal-notices + none + + attach-javadocs diff --git a/src/test/java/net/tirasa/adsddl/it/AbstractTest.java b/src/test/java/net/tirasa/adsddl/it/AbstractTest.java index 98b8032..5679668 100644 --- a/src/test/java/net/tirasa/adsddl/it/AbstractTest.java +++ b/src/test/java/net/tirasa/adsddl/it/AbstractTest.java @@ -15,7 +15,7 @@ */ package net.tirasa.adsddl.it; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; import java.util.Properties; @@ -23,13 +23,11 @@ import javax.naming.NamingException; import javax.naming.ldap.InitialLdapContext; import javax.naming.ldap.LdapContext; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; public abstract class AbstractTest extends net.tirasa.adsddl.unit.AbstractTest { - private static final long serialVersionUID = 1L; - protected static LdapContext ctx; protected static String baseContext; @@ -38,7 +36,7 @@ public abstract class AbstractTest extends net.tirasa.adsddl.unit.AbstractTest { protected static Properties prop; - @BeforeClass + @BeforeAll @SuppressWarnings("unchecked") public static void setUpConnection() throws IOException { prop = new Properties(); @@ -75,7 +73,7 @@ public static void setUpConnection() throws IOException { searchFilter = prop.getProperty("searchFilter"); } - @AfterClass + @AfterAll public static void close() throws NamingException { ctx.close(); } diff --git a/src/test/java/net/tirasa/adsddl/it/DirSyncTest.java b/src/test/java/net/tirasa/adsddl/it/DirSyncTest.java index 59a14d0..bfd7cfc 100644 --- a/src/test/java/net/tirasa/adsddl/it/DirSyncTest.java +++ b/src/test/java/net/tirasa/adsddl/it/DirSyncTest.java @@ -15,7 +15,7 @@ */ package net.tirasa.adsddl.it; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.sun.jndi.ldap.ctl.DirSyncResponseControl; import java.util.AbstractMap; @@ -34,13 +34,10 @@ import javax.naming.ldap.Control; import javax.naming.ldap.LdapContext; import net.tirasa.adsddl.ntsd.controls.DirSyncControl; - -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DirSyncTest extends AbstractTest { - private static final long serialVersionUID = 1L; - @Test public void syncUser() throws Exception { // ----------------------------------- @@ -170,9 +167,7 @@ private Map.Entry> search( final Control[] rspCtls = ctx.getResponseControls(); if (rspCtls != null) { - if (LOG.isDebugEnabled()) { - LOG.debug("Response Controls: {}", rspCtls.length); - } + LOG.debug("Response Controls: {}", rspCtls.length); for (Control rspCtl : rspCtls) { if (rspCtl instanceof DirSyncResponseControl) { @@ -181,9 +176,7 @@ private Map.Entry> search( } } - if (LOG.isDebugEnabled()) { - LOG.debug("Latest sync token set to {}", latestSyncToken); - } + LOG.debug("Latest sync token set to {}", latestSyncToken); } } } catch (NamingException e) { diff --git a/src/test/java/net/tirasa/adsddl/it/RetrieveTest.java b/src/test/java/net/tirasa/adsddl/it/RetrieveTest.java index 605bcce..c7a8827 100644 --- a/src/test/java/net/tirasa/adsddl/it/RetrieveTest.java +++ b/src/test/java/net/tirasa/adsddl/it/RetrieveTest.java @@ -15,8 +15,8 @@ */ package net.tirasa.adsddl.it; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import net.tirasa.adsddl.ntsd.controls.SDFlagsControl; import javax.naming.NamingEnumeration; @@ -26,12 +26,10 @@ import net.tirasa.adsddl.ntsd.SID; import net.tirasa.adsddl.ntsd.utils.Hex; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RetrieveTest extends AbstractTest { - private static final long serialVersionUID = 1L; - @Test public void searchBySID() throws Exception { final SearchControls controls = new SearchControls(); diff --git a/src/test/java/net/tirasa/adsddl/it/UpdateTest.java b/src/test/java/net/tirasa/adsddl/it/UpdateTest.java index a60f4f7..aa7acdd 100644 --- a/src/test/java/net/tirasa/adsddl/it/UpdateTest.java +++ b/src/test/java/net/tirasa/adsddl/it/UpdateTest.java @@ -15,11 +15,12 @@ */ package net.tirasa.adsddl.it; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.util.ArrayList; import java.util.Arrays; @@ -42,13 +43,10 @@ import net.tirasa.adsddl.ntsd.utils.GUID; import net.tirasa.adsddl.ntsd.utils.NumberFacility; import net.tirasa.adsddl.ntsd.utils.SDDLHelper; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class UpdateTest extends AbstractTest { - private static final long serialVersionUID = 1L; - @Test public void readAllAndSaveWithoutChanges() throws Exception { final SearchControls controls = new SearchControls(); @@ -60,7 +58,7 @@ public void readAllAndSaveWithoutChanges() throws Exception { NamingEnumeration results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } SearchResult res = results.next(); @@ -82,7 +80,7 @@ public void readAllAndSaveWithoutChanges() throws Exception { results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } res = results.next(); @@ -106,7 +104,7 @@ public void readDACLAndSaveWithoutChanges() throws Exception { NamingEnumeration results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } SearchResult res = results.next(); @@ -133,7 +131,7 @@ public void readDACLAndSaveWithoutChanges() throws Exception { results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } res = results.next(); @@ -160,7 +158,7 @@ public void userCanChangePassword() throws Exception { NamingEnumeration results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } SearchResult res = results.next(); @@ -184,7 +182,7 @@ public void userCanChangePassword() throws Exception { results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } res = results.next(); @@ -236,7 +234,7 @@ public void userCannotChangePassword() throws Exception { NamingEnumeration results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } SearchResult res = results.next(); @@ -260,7 +258,7 @@ public void userCannotChangePassword() throws Exception { results = ctx.search(baseContext, searchFilter, controls); if (!results.hasMore()) { - Assert.fail(); + fail(); } res = results.next(); diff --git a/src/test/java/net/tirasa/adsddl/unit/AbstractTest.java b/src/test/java/net/tirasa/adsddl/unit/AbstractTest.java index d7e6e96..3a1d7f1 100644 --- a/src/test/java/net/tirasa/adsddl/unit/AbstractTest.java +++ b/src/test/java/net/tirasa/adsddl/unit/AbstractTest.java @@ -15,11 +15,10 @@ */ package net.tirasa.adsddl.unit; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; -import java.io.Serializable; import java.util.Arrays; import net.tirasa.adsddl.ntsd.ACE; import net.tirasa.adsddl.ntsd.ACL; @@ -33,14 +32,11 @@ import net.tirasa.adsddl.ntsd.utils.Hex; import net.tirasa.adsddl.ntsd.utils.NumberFacility; import net.tirasa.adsddl.ntsd.utils.SDDLHelper; -import org.junit.Assert; -import org.junit.BeforeClass; +import org.junit.jupiter.api.BeforeAll; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class AbstractTest implements Serializable { - - private static final long serialVersionUID = 1L; +public abstract class AbstractTest { protected static final Logger LOG = LoggerFactory.getLogger(AbstractTest.class); @@ -51,8 +47,7 @@ public abstract class AbstractTest implements Serializable { protected static String[] control = { "SR", "RM", "PS", "PD", "SI", "DI", "SC", "DC", "DT", "SS", "SD", "SP", "DD", "DP", "GD", "OD" }; - @BeforeClass - @SuppressWarnings("unchecked") + @BeforeAll public static void setUpConnection() throws IOException { // nothing to set up } @@ -75,9 +70,8 @@ protected void UserChangePassword(final byte[] src) throws Exception { printSDDL(sddl); LOG.info(sddl.toString()); } - - // Assert.assertArrayEquals(src, sddl.toByteArray()); + // Assert.assertArrayEquals(src, sddl.toByteArray()); assertFalse(sddl.getDacl().getAces().isEmpty()); boolean found = false; for (ACE ace : sddl.getDacl().getAces()) { @@ -99,7 +93,7 @@ protected void ucpChangeUnMarshall(final byte[] src) throws Exception { printSDDL(sddl); LOG.info(sddl.toString()); } - + byte[] currentContiguousBlock = sddl.toByteArray(); // Assert.assertArrayEquals(src, sddl.toByteArray()); diff --git a/src/test/java/net/tirasa/adsddl/unit/BasicTest.java b/src/test/java/net/tirasa/adsddl/unit/BasicTest.java index 415b91a..8034afe 100644 --- a/src/test/java/net/tirasa/adsddl/unit/BasicTest.java +++ b/src/test/java/net/tirasa/adsddl/unit/BasicTest.java @@ -15,15 +15,14 @@ */ package net.tirasa.adsddl.unit; -import static net.tirasa.adsddl.unit.AbstractTest.SDDL_ALL_SAMPLE; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.net.URISyntaxException; import java.nio.file.Files; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; @@ -33,7 +32,7 @@ import net.tirasa.adsddl.ntsd.utils.Hex; import net.tirasa.adsddl.ntsd.utils.NumberFacility; import net.tirasa.adsddl.ntsd.utils.SDDLHelper; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class BasicTest { @@ -91,7 +90,7 @@ public void checkInt() { @Test public void sddlToString() throws IOException, URISyntaxException { - final byte[] src = Files.readAllBytes(Paths.get(this.getClass().getResource(SDDL_ALL_SAMPLE).toURI())); + final byte[] src = Files.readAllBytes(Path.of(getClass().getResource(AbstractTest.SDDL_ALL_SAMPLE).toURI())); final SDDL sddl = new SDDL(src); // TODO: complete sddl string representation check diff --git a/src/test/java/net/tirasa/adsddl/unit/DACLAssertorTest.java b/src/test/java/net/tirasa/adsddl/unit/DACLAssertorTest.java index c6a19c6..2446324 100644 --- a/src/test/java/net/tirasa/adsddl/unit/DACLAssertorTest.java +++ b/src/test/java/net/tirasa/adsddl/unit/DACLAssertorTest.java @@ -21,36 +21,38 @@ */ package net.tirasa.adsddl.unit; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.io.IOException; import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.file.Files; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.List; - import javax.naming.NamingException; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import javax.xml.bind.DatatypeConverter; import net.tirasa.adsddl.ntsd.ACL; import net.tirasa.adsddl.ntsd.SDDL; import net.tirasa.adsddl.ntsd.SID; import net.tirasa.adsddl.ntsd.dacl.AceAssertion; import net.tirasa.adsddl.ntsd.dacl.DACLAssertor; import net.tirasa.adsddl.ntsd.dacl.DomainJoinRoleAssertion; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DACLAssertorTest { - private static final Logger LOGGER = LoggerFactory.getLogger(DACLAssertorTest.class); + private static final Logger LOG = LoggerFactory.getLogger(DACLAssertorTest.class); private SDDL sddl; + private SDDL sddl_denials; private final String userSIDStr = "S-1-5-21-1835709989-2027683138-697581538-1139"; @@ -62,20 +64,20 @@ public class DACLAssertorTest { private final List groupSIDList = Arrays.asList(groupSIDStr); - @Before + @BeforeEach public void setUp() throws IOException, URISyntaxException { - byte[] src = Files.readAllBytes(Paths.get(this.getClass().getResource("/sddlSampleForAssertor.bin"). - toURI())); - String hexString = javax.xml.bind.DatatypeConverter.printHexBinary(src); - LOGGER.debug("SDDL hexDump: {}", hexString); + byte[] src = Files.readAllBytes( + Path.of(this.getClass().getResource("/sddlSampleForAssertor.bin").toURI())); + String hexString = DatatypeConverter.printHexBinary(src); + LOG.debug("SDDL hexDump: {}", hexString); this.sddl = new SDDL(src); userSID = SID.parse(getSidAsByteBuffer(userSIDStr).array()); - src = Files.readAllBytes(Paths.get(this.getClass().getResource("/sddlSampleForAssertor2.bin"). - toURI())); + src = Files.readAllBytes( + Path.of(this.getClass().getResource("/sddlSampleForAssertor2.bin").toURI())); hexString = javax.xml.bind.DatatypeConverter.printHexBinary(src); - LOGGER.debug("SDDL 2 hexDump: {}", hexString); + LOG.debug("SDDL 2 hexDump: {}", hexString); this.sddl_denials = new SDDL(src); } @@ -132,14 +134,13 @@ public void testDomainJoinRoleNegative() throws NamingException { DomainJoinRoleAssertion djAssertion = new DomainJoinRoleAssertion(userSID, false, null); boolean result = assertor.doAssert(djAssertion); - Assert.assertFalse(result); + assertFalse(result); // should be 6 of them List unsatisfiedAssertions = assertor.getUnsatisfiedAssertions(); - Assert.assertEquals(6, unsatisfiedAssertions.size()); + assertEquals(6, unsatisfiedAssertions.size()); } - @Test public void testDomainJoinRolePositive() throws NamingException { // This should test positively because while the userSID is only granted one of the permissions (create computer), @@ -151,10 +152,10 @@ public void testDomainJoinRolePositive() throws NamingException { for (String s : groupSIDList) { groupSIDs.add(SID.parse(getSidAsByteBuffer(s).array())); } - LOGGER.debug("groupSIDs: {}", groupSIDs); + LOG.debug("groupSIDs: {}", groupSIDs); DomainJoinRoleAssertion djAssertion = new DomainJoinRoleAssertion(userSID, false, groupSIDs); boolean result = assertor.doAssert(djAssertion); - Assert.assertTrue(result); + assertTrue(result); } @Test @@ -166,11 +167,11 @@ public void testDomainJoinRoleNegativeWithMinPermissions() throws NamingExceptio DomainJoinRoleAssertion djAssertion = new DomainJoinRoleAssertion(userSID, false, null, true); boolean result = assertor.doAssert(djAssertion); - Assert.assertFalse(result); + assertFalse(result); // should be 3 of them List unsatisfiedAssertions = assertor.getUnsatisfiedAssertions(); - Assert.assertEquals(4, unsatisfiedAssertions.size()); + assertEquals(4, unsatisfiedAssertions.size()); } @Test @@ -184,10 +185,10 @@ public void testDomainJoinRolePositiveWithMinPermissions() throws NamingExceptio for (String s : groupSIDList) { groupSIDs.add(SID.parse(getSidAsByteBuffer(s).array())); } - LOGGER.debug("groupSIDs: {}", groupSIDs); + LOG.debug("groupSIDs: {}", groupSIDs); DomainJoinRoleAssertion djAssertion = new DomainJoinRoleAssertion(userSID, false, groupSIDs, true); boolean result = assertor.doAssert(djAssertion); - Assert.assertTrue(result); + assertTrue(result); } @Test @@ -201,13 +202,13 @@ public void testDomainJoinRoleNegative_Denials() throws NamingException { for (String s : groupSIDList) { groupSIDs.add(SID.parse(getSidAsByteBuffer(s).array())); } - LOGGER.debug("groupSIDs: {}", groupSIDs); + LOG.debug("groupSIDs: {}", groupSIDs); DomainJoinRoleAssertion djAssertion = new DomainJoinRoleAssertion(userSID, false, groupSIDs); boolean result = assertor.doAssert(djAssertion); - Assert.assertFalse(result); + assertFalse(result); // should be 1 of them List unsatisfiedAssertions = assertor.getUnsatisfiedAssertions(); - Assert.assertEquals(1, unsatisfiedAssertions.size()); + assertEquals(1, unsatisfiedAssertions.size()); } } diff --git a/src/test/java/net/tirasa/adsddl/unit/RetrieveTest.java b/src/test/java/net/tirasa/adsddl/unit/RetrieveTest.java index 47fced6..1957943 100644 --- a/src/test/java/net/tirasa/adsddl/unit/RetrieveTest.java +++ b/src/test/java/net/tirasa/adsddl/unit/RetrieveTest.java @@ -16,28 +16,26 @@ package net.tirasa.adsddl.unit; import java.nio.file.Files; -import java.nio.file.Paths; -import org.junit.Test; +import java.nio.file.Path; +import org.junit.jupiter.api.Test; public class RetrieveTest extends AbstractTest { - private static final long serialVersionUID = 1L; - @Test public void unMarshall() throws Exception { - final byte[] src = Files.readAllBytes(Paths.get(this.getClass().getResource(SDDL_ALL_SAMPLE).toURI())); + final byte[] src = Files.readAllBytes(Path.of(this.getClass().getResource(SDDL_ALL_SAMPLE).toURI())); UnMarshall(src); } @Test public void userChangePassword() throws Exception { - final byte[] src = Files.readAllBytes(Paths.get(this.getClass().getResource(DACL_ONLY_SAMPLE).toURI())); + final byte[] src = Files.readAllBytes(Path.of(this.getClass().getResource(DACL_ONLY_SAMPLE).toURI())); UserChangePassword(src); } @Test public void ucpChangeUnMarshall() throws Exception { - final byte[] src = Files.readAllBytes(Paths.get(this.getClass().getResource(DACL_ONLY_SAMPLE).toURI())); + final byte[] src = Files.readAllBytes(Path.of(this.getClass().getResource(DACL_ONLY_SAMPLE).toURI())); ucpChangeUnMarshall(src); } } diff --git a/src/test/java/net/tirasa/adsddl/utils/DummySocketFactory.java b/src/test/java/net/tirasa/adsddl/utils/DummySocketFactory.java index 42cc01c..c77a81d 100644 --- a/src/test/java/net/tirasa/adsddl/utils/DummySocketFactory.java +++ b/src/test/java/net/tirasa/adsddl/utils/DummySocketFactory.java @@ -31,8 +31,6 @@ public class DummySocketFactory extends SSLSocketFactory { - private static final long serialVersionUID = 1L; - private static final Logger LOG = LoggerFactory.getLogger(DummySocketFactory.class); private SSLSocketFactory socketFactory;