@Override public IndexerPostProcessor addingService( ServiceReference<IndexerPostProcessor> serviceReference) { Registry registry = RegistryUtil.getRegistry(); IndexerPostProcessor indexerPostProcessor = registry.getService(serviceReference); List<String> indexerClassNames = StringPlus.asList(serviceReference.getProperty("indexer.class.name")); for (String indexerClassName : indexerClassNames) { Indexer indexer = IndexerRegistryUtil.getIndexer(indexerClassName); if (indexer == null) { _log.error("No indexer for " + indexerClassName + " was found"); continue; } indexer.registerIndexerPostProcessor(indexerPostProcessor); } return indexerPostProcessor; }
@Test public void testMBeanBySuffix() throws Exception { Registry registry = RegistryUtil.getRegistry(); MBeanServer mBeanServer = registry.getService(MBeanServer.class); ObjectName objectName = new ObjectName(JMXWhiteboardByInterfaceMBean.OBJECT_NAME); MBeanInfo mBeanInfo = mBeanServer.getMBeanInfo(objectName); Assert.assertNotNull(mBeanInfo); MBeanOperationInfo[] operations = mBeanInfo.getOperations(); MBeanOperationInfo mBeanOperationInfo = operations[0]; MBeanParameterInfo[] signatureParameters = mBeanOperationInfo.getSignature(); String[] sinature = new String[signatureParameters.length]; for (int i = 0; i < signatureParameters.length; i++) { MBeanParameterInfo mBeanParameterInfo = signatureParameters[i]; sinature[i] = mBeanParameterInfo.getType(); } Object result = mBeanServer.invoke( objectName, mBeanOperationInfo.getName(), new Object[] {"Hello!"}, sinature); Assert.assertEquals("{Hello!}", result); }
@Override public SchedulerEntry addingService(ServiceReference<SchedulerEntry> serviceReference) { Registry registry = RegistryUtil.getRegistry(); SchedulerEntry schedulerEntry = registry.getService(serviceReference); StorageType storageType = StorageType.MEMORY_CLUSTERED; if (schedulerEntry instanceof StorageTypeAware) { StorageTypeAware storageTypeAware = (StorageTypeAware) schedulerEntry; storageType = storageTypeAware.getStorageType(); } addTrigger(schedulerEntry, serviceReference); String portletId = (String) serviceReference.getProperty("javax.portlet.name"); try { SchedulerEngineHelperUtil.schedule(schedulerEntry, storageType, portletId, 0); return schedulerEntry; } catch (SchedulerException e) { _log.error(e, e); } return null; }
@Override public void map( ServiceReference<ModelAdapterBuilder> serviceReference, Emitter<String> emitter) { Registry registry = RegistryUtil.getRegistry(); ModelAdapterBuilder modelAdapterBuilder = registry.getService(serviceReference); Type genericInterface = ReflectionUtil.getGenericInterface( modelAdapterBuilder, ModelAdapterBuilder.class); if ((genericInterface == null) || !(genericInterface instanceof ParameterizedType)) { return; } ParameterizedType parameterizedType = (ParameterizedType) genericInterface; Type[] typeArguments = parameterizedType.getActualTypeArguments(); if (ArrayUtil.isEmpty(typeArguments) || (typeArguments.length != 2)) { return; } try { Class adapteeModelClass = (Class) typeArguments[0]; Class adaptedModelClass = (Class) typeArguments[1]; emitter.emit(getKey(adapteeModelClass, adaptedModelClass)); } catch (ClassCastException cce) { return; } }
@Override public ResourceBundle addingService(ServiceReference<ResourceBundle> serviceReference) { Registry registry = RegistryUtil.getRegistry(); ResourceBundle resourceBundle = registry.getService(serviceReference); String languageId = GetterUtil.getString(serviceReference.getProperty("language.id"), StringPool.BLANK); Map<String, String> languageMap = new HashMap<>(); Locale locale = null; if (Validator.isNotNull(languageId)) { locale = LocaleUtil.fromLanguageId(languageId, true); } else { locale = new Locale(StringPool.BLANK); } Enumeration<String> keys = resourceBundle.getKeys(); while (keys.hasMoreElements()) { String key = keys.nextElement(); String value = ResourceBundleUtil.getString(resourceBundle, key); languageMap.put(key, value); } Map<String, String> oldLanguageMap = _putLanguageMap(locale, languageMap); _oldLanguageMaps.put(serviceReference, oldLanguageMap); return resourceBundle; }
@Override public void map(ServiceReference<Editor> serviceReference, Emitter<String> emitter) { Registry registry = RegistryUtil.getRegistry(); Editor editor = registry.getService(serviceReference); emitter.emit(editor.getName()); }
@Override public XStreamAlias addingService(ServiceReference<XStreamAlias> serviceReference) { Registry registry = RegistryUtil.getRegistry(); XStreamAlias xStreamAlias = registry.getService(serviceReference); _xstreamAliases.put(xStreamAlias.getClazz(), xStreamAlias.getName()); return xStreamAlias; }
@Override public Object addingService(ServiceReference<Object> serviceReference) { List<String> authTokenIgnoreActions = StringPlus.asList(serviceReference.getProperty(PropsKeys.AUTH_TOKEN_IGNORE_ACTIONS)); _portletCSRFWhitelistActions.addAll(authTokenIgnoreActions); Registry registry = RegistryUtil.getRegistry(); return registry.getService(serviceReference); }
@Override public ResourceBundle addingService(ServiceReference<ResourceBundle> serviceReference) { Registry registry = RegistryUtil.getRegistry(); ResourceBundle resourceBundle = registry.getService(serviceReference); String languageId = (String) serviceReference.getProperty("language.id"); _resourceBundles.put(languageId, resourceBundle); return resourceBundle; }
@Override public void map( ServiceReference<DLProcessor> serviceReference, Emitter<String> emitter) { Registry registry = RegistryUtil.getRegistry(); DLProcessor dlProcessor = registry.getService(serviceReference); try { emitter.emit(dlProcessor.getType()); } finally { registry.ungetService(serviceReference); } }
@Override public Object addingService(ServiceReference<Object> serviceReference) { synchronized (_serviceDependencies) { Registry registry = RegistryUtil.getRegistry(); Object service = registry.getService(serviceReference); _serviceDependency.fulfilled(serviceReference); verifyDependencies(); return service; } }
@Override public WebDAVStorage addingService(ServiceReference<WebDAVStorage> serviceReference) { Registry registry = RegistryUtil.getRegistry(); WebDAVStorage webDAVStorage = registry.getService(serviceReference); if (webDAVStorage.getToken() == null) { return null; } _storageMap.put(webDAVStorage.getToken(), webDAVStorage); return webDAVStorage; }
@Override public Indexer<?> addingService(ServiceReference<Indexer<?>> serviceReference) { Registry registry = RegistryUtil.getRegistry(); Indexer<?> indexer = registry.getService(serviceReference); Class<?> clazz = indexer.getClass(); _indexers.put(clazz.getName(), indexer); _indexers.put(indexer.getClassName(), indexer); return indexer; }
@Override public T addingService(ServiceReference<T> serviceReference) { Registry registry = RegistryUtil.getRegistry(); T displayContextFactory = registry.getService(serviceReference); DisplayContextFactoryReference<T> displayContextFactoryReference = new DisplayContextFactoryReference<>(displayContextFactory, serviceReference); _displayContextFactoryReferences.add(displayContextFactoryReference); _displayContextFactoryReferencesMap.put( displayContextFactory, displayContextFactoryReference); return displayContextFactory; }
@Override public synchronized void removedService( ServiceReference<InvokerPortletFactory> serviceReference, InvokerPortletFactory invokerPortletFactory) { Registry registry = RegistryUtil.getRegistry(); registry.ungetService(serviceReference); serviceReference = registry.getServiceReference(InvokerPortletFactory.class); if (serviceReference != null) { _invokerPortletFactory = registry.getService(serviceReference); _serviceRanking = GetterUtil.getLong(serviceReference.getProperty("service.ranking")); } }
@Override public synchronized InvokerPortletFactory addingService( ServiceReference<InvokerPortletFactory> serviceReference) { Registry registry = RegistryUtil.getRegistry(); InvokerPortletFactory invokerPortletFactory = registry.getService(serviceReference); long serviceRanking = GetterUtil.getLong(serviceReference.getProperty("service.ranking")); if ((_invokerPortletFactory == null) || (serviceRanking > _serviceRanking)) { _invokerPortletFactory = invokerPortletFactory; _serviceRanking = serviceRanking; } return invokerPortletFactory; }
@Override public AtomCollectionAdapter<?> addingService( ServiceReference<AtomCollectionAdapter<?>> serviceReference) { Registry registry = RegistryUtil.getRegistry(); AtomCollectionAdapter<?> atomCollectionAdapter = registry.getService(serviceReference); if (_atomCollectionAdapters.containsKey(atomCollectionAdapter.getCollectionName())) { if (_log.isWarnEnabled()) { _log.warn("Duplicate collection name " + atomCollectionAdapter.getCollectionName()); } return null; } _atomCollectionAdapters.put(atomCollectionAdapter.getCollectionName(), atomCollectionAdapter); return atomCollectionAdapter; }
@Override public CustomJspBag addingService(ServiceReference<CustomJspBag> serviceReference) { Registry registry = RegistryUtil.getRegistry(); CustomJspBag customJspBag = registry.getService(serviceReference); List<String> customJsps = customJspBag.getCustomJsps(); if (customJsps.isEmpty()) { getCustomJsps( customJspBag.getURLContainer(), customJspBag.getCustomJspDir(), customJspBag.getCustomJsps()); customJsps = customJspBag.getCustomJsps(); if (customJsps.isEmpty()) { return null; } } if (_log.isDebugEnabled()) { StringBundler sb = new StringBundler(customJsps.size() * 2); sb.append("Custom JSP files:\n"); for (int i = 0; i < customJsps.size(); i++) { String customJsp = customJsps.get(0); sb.append(customJsp); if ((i + 1) < customJsps.size()) { sb.append(StringPool.NEW_LINE); } } Log log = SanitizerLogWrapper.allowCRLF(_log); log.debug(sb.toString()); } String contextId = GetterUtil.getString(serviceReference.getProperty("context.id")); if (customJspBag.isCustomJspGlobal() && !_customJspBagsMap.isEmpty()) { try { verifyCustomJsps(contextId, customJspBag); } catch (DuplicateCustomJspException e) { return null; } } _customJspBagsMap.put(serviceReference, customJspBag); String contextName = GetterUtil.getString(serviceReference.getProperty("context.name")); try { initCustomJspBag(contextId, contextName, customJspBag); } catch (Exception e) { return null; } return customJspBag; }