⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventproviderimpl.java.svn-base

📁 portal越来越流行了
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
					if (isEventSupported(processingEvents, eventName, portletAppDD.getDefaultNamespace())) {                        if (portletDD.getPortletName().equals(portlet.getPortletName())) {                                                          resultSet.add(portlet.getId());                        }					} else {						if (processingEvents != null) {							for (EventDefinitionReference ref : processingEvents) {							    QName name = ref.getQualifiedName(portletAppDD.getDefaultNamespace());							    if (name == null)							    {							        continue;							    }								// add also grouped portlets, that ends with "."								if (name.toString().endsWith(".")										&& eventName.toString().startsWith(name.toString())										&& portletDD.getPortletName().equals(portlet.getPortletName())) {									resultSet.add(portlet.getId());								}								// also look for alias names:								if (aliases != null) {									for (QName alias : aliases) {										if (alias.toString().equals(name.toString())												&& portletDD.getPortletName().equals(portlet.getPortletName())) {											resultSet.add(portlet.getId());										}									}								}								// also look for default namespaced events								if (name.getNamespaceURI() == null || name.getNamespaceURI().equals("")) {									String defaultNamespace = portletAppDD.getDefaultNamespace();									QName qname = new QName(defaultNamespace, name.getLocalPart());									if (eventName.toString().equals(qname.toString())											&& portletDD.getPortletName().equals(portlet.getPortletName())) {										resultSet.add(portlet.getId());									}								}							}						}					}				}			} catch (PortletContainerException e) {				LOG.warn(e);			}		}		// make list		for (String name : resultSet) {			resultList.add(name);		}		return resultList;	}		private boolean isEventSupported(List<? extends EventDefinitionReference> supportedEvents, QName eventName, String defaultNamespace)	{	    if (supportedEvents != null)	    {	        for (EventDefinitionReference ref : supportedEvents)	        {	            QName refQName = ref.getQualifiedName(defaultNamespace);	            if (refQName != null && refQName.equals(eventName))	            {	                return true;	            }	        }	    }	    return false;	}	private List<QName> getAllAliases(QName eventName, PortletApplicationDefinition portletAppDD) {		if (portletAppDD.getEventDefinitions() != null) {						for (EventDefinition def : portletAppDD.getEventDefinitions()){			    QName defQName = def.getQualifiedName(portletAppDD.getDefaultNamespace());				if (defQName != null && defQName.equals(eventName)){						return def.getAliases();				}			}		}		return null;	}	/**	 * gets the right PortletWindowThread or makes a new one, if theres none	 * 	 * @param eventContainer	 * @param config	 * @param window	 * @return	 */	private PortletWindowThread getPortletWindowThread(			EventContainer eventContainer, PortletWindowConfig config,			PortletWindow window, ServletContext containerServletContext) {		if (portletContextService == null) {			portletContextService = container.getOptionalContainerServices().getPortletContextService();		}		if (portletContextService != null){			String windowID = window.getId().getStringId();			PortletWindowThread portletWindowThread = portletWindowThreads					.get(windowID);			if (portletWindowThread == null) {				portletWindowThread = new PortletWindowThread(threadGroup, config						.getId(), this, window, eventContainer,portletContextService);				portletWindowThreads.put(windowID, portletWindowThread);			} else {				// a thread could be started twice, so we make a new one,				// after the old thread stopped				// try {				try {					portletWindowThread.join();				} catch (InterruptedException e) {					LOG.warn(e);				}				portletWindowThreads.remove(portletWindowThread);				portletWindowThread = new PortletWindowThread(threadGroup, config						.getId(), this, window, eventContainer,portletContextService);				portletWindowThreads.put(windowID, portletWindowThread);			}			return portletWindowThread;		}		else 			return null;	}	/**	 * Wait for event execution.	 */	private void waitForEventExecution() {		long counter = 0;		while (threadGroup.activeCount() > 0) {			try {				counter = +WAITING_CYCLE;				if (counter > 500) {					threadGroup.stop();				}				Thread.sleep(WAITING_CYCLE);			} catch (InterruptedException e) {				LOG.warn(e);			}		}	}	/**	 * gets an arbitrary event, which is not processed yet.	 * 	 * @return the arbitrary event	 */	private Event getArbitraryEvent() {		Event eActual = null;		for (Event event : this.savedEvents.getEvents()) {			if (this.savedEvents.isNotProcessed(event)) {				eActual = event;			}		}		return eActual;	}	/**	 * 	 */	private Collection<PortletWindowConfig> getAllPortlets(			DriverConfiguration driverConfig) {		Collection<PortletWindowConfig> portlets = new ArrayList<PortletWindowConfig>();		ServletContext servletContext = PortalRequestContext			.getContext(request).getServletContext();//		if (portletRegistry == null) {//			portletRegistry = ((PortletContainer) servletContext//					.getAttribute(AttributeKeys.PORTLET_CONTAINER))//					.getOptionalContainerServices().getPortletRegistryService();//		}//		if (portletRegistry != null){			Collection pages = driverConfig.getPages();			if (pages != null){				Iterator iPages = pages.iterator();				while(iPages.hasNext()){					PageConfig pageConfig = (PageConfig) iPages.next();					Collection portletIDs = pageConfig.getPortletIds();					if (portletIDs != null){						Iterator iPortletIDs = portletIDs.iterator();						while(iPortletIDs.hasNext()){							portlets.add(PortletWindowConfig.fromId(iPortletIDs.next().toString()));						}					}				}			}			//			PortletWindowConfig.fromId(((PageConfig)driverConfig.getPages().iterator().next()).getPortletIds().iterator().next().toString());//			Iterator i = portletRegistry.getRegisteredPortletApplications();//			while(i.hasNext()){//				portlets.addAll(((PortletAppDD)portletRegistry.getRegisteredPortletApplications().next()).getPortlets());//			}//		}		// Collection<PortletApplicationConfig> apps =		// driverConfig.getPortletApplications();				// for (PortletApplicationConfig app : apps) {		// portlets.addAll(app.getPortlets());		// }		return portlets;	}	/**	 * @return the request	 */	public HttpServletRequest getRequest() {		return request;	}	/**	 * @return the response	 */	public HttpServletResponse getResponse() {		return response;	}	/**	 * Gets the saved events.	 * 	 * @return the saved events	 */	public EventList getSavedEvents() {		return savedEvents;	}	private boolean isDeclaredAsPublishingEvent(QName qname) {		ServletContext servletContext = PortalRequestContext				.getContext(request).getServletContext();		String applicationId = PortletWindowConfig				.parseContextPath(portletWindow.getId().getStringId());        String applicationName = applicationId;        if (applicationId.length() >0 )        {            applicationName = applicationId.substring(1);        }		String portletName = PortletWindowConfig				.parsePortletName(portletWindow.getId().getStringId());		if (portletRegistry == null) {			portletRegistry = ((PortletContainer) servletContext					.getAttribute(AttributeKeys.PORTLET_CONTAINER))					.getOptionalContainerServices().getPortletRegistryService();		}		List<? extends EventDefinitionReference> events = null;		try {			events = portletRegistry.getPortlet(applicationName,					portletName).getSupportedPublishingEvents();		} catch (PortletContainerException e1) {			e1.printStackTrace();		}		if (events != null) {            String defaultNamespace = portletWindow.getPortletEntity().getPortletDefinition().getApplication().getDefaultNamespace();            for (EventDefinitionReference ref : events) {                QName name = ref.getQualifiedName(defaultNamespace);                if (name == null)                {                    continue;                }                if (qname.equals(name)) {                    return true;                }            }		}		return false;	}	private boolean isValueInstanceOfDefinedClass(QName qname,			Serializable value) {        PortletApplicationDefinition app = portletWindow.getPortletEntity().getPortletDefinition().getApplication();        List<? extends EventDefinition> events = app.getEventDefinitions();        if (events != null) {                                    for (EventDefinition def : events){                if (def.getQName() != null){                    if (def.getQName().equals(qname))                        return value.getClass().getName().equals(                                def.getValueType());                }                else{                    QName tmp = new QName(app.getDefaultNamespace(),def.getName());                    if (tmp.equals(qname))                        return value.getClass().getName().equals(                                def.getValueType());                }            }        }		// event not declared		return true;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -