Search in sources :

Example 1 with Plugin

use of org.craftercms.commons.plugin.model.Plugin in project commons by craftercms.

the class PluginDescriptorReaderImplTest method testParameters.

@Test
public void testParameters() throws IOException, PluginException {
    Parameter param = new Parameter();
    param.setLabel("Optional Key");
    param.setName("optionalKey");
    param.setRequired(false);
    param.setType(Parameter.Type.PASSWORD);
    try (InputStream is = descriptorParams.getInputStream()) {
        PluginDescriptor descriptor = reader.read(is);
        assertNull(descriptor.getBlueprint());
        assertNotNull(descriptor.getPlugin());
        Plugin plugin = descriptor.getPlugin();
        assertNotNull(plugin.getParameters());
        assertEquals(3, plugin.getParameters().size());
        assertEquals("AWS Access Key", plugin.getParameters().get(0).getLabel());
        assertEquals("awsAccessKey", plugin.getParameters().get(0).getName());
        assertEquals(param, plugin.getParameters().get(2));
    }
}
Also used : PluginDescriptor(org.craftercms.commons.plugin.model.PluginDescriptor) InputStream(java.io.InputStream) Parameter(org.craftercms.commons.plugin.model.Parameter) Plugin(org.craftercms.commons.plugin.model.Plugin) Test(org.junit.Test)

Example 2 with Plugin

use of org.craftercms.commons.plugin.model.Plugin in project commons by craftercms.

the class PluginDescriptorReaderImplTest method testV2.

@Test
public void testV2() throws IOException, PluginException {
    try (InputStream is = descriptorV2.getInputStream()) {
        PluginDescriptor descriptor = reader.read(is);
        assertEquals("2", descriptor.getDescriptorVersion());
        assertNull(descriptor.getBlueprint());
        assertNotNull(descriptor.getPlugin());
        Plugin plugin = descriptor.getPlugin();
        assertEquals("Website Editorial Blueprint", plugin.getName());
        assertEquals("blueprint", plugin.getType());
        assertEquals(3, plugin.getTags().size());
        assertEquals(3, plugin.getCrafterCmsVersions().get(0).getMajor());
        assertEquals(2, plugin.getCrafterCmsEditions().size());
        assertEquals(6, plugin.getMedia().getScreenshots().size());
        assertEquals("Crafter Software", plugin.getDeveloper().getCompany().getName());
    }
}
Also used : PluginDescriptor(org.craftercms.commons.plugin.model.PluginDescriptor) InputStream(java.io.InputStream) Plugin(org.craftercms.commons.plugin.model.Plugin) Test(org.junit.Test)

Example 3 with Plugin

use of org.craftercms.commons.plugin.model.Plugin in project studio by craftercms.

the class MarketplaceServiceInternalImpl method createSite.

@Override
public void createSite(CreateSiteRequest request) throws RemoteRepositoryNotFoundException, InvalidRemoteRepositoryException, RemoteRepositoryNotBareException, InvalidRemoteUrlException, ServiceLayerException, InvalidRemoteRepositoryCredentialsException {
    if (StringUtils.isEmpty(request.getSandboxBranch())) {
        request.setSandboxBranch(studioConfiguration.getProperty(StudioConfiguration.REPO_SANDBOX_BRANCH));
    }
    if (StringUtils.isEmpty(request.getRemoteName())) {
        request.setRemoteName(studioConfiguration.getProperty(StudioConfiguration.REPO_DEFAULT_REMOTE_NAME));
    }
    Map<String, Object> result = getDescriptor(request.getBlueprintId(), request.getBlueprintVersion());
    Plugin plugin = mapper.convertValue(result, Plugin.class);
    sitesServiceInternal.validateBlueprintParameters(PluginDescriptor.of(plugin), request.getSiteParams());
    siteService.createSiteWithRemoteOption(request.getSiteId(), request.getSandboxBranch(), request.getDescription(), request.getBlueprintId(), request.getRemoteName(), result.get(PLUGIN_URL).toString(), result.get(PLUGIN_REF).toString(), false, RemoteRepository.AuthenticationType.NONE, null, null, null, null, StudioConstants.REMOTE_REPOSITORY_CREATE_OPTION_CLONE, request.getSiteParams(), true);
}
Also used : Plugin(org.craftercms.commons.plugin.model.Plugin)

