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));
}
}
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());
}
}
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);
}
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);
}
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());
}
Aggregations