use of org.apache.pulsar.broker.admin.v1.Properties in project extension-s3 by lucee.
the class S3Function method toS3Properties.
protected static S3Properties toS3Properties(PageContext pc, String accessKeyId, String secretAccessKey) throws PageException, RuntimeException {
// directly
if (!Util.isEmpty(accessKeyId, true) && !Util.isEmpty(secretAccessKey, true)) {
S3Properties props = new S3Properties();
props.setSecretAccessKey(secretAccessKey);
props.setAccessKeyId(accessKeyId);
props.setCustomCredentials(true);
return props;
}
// application context
ApplicationContext ac = pc.getApplicationContext();
if (ac != null) {
Properties props = ac.getS3();
if (props != null) {
accessKeyId = props.getAccessKeyId();
secretAccessKey = props.getSecretAccessKey();
if (!Util.isEmpty(accessKeyId, true) && !Util.isEmpty(secretAccessKey, true)) {
S3Properties s3props = new S3Properties();
s3props.setSecretAccessKey(secretAccessKey);
s3props.setAccessKeyId(accessKeyId);
s3props.setCustomCredentials(false);
if (props.getHost() != null)
s3props.setHost(props.getHost());
return s3props;
}
}
}
if (Util.isEmpty(secretAccessKey, true))
secretAccessKey = S3Util.getSystemPropOrEnvVar("lucee.s3.secretaccesskey", null);
if (Util.isEmpty(secretAccessKey, true))
secretAccessKey = S3Util.getSystemPropOrEnvVar("lucee.s3.secretkey", null);
if (Util.isEmpty(accessKeyId, true))
accessKeyId = S3Util.getSystemPropOrEnvVar("lucee.s3.accesskeyid", null);
if (Util.isEmpty(accessKeyId, true))
accessKeyId = S3Util.getSystemPropOrEnvVar("lucee.s3.accesskey", null);
if (Util.isEmpty(secretAccessKey, true) || Util.isEmpty(accessKeyId, true))
throw CFMLEngineFactory.getInstance().getExceptionUtil().createApplicationException("missing S3 credentials", "you can define the credentials as argument for the function [accessKeyId, secretAccessKey], in the application.cfc [this.s3.accessKeyId, this.s3.secretAccessKey] or in the system properties/environment variables [lucee.s3.secretaccesskey,lucee.s3.accesskeyid]");
S3Properties props = new S3Properties();
props.setSecretAccessKey(secretAccessKey);
props.setAccessKeyId(accessKeyId);
props.setCustomCredentials(false);
return props;
}
use of org.apache.pulsar.broker.admin.v1.Properties in project pulsar by yahoo.
the class AdminTest method properties.
@Test
public void properties() throws Throwable {
Object response = asyncRequests(ctx -> properties.getTenants(ctx));
assertEquals(response, Lists.newArrayList());
verify(properties, times(1)).validateSuperUserAccessAsync();
// create local cluster
asyncRequests(ctx -> clusters.createCluster(ctx, configClusterName, ClusterDataImpl.builder().build()));
Set<String> allowedClusters = Sets.newHashSet();
allowedClusters.add(configClusterName);
TenantInfoImpl tenantInfo = TenantInfoImpl.builder().adminRoles(Sets.newHashSet("role1", "role2")).allowedClusters(allowedClusters).build();
response = asyncRequests(ctx -> properties.createTenant(ctx, "test-property", tenantInfo));
verify(properties, times(2)).validateSuperUserAccessAsync();
response = asyncRequests(ctx -> properties.getTenants(ctx));
assertEquals(response, Lists.newArrayList("test-property"));
verify(properties, times(3)).validateSuperUserAccessAsync();
response = asyncRequests(ctx -> properties.getTenantAdmin(ctx, "test-property"));
assertEquals(response, tenantInfo);
verify(properties, times(4)).validateSuperUserAccessAsync();
final TenantInfoImpl newPropertyAdmin = TenantInfoImpl.builder().adminRoles(Sets.newHashSet("role1", "other-role")).allowedClusters(allowedClusters).build();
response = asyncRequests(ctx -> properties.updateTenant(ctx, "test-property", newPropertyAdmin));
verify(properties, times(5)).validateSuperUserAccessAsync();
// Wait for updateTenant to take effect
Thread.sleep(100);
response = asyncRequests(ctx -> properties.getTenantAdmin(ctx, "test-property"));
assertEquals(response, newPropertyAdmin);
response = asyncRequests(ctx -> properties.getTenantAdmin(ctx, "test-property"));
assertNotSame(response, tenantInfo);
verify(properties, times(7)).validateSuperUserAccessAsync();
// Check creating existing property
try {
response = asyncRequests(ctx -> properties.createTenant(ctx, "test-property", tenantInfo));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.CONFLICT.getStatusCode());
}
// Check non-existing property
try {
response = asyncRequests(ctx -> properties.getTenantAdmin(ctx, "non-existing"));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.NOT_FOUND.getStatusCode());
}
try {
response = asyncRequests(ctx -> properties.updateTenant(ctx, "xxx-non-existing", newPropertyAdmin));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.NOT_FOUND.getStatusCode());
}
// Check deleting non-existing property
try {
response = asyncRequests(ctx -> properties.deleteTenant(ctx, "non-existing", false));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.NOT_FOUND.getStatusCode());
}
// clear caches to load data from metadata-store again
MetadataCacheImpl<TenantInfo> cache = (MetadataCacheImpl<TenantInfo>) pulsar.getPulsarResources().getTenantResources().getCache();
AbstractMetadataStore store = (AbstractMetadataStore) cache.getStore();
cache.invalidateAll();
store.invalidateAll();
// Test zk failures
mockZooKeeperGlobal.failConditional(Code.SESSIONEXPIRED, (op, path) -> {
return op == MockZooKeeper.Op.GET_CHILDREN && path.equals("/admin/policies");
});
try {
response = asyncRequests(ctx -> properties.getTenants(ctx));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.INTERNAL_SERVER_ERROR.getStatusCode());
}
mockZooKeeperGlobal.failConditional(Code.SESSIONEXPIRED, (op, path) -> {
return op == MockZooKeeper.Op.GET && path.equals("/admin/policies/my-tenant");
});
try {
response = asyncRequests(ctx -> properties.getTenantAdmin(ctx, "my-tenant"));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.INTERNAL_SERVER_ERROR.getStatusCode());
}
mockZooKeeperGlobal.failConditional(Code.SESSIONEXPIRED, (op, path) -> {
return op == MockZooKeeper.Op.GET && path.equals("/admin/policies/my-tenant");
});
try {
response = asyncRequests(ctx -> properties.updateTenant(ctx, "my-tenant", newPropertyAdmin));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.INTERNAL_SERVER_ERROR.getStatusCode());
}
mockZooKeeperGlobal.failConditional(Code.SESSIONEXPIRED, (op, path) -> {
return op == MockZooKeeper.Op.CREATE && path.equals("/admin/policies/test");
});
try {
response = asyncRequests(ctx -> properties.createTenant(ctx, "test", tenantInfo));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.INTERNAL_SERVER_ERROR.getStatusCode());
}
mockZooKeeperGlobal.failConditional(Code.SESSIONEXPIRED, (op, path) -> {
return op == MockZooKeeper.Op.GET_CHILDREN && path.equals("/admin/policies/test-property");
});
try {
cache.invalidateAll();
store.invalidateAll();
response = asyncRequests(ctx -> properties.deleteTenant(ctx, "test-property", false));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.INTERNAL_SERVER_ERROR.getStatusCode());
}
response = asyncRequests(ctx -> properties.createTenant(ctx, "error-property", tenantInfo));
mockZooKeeperGlobal.failConditional(Code.SESSIONEXPIRED, (op, path) -> {
return op == MockZooKeeper.Op.DELETE && path.equals("/admin/policies/error-property");
});
try {
response = asyncRequests(ctx -> properties.deleteTenant(ctx, "error-property", false));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.INTERNAL_SERVER_ERROR.getStatusCode());
}
response = asyncRequests(ctx -> properties.deleteTenant(ctx, "test-property", false));
response = asyncRequests(ctx -> properties.deleteTenant(ctx, "error-property", false));
response = Lists.newArrayList();
response = asyncRequests(ctx -> properties.getTenants(ctx));
assertEquals(response, Lists.newArrayList());
// Create a namespace to test deleting a non-empty property
TenantInfoImpl newPropertyAdmin2 = TenantInfoImpl.builder().adminRoles(Sets.newHashSet("role1", "other-role")).allowedClusters(Sets.newHashSet("use")).build();
response = asyncRequests(ctx -> properties.createTenant(ctx, "my-tenant", newPropertyAdmin2));
response = asyncRequests(ctx -> namespaces.createNamespace(ctx, "my-tenant", "use", "my-namespace", BundlesData.builder().build()));
try {
response = asyncRequests(ctx -> properties.deleteTenant(ctx, "my-tenant", false));
fail("should have failed");
} catch (RestException e) {
// Ok
}
// Check name validation
try {
response = asyncRequests(ctx -> properties.createTenant(ctx, "test&", tenantInfo));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.PRECONDITION_FAILED.getStatusCode());
}
// Check tenantInfo is null
try {
response = asyncRequests(ctx -> properties.createTenant(ctx, "tenant-config-is-null", null));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.PRECONDITION_FAILED.getStatusCode());
}
// Check tenantInfo with empty cluster
String blankCluster = "";
Set<String> blankClusters = Sets.newHashSet(blankCluster);
TenantInfoImpl tenantWithEmptyCluster = TenantInfoImpl.builder().adminRoles(Sets.newHashSet("role1", "role2")).allowedClusters(blankClusters).build();
try {
response = asyncRequests(ctx -> properties.createTenant(ctx, "tenant-config-is-empty", tenantWithEmptyCluster));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.PRECONDITION_FAILED.getStatusCode());
}
// Check tenantInfo contains empty cluster
Set<String> containBlankClusters = Sets.newHashSet(blankCluster);
containBlankClusters.add(configClusterName);
TenantInfoImpl tenantContainEmptyCluster = TenantInfoImpl.builder().adminRoles(Sets.newHashSet()).allowedClusters(containBlankClusters).build();
try {
response = asyncRequests(ctx -> properties.createTenant(ctx, "tenant-config-contain-empty", tenantContainEmptyCluster));
fail("should have failed");
} catch (RestException e) {
assertEquals(e.getResponse().getStatus(), Status.PRECONDITION_FAILED.getStatusCode());
}
AsyncResponse response2 = mock(AsyncResponse.class);
namespaces.deleteNamespace(response2, "my-tenant", "use", "my-namespace", false, false);
ArgumentCaptor<Response> captor = ArgumentCaptor.forClass(Response.class);
verify(response2, timeout(5000).times(1)).resume(captor.capture());
assertEquals(captor.getValue().getStatus(), Status.NO_CONTENT.getStatusCode());
response = asyncRequests(ctx -> properties.deleteTenant(ctx, "my-tenant", false));
}
use of org.apache.pulsar.broker.admin.v1.Properties in project Lucee by lucee.
the class GetApplicationSettings method call.
public static Struct call(PageContext pc, boolean suppressFunctions) {
ApplicationContext ac = pc.getApplicationContext();
Component cfc = null;
if (ac instanceof ModernApplicationContext)
cfc = ((ModernApplicationContext) ac).getComponent();
Struct sct = new StructImpl();
sct.setEL("applicationTimeout", ac.getApplicationTimeout());
sct.setEL("clientManagement", Caster.toBoolean(ac.isSetClientManagement()));
sct.setEL("clientStorage", ac.getClientstorage());
sct.setEL("sessionStorage", ac.getSessionstorage());
sct.setEL("customTagPaths", toArray(ac.getCustomTagMappings()));
sct.setEL("loginStorage", AppListenerUtil.translateLoginStorage(ac.getLoginStorage()));
sct.setEL(KeyConstants._mappings, toStruct(ac.getMappings()));
sct.setEL(KeyConstants._name, ac.getName());
sct.setEL("scriptProtect", AppListenerUtil.translateScriptProtect(ac.getScriptProtect()));
sct.setEL("secureJson", Caster.toBoolean(ac.getSecureJson()));
sct.setEL("typeChecking", Caster.toBoolean(ac.getTypeChecking()));
sct.setEL("secureJsonPrefix", ac.getSecureJsonPrefix());
sct.setEL("sessionManagement", Caster.toBoolean(ac.isSetSessionManagement()));
sct.setEL("sessionTimeout", ac.getSessionTimeout());
sct.setEL("clientTimeout", ac.getClientTimeout());
sct.setEL("setClientCookies", Caster.toBoolean(ac.isSetClientCookies()));
sct.setEL("setDomainCookies", Caster.toBoolean(ac.isSetDomainCookies()));
sct.setEL(KeyConstants._name, ac.getName());
sct.setEL("localMode", ac.getLocalMode() == Undefined.MODE_LOCAL_OR_ARGUMENTS_ALWAYS ? Boolean.TRUE : Boolean.FALSE);
sct.setEL(KeyConstants._locale, LocaleFactory.toString(pc.getLocale()));
sct.setEL(KeyConstants._timezone, TimeZoneUtil.toString(pc.getTimeZone()));
// scope cascading
sct.setEL("scopeCascading", ConfigWebUtil.toScopeCascading(ac.getScopeCascading(), null));
if (ac.getScopeCascading() != Config.SCOPE_SMALL) {
sct.setEL("searchImplicitScopes", ac.getScopeCascading() == Config.SCOPE_STANDARD);
}
Struct cs = new StructImpl();
cs.setEL("web", pc.getWebCharset().name());
cs.setEL("resource", ((PageContextImpl) pc).getResourceCharset().name());
sct.setEL("charset", cs);
sct.setEL("sessionType", AppListenerUtil.toSessionType(((PageContextImpl) pc).getSessionType(), "application"));
// TODO impl
sct.setEL("serverSideFormValidation", Boolean.FALSE);
sct.setEL("clientCluster", Caster.toBoolean(ac.getClientCluster()));
sct.setEL("sessionCluster", Caster.toBoolean(ac.getSessionCluster()));
sct.setEL("invokeImplicitAccessor", Caster.toBoolean(ac.getTriggerComponentDataMember()));
sct.setEL("triggerDataMember", Caster.toBoolean(ac.getTriggerComponentDataMember()));
sct.setEL("sameformfieldsasarray", Caster.toBoolean(ac.getSameFieldAsArray(Scope.SCOPE_FORM)));
sct.setEL("sameurlfieldsasarray", Caster.toBoolean(ac.getSameFieldAsArray(Scope.SCOPE_URL)));
Object ds = ac.getDefDataSource();
if (ds instanceof DataSource)
ds = _call((DataSource) ds);
else
ds = Caster.toString(ds, null);
sct.setEL(KeyConstants._datasource, ds);
sct.setEL("defaultDatasource", ds);
Resource src = ac.getSource();
if (src != null)
sct.setEL(KeyConstants._source, src.getAbsolutePath());
// orm
if (ac.isORMEnabled()) {
ORMConfiguration conf = ac.getORMConfiguration();
if (conf != null)
sct.setEL(KeyConstants._orm, conf.toStruct());
}
// s3
Properties props = ac.getS3();
if (props != null) {
sct.setEL(KeyConstants._s3, props.toStruct());
}
// ws settings
{
Struct wssettings = new StructImpl();
wssettings.put(KeyConstants._type, AppListenerUtil.toWSType(ac.getWSType(), "Axis1"));
sct.setEL("wssettings", wssettings);
}
// datasources
Struct _sources = new StructImpl();
sct.setEL(KeyConstants._datasources, _sources);
DataSource[] sources = ac.getDataSources();
if (!ArrayUtil.isEmpty(sources)) {
for (int i = 0; i < sources.length; i++) {
_sources.setEL(KeyImpl.init(sources[i].getName()), _call(sources[i]));
}
}
// logs
Struct _logs = new StructImpl();
sct.setEL("logs", _logs);
if (ac instanceof ApplicationContextSupport) {
ApplicationContextSupport acs = (ApplicationContextSupport) ac;
Iterator<Key> it = acs.getLogNames().iterator();
Key name;
while (it.hasNext()) {
name = it.next();
_logs.setEL(name, acs.getLogMetaData(name.getString()));
}
}
// mails
Array _mails = new ArrayImpl();
sct.setEL("mails", _mails);
if (ac instanceof ApplicationContextSupport) {
ApplicationContextSupport acs = (ApplicationContextSupport) ac;
Server[] servers = acs.getMailServers();
Struct s;
Server srv;
if (servers != null) {
for (int i = 0; i < servers.length; i++) {
srv = servers[i];
s = new StructImpl();
_mails.appendEL(s);
s.setEL(KeyConstants._host, srv.getHostName());
s.setEL(KeyConstants._port, srv.getPort());
if (!StringUtil.isEmpty(srv.getUsername()))
s.setEL(KeyConstants._username, srv.getUsername());
if (!StringUtil.isEmpty(srv.getPassword()))
s.setEL(KeyConstants._password, srv.getPassword());
s.setEL(KeyConstants._readonly, srv.isReadOnly());
s.setEL("ssl", srv.isSSL());
s.setEL("tls", srv.isTLS());
if (srv instanceof ServerImpl) {
ServerImpl srvi = (ServerImpl) srv;
s.setEL("lifeTimespan", TimeSpanImpl.fromMillis(srvi.getLifeTimeSpan()));
s.setEL("idleTimespan", TimeSpanImpl.fromMillis(srvi.getIdleTimeSpan()));
}
}
}
}
// tag
Map<Key, Map<Collection.Key, Object>> tags = ac.getTagAttributeDefaultValues(pc);
if (tags != null) {
Struct tag = new StructImpl();
Iterator<Entry<Key, Map<Collection.Key, Object>>> it = tags.entrySet().iterator();
Entry<Collection.Key, Map<Collection.Key, Object>> e;
Iterator<Entry<Collection.Key, Object>> iit;
Entry<Collection.Key, Object> ee;
Struct tmp;
// TagLib lib = ((ConfigImpl)pc.getConfig()).getCoreTagLib();
while (it.hasNext()) {
e = it.next();
iit = e.getValue().entrySet().iterator();
tmp = new StructImpl();
while (iit.hasNext()) {
ee = iit.next();
// lib.getTagByClassName(ee.getKey());
tmp.setEL(ee.getKey(), ee.getValue());
}
tag.setEL(e.getKey(), tmp);
}
sct.setEL(KeyConstants._tag, tag);
}
// cache
String fun = ac.getDefaultCacheName(Config.CACHE_TYPE_FUNCTION);
String obj = ac.getDefaultCacheName(Config.CACHE_TYPE_OBJECT);
String qry = ac.getDefaultCacheName(Config.CACHE_TYPE_QUERY);
String res = ac.getDefaultCacheName(Config.CACHE_TYPE_RESOURCE);
String tmp = ac.getDefaultCacheName(Config.CACHE_TYPE_TEMPLATE);
String inc = ac.getDefaultCacheName(Config.CACHE_TYPE_INCLUDE);
String htt = ac.getDefaultCacheName(Config.CACHE_TYPE_HTTP);
String fil = ac.getDefaultCacheName(Config.CACHE_TYPE_FILE);
String wse = ac.getDefaultCacheName(Config.CACHE_TYPE_WEBSERVICE);
// cache connections
Struct conns = new StructImpl();
if (ac instanceof ApplicationContextSupport) {
ApplicationContextSupport acs = (ApplicationContextSupport) ac;
Key[] names = acs.getCacheConnectionNames();
for (Key name : names) {
CacheConnection data = acs.getCacheConnection(name.getString(), null);
Struct _sct = new StructImpl();
conns.setEL(name, _sct);
_sct.setEL(KeyConstants._custom, data.getCustom());
_sct.setEL(KeyConstants._storage, data.isStorage());
ClassDefinition cd = data.getClassDefinition();
if (cd != null) {
_sct.setEL(KeyConstants._class, cd.getClassName());
if (!StringUtil.isEmpty(cd.getName()))
_sct.setEL(KeyConstants._bundleName, cd.getClassName());
if (cd.getVersion() != null)
_sct.setEL(KeyConstants._bundleVersion, cd.getVersionAsString());
}
}
}
if (!conns.isEmpty() || fun != null || obj != null || qry != null || res != null || tmp != null || inc != null || htt != null || fil != null || wse != null) {
Struct cache = new StructImpl();
sct.setEL(KeyConstants._cache, cache);
if (fun != null)
cache.setEL(KeyConstants._function, fun);
if (obj != null)
cache.setEL(KeyConstants._object, obj);
if (qry != null)
cache.setEL(KeyConstants._query, qry);
if (res != null)
cache.setEL(KeyConstants._resource, res);
if (tmp != null)
cache.setEL(KeyConstants._template, tmp);
if (inc != null)
cache.setEL(KeyConstants._include, inc);
if (htt != null)
cache.setEL(KeyConstants._http, htt);
if (fil != null)
cache.setEL(KeyConstants._file, fil);
if (wse != null)
cache.setEL(KeyConstants._webservice, wse);
if (conns != null)
cache.setEL(KeyConstants._connections, conns);
}
// java settings
JavaSettings js = ac.getJavaSettings();
StructImpl jsSct = new StructImpl();
jsSct.put("loadCFMLClassPath", js.loadCFMLClassPath());
jsSct.put("reloadOnChange", js.reloadOnChange());
jsSct.put("watchInterval", new Double(js.watchInterval()));
jsSct.put("watchExtensions", ListUtil.arrayToList(js.watchedExtensions(), ","));
Resource[] reses = js.getResources();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < reses.length; i++) {
if (i > 0)
sb.append(',');
sb.append(reses[i].getAbsolutePath());
}
jsSct.put("loadCFMLClassPath", sb.toString());
sct.put("javaSettings", jsSct);
if (cfc != null) {
sct.setEL(KeyConstants._component, cfc.getPageSource().getDisplayPath());
try {
ComponentSpecificAccess cw = ComponentSpecificAccess.toComponentSpecificAccess(Component.ACCESS_PRIVATE, cfc);
Iterator<Key> it = cw.keyIterator();
Collection.Key key;
Object value;
while (it.hasNext()) {
key = it.next();
value = cw.get(key);
if (suppressFunctions && value instanceof UDF)
continue;
if (!sct.containsKey(key))
sct.setEL(key, value);
}
} catch (PageException e) {
SystemOut.printDate(e);
}
}
return sct;
}
use of org.apache.pulsar.broker.admin.v1.Properties in project syndesis-qe by syndesisio.
the class AtlasMapperGenerator method getAtlasMappingStep.
public Step getAtlasMappingStep(StepDefinition mapping, List<StepDefinition> precedingSteps, StepDefinition followingStep) {
processPrecedingSteps(precedingSteps);
processFolowingStep(followingStep);
List<DataMapperStepDefinition> mappings = mapping.getDataMapperDefinition().get().getDataMapperStepDefinition();
AtlasMapping atlasMapping = new AtlasMapping();
atlasMapping.setMappings(new Mappings());
for (DataSource s : processSources(precedingSteps)) {
atlasMapping.getDataSource().add(s);
}
atlasMapping.setName("REST." + UUID.randomUUID().toString());
atlasMapping.setLookupTables(new LookupTables());
atlasMapping.setProperties(new Properties());
atlasMapping.getDataSource().add(processTarget(followingStep));
atlasMapping.getMappings().getMapping().addAll(generateBaseMappings(mappings, precedingSteps, followingStep));
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);
String mapperString = null;
try {
mapperString = mapper.writeValueAsString(atlasMapping);
log.debug(mapperString);
} catch (JsonProcessingException e) {
log.error("error: {}" + e);
}
final Step mapperStep = new Step.Builder().stepKind(StepKind.mapper).configuredProperties(TestUtils.map("atlasmapping", mapperString)).action(getMapperStepAction(followingStep.getConnectorDescriptor().get())).id(UUID.randomUUID().toString()).build();
return mapperStep;
}
use of org.apache.pulsar.broker.admin.v1.Properties in project atlasmap by atlasmap.
the class DefaultAtlasFieldActionService method detectFieldActionParameters.
protected Properties detectFieldActionParameters(String actionClassName) throws ClassNotFoundException {
Class<?> actionClazz = Class.forName(actionClassName);
Properties props = null;
for (Method method : actionClazz.getMethods()) {
// Find setters to avoid the get / is confusion
if (method.getParameterCount() == 1 && method.getName().startsWith("set")) {
// We have a parameter
if (props == null) {
props = new Properties();
}
Property prop = null;
for (Parameter param : method.getParameters()) {
prop = new Property();
prop.setName(camelize(method.getName().substring("set".length())));
prop.setFieldType(getConversionService().fieldTypeFromClass(param.getType()));
props.getProperty().add(prop);
}
}
}
return props;
}
Aggregations