Example 4 with Plugin

use of org.craftercms.commons.plugin.model.Plugin in project studio by craftercms.

the class DescriptorV2UpgradeOperation method doPluginDescriptorUpdates.

@Override
@SuppressWarnings("deprecation")
protected void doPluginDescriptorUpdates(final PluginDescriptor descriptor) {
    BlueprintDescriptor.Blueprint blueprint = descriptor.getBlueprint();
    Plugin plugin = new Plugin();
    plugin.setType(BLUEPRINT);
    plugin.setId(blueprint.getId());
    plugin.setName(blueprint.getName());
    plugin.setDescription(blueprint.getDescription());
    plugin.setTags(Arrays.asList(blueprint.getTags().split(",")));
    plugin.setSearchEngine(blueprint.getSearchEngine());
    Version pluginVersion = new Version();
    pluginVersion.setMajor(blueprint.getVersion().getMajor());
    pluginVersion.setMinor(blueprint.getVersion().getMinor());
    pluginVersion.setPatch(blueprint.getVersion().getPatch());
    plugin.setVersion(pluginVersion);
    Build build = new Build();
    build.setId(blueprint.getBuild().getId());
    build.setDate(blueprint.getBuild().getDate());
    plugin.setBuild(build);
    Link license = new Link();
    license.setName(blueprint.getLicense().getName());
    license.setUrl(blueprint.getLicense().getUrl());
    plugin.setLicense(license);
    Link website = new Link();
    website.setName(blueprint.getWebsite().getName());
    website.setUrl(blueprint.getWebsite().getUrl());
    plugin.setWebsite(website);
    Media media = new Media();
    if (nonNull(blueprint.getMedia()) && isNotEmpty(blueprint.getMedia().getScreenshots())) {
        media.setScreenshots(blueprint.getMedia().getScreenshots().stream().map(oldScreenshot -> {
            Asset screenshot = new Asset();
            screenshot.setTitle(oldScreenshot.getScreenshot().getTitle());
            screenshot.setDescription(oldScreenshot.getScreenshot().getDescription());
            screenshot.setUrl(oldScreenshot.getScreenshot().getUrl());
            return screenshot;
        }).collect(toList()));
    }
    if (nonNull(blueprint.getMedia()) && isNotEmpty(blueprint.getMedia().getVideos())) {
        media.setVideos(blueprint.getMedia().getVideos().stream().map(oldVideo -> {
            Asset video = new Asset();
            video.setTitle(oldVideo.getVideo().getTitle());
            video.setDescription(oldVideo.getVideo().getDescription());
            video.setUrl(oldVideo.getVideo().getUrl());
            return video;
        }).collect(toList()));
    }
    plugin.setMedia(media);
    plugin.setCrafterCmsVersions(blueprint.getCraftercmsVersionsSupported().stream().map(oldVersion -> {
        String[] values = oldVersion.getVersion().split("\\.");
        Version version = new Version();
        version.setMajor(Integer.parseInt(values[0]));
        version.setMinor(Integer.parseInt(values[1]));
        version.setPatch(Integer.parseInt(values[2]));
        return version;
    }).collect(toList()));
    Developer developer = new Developer();
    if (nonNull(blueprint.getMedia()) && nonNull(blueprint.getMedia().getDeveloper()) && isNotEmpty(blueprint.getMedia().getDeveloper().getPeople())) {
        developer.setPeople(blueprint.getMedia().getDeveloper().getPeople().stream().map(oldDev -> {
            Contact dev = new Contact();
            dev.setName(oldDev.getPerson().getName());
            dev.setEmail(oldDev.getPerson().getEmail());
            dev.setUrl(oldDev.getPerson().getUrl());
            return dev;
        }).collect(toList()));
    }
    if (nonNull(blueprint.getMedia()) && nonNull(blueprint.getMedia().getDeveloper()) && nonNull(blueprint.getMedia().getDeveloper().getCompany())) {
        Contact company = new Contact();
        company.setName(blueprint.getMedia().getDeveloper().getCompany().getName());
        company.setEmail(blueprint.getMedia().getDeveloper().getCompany().getEmail());
        company.setUrl(blueprint.getMedia().getDeveloper().getCompany().getUrl());
        developer.setCompany(company);
    }
    plugin.setDeveloper(developer);
    plugin.setCrafterCmsEditions(singletonList(CrafterCmsEditions.COMMUNITY));
    descriptor.setPlugin(plugin);
    descriptor.setBlueprint(null);
}
Also used : Version(org.craftercms.commons.plugin.model.Version) BlueprintDescriptor(org.craftercms.commons.plugin.model.BlueprintDescriptor) Build(org.craftercms.commons.plugin.model.Build) Media(org.craftercms.commons.plugin.model.Media) Asset(org.craftercms.commons.plugin.model.Asset) Developer(org.craftercms.commons.plugin.model.Developer) Link(org.craftercms.commons.plugin.model.Link) Plugin(org.craftercms.commons.plugin.model.Plugin) Contact(org.craftercms.commons.plugin.model.Contact)

