diff --git a/config/scalaStyle.xml b/config/scalaStyle.xml new file mode 100644 index 000000000..fd1914857 --- /dev/null +++ b/config/scalaStyle.xml @@ -0,0 +1,144 @@ + + Scalastyle standard configuration + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smack-repl/.gitignore b/smack-repl/.gitignore new file mode 100644 index 000000000..7a2b1d534 --- /dev/null +++ b/smack-repl/.gitignore @@ -0,0 +1 @@ +/.cache-* diff --git a/smack-repl/build.gradle b/smack-repl/build.gradle index 4ffe47173..d4fad4335 100644 --- a/smack-repl/build.gradle +++ b/smack-repl/build.gradle @@ -1,3 +1,10 @@ +plugins { + id "com.github.alisiikh.scalastyle_2.12" version "2.0.2" +} + +apply plugin: 'scala' +apply plugin: 'com.github.alisiikh.scalastyle_2.12' + ext { scalaVersion = '2.12.1' } @@ -11,11 +18,20 @@ dependencies { compile project(':smack-experimental') compile project(':smack-legacy') compile project(':smack-integration-test') + compile "org.scala-lang:scala-library:$scalaVersion" compile "com.lihaoyi:ammonite_$scalaVersion:1.3.2" testCompile project(path: ":smack-core", configuration: "testRuntime") testCompile project(path: ":smack-core", configuration: "archives") } +scalaStyle { + config = new File(rootConfigDir, 'scalaStyle.xml') + verbose = true + failOnViolation = true +} + +check.dependsOn(scalaStyleCheck) + task printClasspath(dependsOn: assemble) { doLast { println sourceSets.main.runtimeClasspath.asPath diff --git a/smack-repl/src/main/scala/org/igniterealtime/smack/scala/util/CheckInBandRegistration.scala b/smack-repl/src/main/scala/org/igniterealtime/smack/scala/util/CheckInBandRegistration.scala new file mode 100644 index 000000000..af6ab7807 --- /dev/null +++ b/smack-repl/src/main/scala/org/igniterealtime/smack/scala/util/CheckInBandRegistration.scala @@ -0,0 +1,49 @@ +/** + * + * Copyright 2018 Florian Schmaus + * + * Licensed 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.igniterealtime.smack.scala.util + +import org.jxmpp.jid.DomainBareJid; +import org.jxmpp.jid.impl.JidCreate; + +import org.jivesoftware.smack.tcp.XMPPTCPConnection; +import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration; + +import org.jivesoftware.smackx.iqregister.AccountManager + +object CheckInBandRegistration { + + def supportsIbr(xmppServiceString: String) : Boolean = { + val xmppServiceAddress = JidCreate domainBareFrom(xmppServiceString) + + val config = XMPPTCPConnectionConfiguration.builder() + .setXmppDomain(xmppServiceAddress) + .build(); + + supportsIbr(config) + } + + def supportsIbr(connectionConfiguration: XMPPTCPConnectionConfiguration) : Boolean = { + val connection = new XMPPTCPConnection(connectionConfiguration) + connection.connect + try { + AccountManager.getInstance(connection).supportsAccountCreation + } finally { + connection disconnect + } + } + +}