# Open Autonomous Connection Protocol > [!IMPORTANT] > This is the classic version! > Classic version is not longer maintained or supported please switch the Branch to master > The new Protocol has a Backwards compatibility and is supporting the classic Version This is the Protocol for our Open Autonomous Connection project.
You can easily implement this Protocol via Maven.
Feel free to join our Discord.

# Bugs/Problems # In progress - Cleanup Code # TODO - Subdomains - Fragments # Maven ### pom.xml ``` me.openautonomousconnection protocol 1.0.0-Classic compile ``` ### Repository: ``` oac https://repo.open-autonomous-connection.org/api/packages/open-autonomous-connection/maven true ``` # Examples #### Note: These examples are very basic ### Server ```java import me.finn.unlegitlibrary.network.system.server.ConnectionHandler; import org.openautonomousconnection.protocol.ProtocolBridge; import org.openautonomousconnection.protocol.ProtocolSettings; import org.openautonomousconnection.protocol.ProtocolVersion; import side.org.openautonomousconnection.protocol.ProtocolServer; public class Server extends ProtocolServer { public Server() throws IOException, InterruptedException { super(10); } public static void main(String[] args) { try { ProtocolBridge protocolBridge = new ProtocolBridge(ProtocolVersion.PV_1_0_0, new ProtocolSettings(), new Server()); protocolBridge.getProtocolServer().setProtocolBridge(protocolBridge); protocolBridge.getProtocolServer().startServer(); } catch (IOException | InterruptedException | InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException exception) { exception.printStackTrace(); } } @Override public List getDomains() throws SQLException { return List.of(); // Your method here to get all registered domains } @Override public void handleMessage(ConnectionHandler connectionHandler, String message) { System.out.println("Received message: " + message + " from client: " + connectionHandler.getClientID()); } } ``` ### Client ```java import org.openautonomousconnection.protocol.ProtocolBridge; import org.openautonomousconnection.protocol.ProtocolSettings; import org.openautonomousconnection.protocol.ProtocolVersion; import domain.org.openautonomousconnection.protocol.Domain; import side.org.openautonomousconnection.protocol.ProtocolClient; import utils.org.openautonomousconnection.protocol.SiteType; public class Client extends ProtocolClient { public static void main(String[] args) { try { ProtocolBridge protocolBridge = new ProtocolBridge(ProtocolVersion.PV_1_0_0, new ProtocolSettings(), new Client()); protocolBridge.getProtocolClient().setProtocolBridge(protocolBridge); protocolBridge.getProtocolServer().startClient(); } catch (IOException | InterruptedException | InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException exception) { exception.printStackTrace(); } } @Override public void handleHTMLContent(SiteType siteType, Domain domain, String htmlContent) { System.out.println("Website html content received. This site is " + siteType.name); System.out.println(htmlContent); // Render content in a webview for example } @Override public void handleMessage(String message) { System.out.println("Received message: " + message); } } ```