Example 5 with Plugin

use of org.craftercms.commons.plugin.model.Plugin in project studio by craftercms.

the class SitesServiceInternalImpl method validateBlueprintParameters.

@Override
public void validateBlueprintParameters(final PluginDescriptor descriptor, final Map<String, String> params) throws MissingPluginParameterException {
    Plugin plugin = descriptor.getPlugin();
    if (CollectionUtils.isEmpty(plugin.getParameters())) {
        logger.debug("There are no parameters defined for blueprint: {0}", plugin.getId());
        return;
    }
    for (Parameter param : plugin.getParameters()) {
        logger.debug("Checking parameter {0} for blueprint {1}", param.getName(), plugin.getId());
        if (param.isRequired()) {
            if (!params.containsKey(param.getName()) || StringUtils.isEmpty(params.get(param.getName()))) {
                throw new MissingPluginParameterException(descriptor, param);
            }
        } else {
            params.putIfAbsent(param.getName(), param.getDefaultValue());
        }
    }
    logger.debug("All required parameters are present for blueprint: {0}", plugin.getId());
}
Also used : Parameter(org.craftercms.commons.plugin.model.Parameter) MissingPluginParameterException(org.craftercms.studio.api.v2.exception.MissingPluginParameterException) Plugin(org.craftercms.commons.plugin.model.Plugin)

Aggregations

Plugin (org.craftercms.commons.plugin.model.Plugin)5 InputStream (java.io.InputStream)2 Parameter (org.craftercms.commons.plugin.model.Parameter)2 PluginDescriptor (org.craftercms.commons.plugin.model.PluginDescriptor)2 Test (org.junit.Test)2 Asset (org.craftercms.commons.plugin.model.Asset)1 BlueprintDescriptor (org.craftercms.commons.plugin.model.BlueprintDescriptor)1 Build (org.craftercms.commons.plugin.model.Build)1 Contact (org.craftercms.commons.plugin.model.Contact)1 Developer (org.craftercms.commons.plugin.model.Developer)1 Link (org.craftercms.commons.plugin.model.Link)1 Media (org.craftercms.commons.plugin.model.Media)1 Version (org.craftercms.commons.plugin.model.Version)1 MissingPluginParameterException (org.craftercms.studio.api.v2.exception.MissingPluginParameterException)1