Package com.abiquo.ssm.exception

Examples of com.abiquo.ssm.exception.InvalidPluginException


    @Override
    public StoragePluginMetadata getPluginMetadata()
    {
        if (!this.getClass().isAnnotationPresent(Plugin.class))
        {
            throw new InvalidPluginException("Missing @Plugin annotation in "
                + this.getClass().getName());
        }

        Plugin pluginInfo = this.getClass().getAnnotation(Plugin.class);

        if (pluginInfo.type() == null)
        {
            throw new InvalidPluginException("Plugin type can not be null in "
                + this.getClass().getName());
        }

        StoragePluginMetadata metadata = new StoragePluginMetadata();
        metadata.setDefaultServicePort(pluginInfo.defaultServicePort());
        metadata.setDefaultManagementPort(pluginInfo.defaultManagementPort());
        metadata.setRequiresAuthentication(pluginInfo.requiresAuthentication());
        metadata.setType(pluginInfo.type());

        try
        {
            Method[] methods = StoragePlugin.class.getMethods();
            for (Method methodDefinition : methods)
            {
                if (methodDefinition.isAnnotationPresent(Provides.class))
                {
                    Method implMethod =
                        this.getClass().getMethod(methodDefinition.getName(),
                            methodDefinition.getParameterTypes());

                    if (!implMethod.isAnnotationPresent(UnsupportedOp.class))
                    {
                        Provides provides = methodDefinition.getAnnotation(Provides.class);
                        metadata.getSupportedOperations().add(provides.value());
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw new InvalidPluginException("Could not get the list of supported operations for plugin: "
                + this.getClass().getName());
        }

        return metadata;
    }
View Full Code Here

TOP

Related Classes of com.abiquo.ssm.exception.InvalidPluginException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.