use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.
the class ExternalContextImpl method encodeNamespace.
/**
* @see ExternalContext#encodeNamespace(String)
*/
@Override
public String encodeNamespace(String name) {
final Product RICHFACES = ProductFactory.getProductInstance(this, Product.Name.RICHFACES);
final boolean RICHFACES_DETECTED = RICHFACES.isDetected();
if (name == null) {
return portletResponse.getNamespace();
} else if (RICHFACES_DETECTED && (name.equals(ORG_RICHFACES_EXTENSION))) {
// http://issues.liferay.com/browse/FACES-1416
return name;
} else {
return portletResponse.getNamespace() + name;
}
}
use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.
the class ContextMapFactoryImpl method getUploadedFileMap.
@Override
public Map<String, List<UploadedFile>> getUploadedFileMap(PortletRequest portletRequest) {
Map<String, List<UploadedFile>> bridgeUploadedFileMap = Collections.emptyMap();
MultiPartFormData multiPartFormData = (MultiPartFormData) portletRequest.getAttribute(MULTIPART_FORM_DATA_FQCN);
if (multiPartFormData != null) {
Map<String, List<com.liferay.faces.util.model.UploadedFile>> uploadedFileMap = multiPartFormData.getUploadedFileMap();
if (uploadedFileMap != null) {
PortletSession portletSession = portletRequest.getPortletSession(true);
PortletContext portletContext = portletSession.getPortletContext();
Map<String, Object> applicationScopeMap = getApplicationScopeMap(portletContext, true);
ExternalContext externalContext = new ExternalContextProductImpl(applicationScopeMap);
ProductFactory productFactory = (ProductFactory) FactoryExtensionFinder.getFactory(externalContext, ProductFactory.class);
Product PRIMEFACES = productFactory.getProductInfo(Product.Name.PRIMEFACES);
boolean primeFacesDetected = PRIMEFACES.isDetected();
int primeFacesMajorVersion = PRIMEFACES.getMajorVersion();
bridgeUploadedFileMap = new HashMap<String, List<UploadedFile>>(uploadedFileMap.size());
Set<Map.Entry<String, List<com.liferay.faces.util.model.UploadedFile>>> entrySet = uploadedFileMap.entrySet();
for (Map.Entry<String, List<com.liferay.faces.util.model.UploadedFile>> mapEntry : entrySet) {
List<com.liferay.faces.util.model.UploadedFile> uploadedFileList = mapEntry.getValue();
if (uploadedFileList != null) {
List<UploadedFile> bridgeUploadedFileList = new ArrayList<UploadedFile>(uploadedFileList.size());
for (com.liferay.faces.util.model.UploadedFile uploadedFile : uploadedFileList) {
bridgeUploadedFileList.add(new UploadedFileBridgeImpl(uploadedFile, primeFacesDetected, primeFacesMajorVersion));
}
bridgeUploadedFileMap.put(mapEntry.getKey(), bridgeUploadedFileList);
}
}
}
}
return bridgeUploadedFileMap;
}
use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.
the class ContextMapFactoryImpl method getFacesRequestParameterMap.
protected FacesRequestParameterMap getFacesRequestParameterMap(PortletRequest portletRequest, String responseNamespace, PortletConfig portletConfig, BridgeRequestScope bridgeRequestScope, String defaultRenderKitId, String facesViewQueryString) {
FacesRequestParameterMap facesRequestParameterMap = null;
Map<String, String> facesViewParameterMap = getFacesViewParameterMap(facesViewQueryString);
PortalContext portalContext = portletRequest.getPortalContext();
boolean strictParameterNamespacingSupported = FacesRuntimeUtil.isStrictParameterNamespacingSupported(portalContext);
PortletContext portletContext = portletConfig.getPortletContext();
boolean namespaceViewState = strictParameterNamespacingSupported && FacesRuntimeUtil.isNamespaceViewState(strictParameterNamespacingSupported, portletContext);
if (portletRequest instanceof ClientDataRequest) {
ClientDataRequest clientDataRequest = (ClientDataRequest) portletRequest;
String contentType = clientDataRequest.getContentType();
// Note: af:inputFile (ADF Faces) ace:fileEntry (ICEfaces) rely on their own mechanisms for handling file
// uploads.
ProductFactory productFactory = (ProductFactory) BridgeFactoryFinder.getFactory(portletContext, ProductFactory.class);
Product ADF_FACES_RICH_CLIENT = productFactory.getProductInfo(Product.Name.ADF_FACES);
Product ICEFACES = productFactory.getProductInfo(Product.Name.ICEFACES);
if (!ADF_FACES_RICH_CLIENT.isDetected() && !ICEFACES.isDetected() && (contentType != null) && contentType.toLowerCase().startsWith("multipart/")) {
MultiPartFormData multiPartFormData = (MultiPartFormData) portletRequest.getAttribute(MULTIPART_FORM_DATA_FQCN);
if (multiPartFormData == null) {
facesRequestParameterMap = new FacesRequestParameterMapImpl(responseNamespace, bridgeRequestScope, facesViewParameterMap, defaultRenderKitId, getSeparatorChar(), strictParameterNamespacingSupported, namespaceViewState);
MultiPartFormDataProcessor multiPartFormDataProcessor = new MultiPartFormDataProcessorImpl();
Map<String, List<com.liferay.faces.util.model.UploadedFile>> uploadedFileMap = multiPartFormDataProcessor.process(clientDataRequest, portletConfig, facesRequestParameterMap);
multiPartFormData = new MultiPartFormDataImpl(facesRequestParameterMap, uploadedFileMap);
// Save the multipart/form-data in a request attribute so that it can be referenced later-on in the
// JSF lifecycle by file upload component renderers.
portletRequest.setAttribute(MULTIPART_FORM_DATA_FQCN, multiPartFormData);
} else {
facesRequestParameterMap = multiPartFormData.getFacesRequestParameterMap();
}
}
}
if (facesRequestParameterMap == null) {
Map<String, String[]> parameterMap = portletRequest.getParameterMap();
facesRequestParameterMap = new FacesRequestParameterMapImpl(parameterMap, responseNamespace, bridgeRequestScope, facesViewParameterMap, defaultRenderKitId, getSeparatorChar(), strictParameterNamespacingSupported, namespaceViewState);
}
return facesRequestParameterMap;
}
use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.
the class PreDestroyInvokerFactoryImpl method getPreDestroyInvoker.
@Override
public PreDestroyInvoker getPreDestroyInvoker(PortletContext portletContext) {
ProductFactory productFactory = (ProductFactory) BridgeFactoryFinder.getFactory(portletContext, ProductFactory.class);
final Product MOJARRA = productFactory.getProductInfo(Product.Name.MOJARRA);
if (MOJARRA.isDetected()) {
return new PreDestroyInvokerMojarraImpl(portletContext);
} else {
return new PreDestroyInvokerImpl();
}
}
use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.
the class ExternalContextCompat_2_0_Impl method isICEfacesLegacyMode.
protected boolean isICEfacesLegacyMode(ClientDataRequest clientDataRequest) {
if (iceFacesLegacyMode == null) {
boolean iceFacesLegacyMode = false;
String requestContentType = clientDataRequest.getContentType();
if ((requestContentType != null) && requestContentType.toLowerCase().startsWith("multipart/")) {
final Product ICEFACES = ProductFactory.getProductInstance(this, Product.Name.ICEFACES);
if (ICEFACES.isDetected() && ((ICEFACES.getMajorVersion() == 2) || ((ICEFACES.getMajorVersion() == 3) && (ICEFACES.getMinorVersion() == 0)))) {
iceFacesLegacyMode = true;
}
}
this.iceFacesLegacyMode = iceFacesLegacyMode;
}
return iceFacesLegacyMode;
}
Aggregations