From 59527d320d6b2a024e5c0b1cca5d9d25375f6a3c Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 20 Jul 2014 11:19:50 +0200 Subject: [PATCH] Add SmackAndOsgiInitializer OSGi ServiceComponents need the activate method, make sure it exists for every SmackInitializer by using this class. --- .../initializer/SmackAndOsgiInitializer.java | 28 +++++++++++++++++++ .../smack/initializer/UrlInitializer.java | 10 +------ .../smack/util/dns/javax/JavaxResolver.java | 4 +-- 3 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 smack-core/src/main/java/org/jivesoftware/smack/initializer/SmackAndOsgiInitializer.java diff --git a/smack-core/src/main/java/org/jivesoftware/smack/initializer/SmackAndOsgiInitializer.java b/smack-core/src/main/java/org/jivesoftware/smack/initializer/SmackAndOsgiInitializer.java new file mode 100644 index 000000000..885864b7d --- /dev/null +++ b/smack-core/src/main/java/org/jivesoftware/smack/initializer/SmackAndOsgiInitializer.java @@ -0,0 +1,28 @@ +/** + * + * Copyright 2014 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.jivesoftware.smack.initializer; + +public abstract class SmackAndOsgiInitializer implements SmackInitializer { + + /** + * A simple wrapper around {@link #initialize} for OSGi, as the activate method of a component + * must have a void return type. + */ + public final void activate() { + initialize(); + } +} diff --git a/smack-core/src/main/java/org/jivesoftware/smack/initializer/UrlInitializer.java b/smack-core/src/main/java/org/jivesoftware/smack/initializer/UrlInitializer.java index d716a7286..e2f13b474 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/initializer/UrlInitializer.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/initializer/UrlInitializer.java @@ -34,17 +34,9 @@ import org.jivesoftware.smack.util.FileUtils; * * @author Florian Schmaus */ -public abstract class UrlInitializer implements SmackInitializer { +public abstract class UrlInitializer extends SmackAndOsgiInitializer { private static final Logger LOGGER = Logger.getLogger(UrlInitializer.class.getName()); - /** - * A simple wrapper around {@link #initialize} for OSGi, as the activate method of a component - * must have a void return type. - */ - public final void activate() { - initialize(); - } - @Override public List initialize() { return initialize(this.getClass().getClassLoader()); diff --git a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java index 78d0d4260..430b496d8 100644 --- a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java +++ b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java @@ -28,7 +28,7 @@ import javax.naming.directory.Attributes; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; -import org.jivesoftware.smack.initializer.SmackInitializer; +import org.jivesoftware.smack.initializer.SmackAndOsgiInitializer; import org.jivesoftware.smack.util.DNSUtil; import org.jivesoftware.smack.util.dns.DNSResolver; import org.jivesoftware.smack.util.dns.SRVRecord; @@ -39,7 +39,7 @@ import org.jivesoftware.smack.util.dns.SRVRecord; * @author Florian Schmaus * */ -public class JavaxResolver implements DNSResolver, SmackInitializer { +public class JavaxResolver extends SmackAndOsgiInitializer implements DNSResolver { private static JavaxResolver instance; private static DirContext dirContext;