Wednesday, June 26, 2013

Jsf Richfaces3.3.3 final Picklist example

JSP Code





Move control buttons without labels
<rich:pickList id="pickListId"  valueChangeListener="#{rolePermissionsBean.selectionChanged}" label="source List" title="pickList"
            immediate="true"
            value="#{rolePermissionsBean.selectedModuleList}" showButtonsLabel="false" listsHeight="150; width:239px;">
            <a4j:support event="picklistChanged" ajaxSingle="true" actionListener="#{rolePermissionsBean.listChanged}" >
                </a4j:support>
                <f:selectItems value="#{rolePermissionsBean.sourceModuleList}"/>
</rich:pickList>

Description Here,
1 : <rich:pickList id="pickListId"  valueChangeListener="#{rolePermissionsBean.selectionChanged}"
    value change listener will called when there is change in the pick list in left and right panel.

2 : value="#{rolePermissionsBean.selectedModuleList}" this indicate the pre selection of data in right panel

3 : <f:selectItems value="#{rolePermissionsBean.sourceModuleList}"/>  this indicates the Source list at left panel which can be move to right side .

4:   <a4j:support event="picklistChanged" ajaxSingle="true" actionListener="#{rolePermissionsBean.listChanged}" >  event to be called on selection.

5: Most important the Source and target (left and right)should be single list u should not define two list.

Backing Bean


    private List<Object> selectedModuleList;
    private List<ModuleVO> masterModuleList;
    private List<RoleVO> masterRoleList;
    private Map<Integer, ModuleVO>  masterServiceMap;
    private Map<Integer, RoleVO>  masterRoleMap;
    private AdminManager adminManager;
    private List<SelectItem> sourceModuleList;
    private int roleId = 0;
    private List<SelectItem> roleNameList;
    private String infoMessages;
    private String infoMessageImg="display:none";
   
    /**
     * Get the infoMessages.
     *
     * @return the infoMessages
     */
    public String getInfoMessages() {
        return infoMessages;
    }

    /**
     * Set the infoMessages to infoMessages.
     *
     * @param infoMessages the infoMessages to set
     */
    public void setInfoMessages(String infoMessages) {
        this.infoMessages = infoMessages;
    }

    /**
     * Get the infoMessageImg.
     *
     * @return the infoMessageImg
     */
    public String getInfoMessageImg() {
        return infoMessageImg;
    }

    /**
     * Set the infoMessageImg to infoMessageImg.
     *
     * @param infoMessageImg the infoMessageImg to set
     */
    public void setInfoMessageImg(String infoMessageImg) {
        this.infoMessageImg = infoMessageImg;
    }
    /**
     * Get the roleNameList.
     *
     * @return the roleNameList
     */
    public List<SelectItem> getRoleNameList() {
        //initRoles();
        return roleNameList;
    }

    /**
     * Set the roleNameList to roleNameList.
     *
     * @param roleNameList the roleNameList to set
     */
    public void setRoleNameList(List<SelectItem> roleNameList) {
        this.roleNameList = roleNameList;
    }
    /**
     * Get the masterServiceMap.
     *
     * @return the masterServiceMap
     */
    public Map<Integer, ModuleVO> getMasterServiceMap() {
        return masterServiceMap;
    }

    /**
     * Set the masterServiceMap to masterServiceMap.
     *
     * @param masterServiceMap the masterServiceMap to set
     */
    public void setMasterServiceMap(Map<Integer, ModuleVO> masterServiceMap) {
        this.masterServiceMap = masterServiceMap;
    }

    /**
     * Get the masterRoleMap.
     *
     * @return the masterRoleMap
     */
    public Map<Integer, RoleVO> getMasterRoleMap() {
        return masterRoleMap;
    }

    /**
     * Set the masterRoleMap to masterRoleMap.
     *
     * @param masterRoleMap the masterRoleMap to set
     */
    public void setMasterRoleMap(Map<Integer, RoleVO> masterRoleMap) {
        this.masterRoleMap = masterRoleMap;
    }
    @PostConstruct
    public void  initSourceModule() {
        try {
            System.out.println("Start initSourceService");
            ArgumentVO argumentVO = new ArgumentVO();
            argumentVO.setAll(true);
            masterModuleList = adminManager.getModuleList(argumentVO);
            if (masterModuleList != null && masterModuleList.size() > 0) {
                masterServiceMap = new HashMap<Integer,ModuleVO>();
                sourceModuleList = new ArrayList<SelectItem>();
                for (ModuleVO modulesVO : masterModuleList) {
                    masterServiceMap.put(modulesVO.getId(), modulesVO);
                    SelectItem sItem = new SelectItem(modulesVO.getId(), modulesVO.getName());
                    sourceModuleList.add(sItem);
                }
            }
            System.out.println("End initSourceService");
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    @PostConstruct
    public void initRoles() {
        try {
            HttpSessionUtils httpSessionUtils = new HttpSessionUtils();
            int branchId = (Integer)httpSessionUtils.
            getAttribute(ApplicationConstants.USER_BRANCH_ID);
            ArgumentVO argumentVO = new ArgumentVO();
            argumentVO.setAll(false);
            //argumentVO.setBranchId(branchId);
            SelectItem selectItem = null;
            masterRoleList = adminManager.getRoleList(argumentVO);
           
            roleNameList = new ArrayList<SelectItem>();
            if(CommonUtils.isValidObject(masterRoleList)){
                masterRoleMap = new HashMap<Integer, RoleVO>();
                System.out.println("Size of roles "+masterRoleList.size());
                for (RoleVO role : masterRoleList) {
                    selectItem = new SelectItem();
                    selectItem.setLabel(""+role.getId());
                    selectItem.setValue(role.getName());
                   
                    roleNameList.add(selectItem);
                    masterRoleMap.put(role.getId(), role);
                }
            } else{
                System.out.println("No roles are exist");
            }
            System.out.println("ENd of initRoles ");
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    @PostConstruct
    public void  initTargetModules() {
        try {
            System.out.println("Role Id in initTargetModules:" + this.roleId);
            RoleVO  roleVO = masterRoleMap.get(roleId);
             if (roleVO != null && roleVO.getModuleIdList() != null
                     && roleVO.getModuleIdList().size() > 0) {
                 selectedModuleList  = new ArrayList<Object>();
                for (Integer moduleId : roleVO.getModuleIdList()) {
                    System.out.println("Selected Module :"
                            + moduleId);
                    selectedModuleList.add(moduleId);
                }
                System.out.println("selected Module List size is:>>>>>>"+selectedModuleList.size());
             } else {
                 selectedModuleList  = new ArrayList<Object>();
                 System.out.println("No data selected!");
             }
             System.out.println("End of initTargetModules");
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    private String selectedInfo;
   
     /**
     * Get the selectedInfo.
     *
     * @return the selectedInfo
     */
    public String getSelectedInfo() {
        return selectedInfo;
    }

    /**
     * Set the selectedInfo to selectedInfo.
     *
     * @param selectedInfo the selectedInfo to set
     */
    public void setSelectedInfo(String selectedInfo) {
        this.selectedInfo = selectedInfo;
    }
    public void selectionChanged(ValueChangeEvent evt){
        try {
           
            System.out.println("Calling Selection Changed Listener");
            System.out.println("New value is:"+evt.getNewValue());
            System.out.println("Old value is:"+evt.getOldValue());
            Object newObj = evt.getNewValue();
            if (newObj instanceof List) {
                System.out.println("List Object");
                List list = (List)newObj;
                if (list != null && list.size() > 0) {/*
                    System.out.println("Size of List:" + list.size());
                    System.out.println("contents :" + list);
                    for (Object object : list) {
                        System.out.println("obj : " + object);
                        System.out.println("hash code: " + object.hashCode());
                        if (object instanceof ServicesVO) {
                            ServicesVO ss= (ServicesVO)object;
                            System.out.println("Service :" + ss.getName());
                        } else if (object instanceof Integer) {
                            System.out.println("Integer vo");
                        } else if (object instanceof String){
                            String st = (String)object;
                            System.out.println("String value: "+st);
                        } else {
                            System.out.println("Not object");
                        }   
                    }
                */} else {
                    System.out.println("List is null!");
                }
            }
            } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    /**
     * Get the sourceModuleList.
     *
     * @return the sourceModuleList
     */
    public List<SelectItem> getSourceModuleList() {
        return sourceModuleList;
    }

    /**
     * Set the sourceModuleList to sourceModuleList.
     *
     * @param sourceModuleList the sourceModuleList to set
     */
    public void setSourceModuleList(List<SelectItem> sourceModuleList) {
        this.sourceModuleList = sourceModuleList;
    }
    /**
     * Get the selectedModuleList.
     *
     * @return the selectedModuleList
     */
    public List<Object> getSelectedModuleList() {
        return selectedModuleList;
    }

    /**
     * Set the selectedModuleList to selectedModuleList.
     *
     * @param selectedModuleList the selectedModuleList to set
     */
    public void setSelectedModuleList(List<Object> selectedModuleList) {
        this.selectedModuleList = selectedModuleList;
    }
    /**
     * Get the masterModuleList.
     *
     * @return the masterModuleList
     */
    public List<ModuleVO> getMasterModuleList() {
        return masterModuleList;
    }

    /**
     * Set the masterModuleList to masterModuleList.
     *
     * @param masterModuleList the masterModuleList to set
     */
    public void setMasterModuleList(List<ModuleVO> masterModuleList) {
        this.masterModuleList = masterModuleList;
    }

    /**
     * Get the masterRoleList.
     *
     * @return the masterRoleList
     */
    public List<RoleVO> getMasterRoleList() {
        return masterRoleList;
    }

    /**
     * Set the masterRoleList to masterRoleList.
     *
     * @param masterRoleList the masterRoleList to set
     */
    public void setMasterRoleList(List<RoleVO> masterRoleList) {
        this.masterRoleList = masterRoleList;
    }
    /**
     * Get the adminManager.
     *
     * @return the adminManager
     */
    public AdminManager getAdminManager() {
        return adminManager;
    }
    /**
     * Set the adminManager to adminManager.
     *
     * @param adminManager the adminManager to set
     */
    public void setAdminManager(AdminManager adminManager) {
        this.adminManager = adminManager;
    }
   
    /**
     * Method to capture the valueChange Event for counters
     * @param event
     *   An instance of <tt>javax.faces.event.ValueChangeEvent</tt>
     */
    public void valueChangeListener(javax.faces.event.ValueChangeEvent event){
        System.out.println("Inside of value change evnet interface");
        try {
            System.out.println("valueChangeListener():");
            //String counterIdStr = (String) event.getNewValue();
            int roleId = 0;
            UIComboBox comboBox = (UIComboBox)event.getComponent();
            if ( (event.getComponent().getId().equalsIgnoreCase("roleComboId")
                    )    && CommonUtils.isValidObject(comboBox.getValue()) ) {
                roleId = Integer.parseInt(getValue(roleNameList,
                                        ""+comboBox.getValue()));
            }
            System.out.println("Role ID  :  " + roleId);
            selectedModuleList = null;
            sourceModuleList = null;
            this.roleId = roleId;
            initTargetModules();
            initSourceModule();
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
    public void actionListener(ActionEvent event){
        System.out.println("Inside of action Listener event");
        try {
           
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
    public void listChanged(ActionEvent actionEvent) {
        try {
            System.out.println("List changes Listener event");
            int sid = 0;
            HtmlPickList pickList = (HtmlPickList)actionEvent.getComponent();
            if ( (actionEvent.getComponent().getId().equalsIgnoreCase("pickListId")
                    )    && CommonUtils.isValidObject(pickList.getValue()) ) {
                sid = Integer.parseInt(getValue(sourceModuleList,
                                        ""+pickList.getValue()));
            }
            System.out.println("pickList Item ID  :  " + sid);
        //    actionEvent.get     
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    public String getValue(List<SelectItem> itemlist,String label){
        String id ="";
        try{
            if ( CommonUtils.isValidObject(itemlist)
                    && StringUtils.isValidString(label)
                    && itemlist.size() >0 ){
                if(CommonUtils.isValidObject(itemlist)){
                    for(SelectItem item : itemlist){
                        if(item.getValue().equals(label)){
                            id = item.getLabel();
                            break;
                        }
                    }
                }
            }
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return id;
    }
    public boolean saveSelectedRoleModuleList() {
        RoleVO roleVO = null;
        List<Integer> moduleIdArray = null;
        boolean isAddEdit = false;
        try {
            System.out.println(" Inside saveSelectedRoleModuleList");
            if (this.roleId > 0) {
                roleVO = masterRoleMap.get(this.roleId);
                roleVO.setModuleIdList(null);
                roleVO.setModuleList(null);
                if (CommonUtils.isValidObject(selectedModuleList) && selectedModuleList.size()>0 ) {
                    moduleIdArray = new ArrayList<Integer>();
                    //int count = 0;
                    System.out.println("Size of Selected Module:" + selectedModuleList.size());
                    for (Object modulesVO : selectedModuleList) {
                        System.out.println("Final ID :" +  modulesVO);
                        moduleIdArray.add(Integer.parseInt(modulesVO.toString()));
                    }
                } else {
                    System.out.println("selected Role Module list is null");
                }
                roleVO.setModuleIdList(moduleIdArray);
                isAddEdit = adminManager.saveOrUpdateRoles(roleVO);
                MessageProperties properties = MessageProperties.getInstance();
                if(isAddEdit) {
                    infoMessages = properties.getValueByKey(
                            MessageConstants.ADMIN_ROLEPERMISSION_ADD_SUCCESS);
                    infoMessageImg = "../images/successicon.png";
                } else {
                    infoMessages = properties.getValueByKey(
                            MessageConstants.ADMIN_ROLEPERMISSION_ADD_FAILURE);
                    infoMessageImg = "../images/erroricon.png";
                }
            }
            //sourceServiceList.clear();
            this.roleId = 0;
            initRoles();
            initTargetModules();
            initSourceModule();
            FacesContext.getCurrentInstance().getExternalContext()
            .redirect(URLConstants.MANAGE_ROLE_PERMISSION_PAGE);
        } catch (ServiceException exception) {
            exception.printStackTrace();
        } catch (Exception e) {
            // TODO: handle exception
        }
        return isAddEdit;
       
    }
   




Where : adminManager Object is to get the Data list for Module and Role List from database.

Sunday, November 18, 2012

POP3 email polling


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.internet.MimeMessage.RecipientType;

import com.orga.application.vo.EmailVO;
import com.orga.utility.loggers.Logger;
import com.orga.utility.loggers.LoggerFactory;
import com.orga.utility.utils.CommonUtils;
import com.orga.utility.utils.DateUtils;
import com.sun.mail.pop3.POP3SSLStore;
/**
 * This Class represents the global
 * Email Interaction and pop 3 configuration
 * to read the emails..
 *
 * @version 0.1, 05 Sept 2012 - Base version
 *
 */
public class EmailIntegration {
    /**
     * The logger instance for this class.
     */
    private static final Logger LOGGER = LoggerFactory.
    getInstance().getLogger(EmailIntegration.class);
    /**
     * Represent the Mail session object.
     */
    private Session session = null;
    /**
     * Represent the store Object.
     */
    private Store store = null;
    /**
     * Represent the Folder object of mail.
     */
    private Folder folder;
    private String username, password;
   
   
    /**
     * Closing Folder method
     *
     * @throws Exception
     */
    public void closeFolder() throws Exception {
        folder.close(false);
    }
    /**
     * Method to get the Message Count.
     *
     * @return no of messages<tt>int</tt>.
     *
     * @throws Exception
     */
    public int getMessageCount() throws Exception {
        return folder.getMessageCount();
    }
    /**
     * Method to get the unread Message Count.
     *
     * @return no of messages<tt>int</tt>.
     *
     * @throws Exception
     */
    public int getUnreadMessageCount() throws Exception {
        return folder.getUnreadMessageCount();
    }
    /**
     * Method to get the new Message Count.
     *
     * @return no of messages<tt>int</tt>.
     *
     * @throws Exception
     */
    public int getNewMessageCount() throws Exception {
        return folder.getNewMessageCount();
    }

    public void disconnect() throws Exception {
        store.close();
    }
    public void setUserPass(String username, String password) {
        this.username = username;
        this.password = password;
    }
    /**
     * Method represent the mail Connection.
     *
     * @throws Exception throws exception in
     * case not able to connect.
     */
    public void connect() throws Exception {
        try {
            String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
            Properties pop3Props = new Properties();
            pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
            pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
            pop3Props.setProperty("mail.pop3.port", "995");
            pop3Props.setProperty("mail.pop3.socketFactory.port", "995");
            pop3Props.setProperty("javax.net.ssl.trustStorePassword", "chimera");
            pop3Props.setProperty("mail.pop3.ssl.enable", "true");
            URLName url = new URLName("pop3", "pop.gmail.com", 995, "", username,
                    password);
            session = Session.getInstance(pop3Props, null);
            store = new POP3SSLStore(session, url);
            store.connect();
        } catch (Exception exception) {
            LOGGER.error("Not able to Connect the mail server!!");
            exception.printStackTrace();
        }
    }
    /**
     * Method to Open the Mail Folder to read and Write.
     *
     * @param folderName name of the folder to open.
     *
     * @throws Exception throws exception in
     * case not able to connect.
     */
    public void openFolder(String folderName) throws Exception {
        /*
         *  Open the Folder
         */
        folder = store.getDefaultFolder();
        folder = folder.getFolder(folderName);
        if (folder == null) {
            throw new Exception("Invalid folder");
        }
        /*
         *  try to open read/write and if that fails try read-only
         */
        try {
            folder.open(Folder.READ_WRITE);
        } catch (MessagingException ex) {
            folder.open(Folder.READ_ONLY);
        }
    }
    /**
     * Method to filter to get the recent and todays mails.
     *
     * @return an instance of <tt>List<EmailVO></tt>.
     *
     * @throws MessagingException
     * @throws IOException
     * @throws ParseException
     */
    public List<EmailVO> todaysDateMail() throws MessagingException,
    IOException, ParseException {
        Date sendDate = null;
        Date todaysDate = null;
        List<EmailVO> emailList = null;
        EmailVO emailVO = null;
        int recentMessage = 0;

        try {
            LOGGER.info("Folder to Scan :" + folder.getName());
            LOGGER.info("No of Msg in folder :"
                    + folder.getMessageCount());
            Message msgs[] = folder.getMessages();
            recentMessage = msgs.length;
            LOGGER.info("No of Msg in folder :" + recentMessage);
            if (recentMessage > 0) {
                emailList = new ArrayList<EmailVO>();
                for (int i = 0; i < recentMessage; i++) {
                    Message message = msgs[i];
                    /*
                     * Getting the Send Date.
                     */
                    String sdate = DateUtils.convertDateTOString(
                            message.getSentDate(), "MM/dd/yyyy");
                    sendDate = DateUtils.convertStringToDate(sdate,
                            "MM/dd/yyyy");
                    LOGGER.info("Mail Send date :" + sendDate);
                    /*
                     * Getting the Todays Date.
                     */
                    String tdate = DateUtils.convertDateTOString(new Date(),
                            "MM/dd/yyyy");
                    todaysDate = DateUtils.convertStringToDate(tdate,
                            "MM/dd/yyyy");
                    LOGGER.info("Today date :" + todaysDate);

                    // date compare between todays Date & mail sent Date.
                    if (sendDate.compareTo(todaysDate) == 0) {
                        String bcc = "";
                        Address[] address;
                        /*if ((address = message.getRecipients(Message.RecipientType.BCC)) != null) {
                            for (int j = 0; j < address.length; j++) {
                                bcc = address[j].toString();
                                LOGGER.info("BCC: " + bcc);
                            }
                        }*/
                /*    if (message.getRecipients(RecipientType.BCC) != null
                            && bcc.contains("bloomberg.interaction@gmail.com")) {*/
                        emailVO = new EmailVO();
                        /*
                         * Setting the Bcc field.
                         */
                        //emailVO.setBcc(bcc);
                        /*
                         * Setting the send Date field.
                         */
                        if (sendDate != null) {
                            LOGGER.info("Sent Date:" + sendDate);
                            emailVO.setSendDate(sendDate);
                        }
                        /*
                         * Setting the to field.
                         */
                        String to = "";
                        if ((address = message
                                .getRecipients(Message.RecipientType.TO)) != null) {
                            for (int j = 0; j < address.length; j++) {
                                 to = address[j].toString();           
                                LOGGER.info("TO: " + to);
                                EmailVO emailVOMul = new EmailVO();
                                CommonUtils.copyBeanProperties(emailVO, emailVOMul);
                                 if (CommonUtils.isValidObject(emailVOMul)) {
                                        if (to.contains("<")) {
                                            emailVOMul.setTo(to.substring(
                                                    to.indexOf("<") + 1,
                                                    to.indexOf(">")));
                                        } else {
                                            emailVOMul.setTo(to);
                                    }
                                }
                                emailList.add(getEmaiVOObject(message, emailVOMul));
                            }
                        }
                    //}
                    }// end if date compare
                }
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return emailList;
    }
    /**
     * Method to get the Email VO Objet.
     *
     * @param message Message class.
     *
     * @param  an instance of <tt>EmailVO</tt>.
     *
     */
    private EmailVO getEmaiVOObject(Message message, EmailVO emailVO) {
        try {
            Address[] address;
            if ((address = message.getFrom()) != null) {
                for (int j = 0; j < address.length; j++) {
                    String from = address[j].toString();
                    LOGGER.info("FROM: " + from);
                    if (CommonUtils.isValidObject(emailVO)) {
                        if (from.contains("<")) {
                            emailVO.setFrom(from.substring(
                                    from.indexOf("<") + 1,
                                    from.indexOf(">")));
                        } else {
                            emailVO.setFrom(from);
                        }
                    }
                }
            }

       
        if ((address = message
        .getRecipients(Message.RecipientType.CC)) != null) {
            for (int j = 0; j < address.length; j++) {
                String cc = address[j].toString();
                LOGGER.info("CC: " + cc);
                if (CommonUtils.isValidObject(emailVO))
                    emailVO.setCc(cc);
            }
        }

        if ((message.getSubject()) != null) {
            String subject = message.getSubject();
            LOGGER.info("Subject:" + subject);
            if (CommonUtils.isValidObject(emailVO))
                emailVO.setSubject(subject);
        }

        System.out
                .println("---------------------------------");

        // Reading mail body part

        String contentType = message.getContentType();
        String textMessage = "";
        System.out.println("Message Content type:" + contentType);
        if (message.isMimeType("multipart/related")) {
            System.out.println("multipart/related".toUpperCase());
               Multipart mp = (Multipart)message.getContent(); 
             int partsCount = mp.getCount();
             for (int k = 0; k < partsCount; k++) {
                 Part p = mp.getBodyPart(k);
                 parseMail(p, emailVO);
             }
       
        }
        if (message.isMimeType("multipart/alternative")) {
            System.out.println("multipart/alternative".toUpperCase());
               Multipart mp = (Multipart)message.getContent(); 
                int partsCount = mp.getCount(); 
                for (int k = 0; k < partsCount; k++) {
                     Part p = mp.getBodyPart(k);
                     parseMail(p, emailVO);
                 }
        }
        if (contentType.contains("text/plain")
                || contentType.contains("text/html")) {
            LOGGER.info("Mail Content type is text/html!");
            textMessage = message.getContent() != null ? message
                    .getContent().toString() : "";
        } else if (contentType.contains("multipart")) {
            LOGGER.info("Mail Content type is multipart!");
            // possibly contains attachments
            Multipart multiPart = (Multipart) message
                    .getContent();
            int partCount = multiPart.getCount();
            for (int j = 0; j < partCount; j++) {
                BodyPart part = multiPart.getBodyPart(j);
                if (Part.ATTACHMENT.equalsIgnoreCase(part
                        .getDisposition())) {
                    // absolutely an attachment
                    saveAttachmentToFile(part);
                }
            }
        }
        System.out.println("Final Email body :" + emailVO.getMailBody());
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return emailVO;
    }
    public void parseMail(Part message, EmailVO emailVO)  throws Exception 
    {           
        System.out.println("parse mail Type:"+ message.getContentType());
        if ((message.isMimeType("text/*")) &&  
        (message.getDisposition() != null && message.getDisposition().equals(Part.INLINE))) 
        { 
            System.out.println("Pares mail1:" + (String)message.getContent()); 
        } else if (message.isMimeType("multipart/alternative")) { 
            Multipart mp = (Multipart)message.getContent(); 
            int partsCount = mp.getCount(); 
            for (int k = 0; k < partsCount; k++) {
                Part p = mp.getBodyPart(k);
                parseMail(p, emailVO);
            }
        } else if (message.isMimeType("multipart/related")) { 
            Multipart mp = (Multipart)message.getContent(); 
            int partsCount = mp.getCount(); 
            for (int k = 0; k < partsCount; k++) {
                Part p = mp.getBodyPart(k);
                parseMail(p, emailVO);
            }
        } else if (message.isMimeType("text/plain")) {
            LOGGER.info("Mail Content type is text/*!");
            System.out.println("Pares mail2:" + (String)message.getContent());
            emailVO.setMailBody(message.getContent().toString().replaceAll("\\<.*?>", ""));
        }
    }  
    /*
     * method use to save the attachment in mail.
     */
    private void saveAttachmentToFile(BodyPart part) throws MessagingException,
            IOException {
        String destFilePath = "/home/sougatd/mailattachments/"
                + part.getFileName();
        FileOutputStream output = new FileOutputStream(destFilePath);
        InputStream input = part.getInputStream();
        byte[] buffer = new byte[input.available()];
        int byteRead;
        while ((byteRead = input.read(buffer)) != -1) {
            output.write(buffer, 0, byteRead);
        }
        output.close();
    }
}



/* Calling the email integration*/
EmailIntegration emailIntegration = new EmailIntegration();
          emailIntegration.setUserPass("mail@gmail.com", "password");  
         emailIntegration.connect();
            emailIntegration.openFolder("inbox");
            int totalMessages = emailIntegration.getMessageCount();
            int unreadmessage = emailIntegration.getUnreadMessageCount();
            LOGGER.info("Total messages = " + totalMessages);
            LOGGER.info("unread messages = " + unreadmessage);
            LOGGER.info("-------------------------------");
            emailVOList = emailIntegration.todaysDateMail();
            emailIntegration.closeFolder();
            emailIntegration.disconnect();

Thursday, November 15, 2012

Alfresco Content search example

This method will allows to search the Alfresco document repository by content in the document.
returen the result  
/**
     * Alfresco Document search by Content.
     * @param alfrescoSearchVO
     */
    public List<String> searchByContent(AlfrescoSearchVO alfrescoSearchVO) {
        LOGGER.entering("searchByContent");
        List<String> documentList = null;
        try {
            initiate();
           
            RepositoryServiceSoapBindingStub repositoryService = alfrescoServices
            .getRepositoryService();
           
            Query query = new Query(Constants.QUERY_LANG_LUCENE,
                    DOCUMENT_SEARCH_PATH1
            +  " AND TEXT:(\""+ alfrescoSearchVO.getText() +"\")");
            QueryResult queryResult = repositoryService.query(STORE, query, false);
            ResultSet resultSet = queryResult.getResultSet();
            ResultSetRow[] rows = resultSet.getRows();
            if (rows == null) {
                System.out.println("No query results found.");
                if (alfrescoSearchVO.getText().trim().contains(" ")) {
                    String textArray[] = alfrescoSearchVO.getText().split(" ");
                    StringBuffer queryBuffer = new StringBuffer();
                    queryBuffer.append(" AND (");
                    for (int i=0; i<textArray.length; i++) {
                        if (i == 0) {
                            queryBuffer.append(
                            " TEXT:\""+ textArray[i].trim() +"\"");
                        } else {
                            queryBuffer.append(
                            " OR TEXT:\""+ textArray[i].trim() +"\"");
                        }
                    }
                    queryBuffer.append(" )");
                    if (queryBuffer.toString().length() > 0) {
                        System.out.println("Query :" + queryBuffer.toString());
                        query = new Query(Constants.QUERY_LANG_LUCENE,
                        DOCUMENT_SEARCH_PATH
                        +  queryBuffer.toString());
                        queryResult = repositoryService.query(STORE, query, false);
                        resultSet = queryResult.getResultSet();
                        rows = resultSet.getRows();
                        if (rows != null) {
                            documentList = iterateQueryResultSet(rows);
                        } else {
                            System.out.println("Final No query results found.");
                        }
                    }
                }
               
            } else {
                documentList = iterateQueryResultSet(rows);
            }
            alfrescoServices.endSession();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        LOGGER.exiting("searchByContent");
        return documentList;
    }
    /**
     * The result will be iterate to content the document information.
     * @param rows
     */
    public List<String> iterateQueryResultSet(ResultSetRow[] rows){
        LOGGER.entering("iterateQueryResultSet");
        List<String> documentList = new ArrayList<String>();
        try {
            for (ResultSetRow row : rows) {
                System.out.println("UID: " + row.getNode().getId());
                System.out.println("Type: " + row.getNode().getType());
               
                NamedValue[] values = row.getColumns();
                System.out.println("Properties: ");
                for (NamedValue col : values) {
                    /*if (col.getName().endsWith("title") || col.getName().endsWith("path")) {
                        System.out.println("\tName: " + col.getName());
                        System.out.println("\tValue: " + col.getValue());
                        System.out.println("------------------------");
                    }*/
                    if (col.getName().endsWith("path")) {
                        System.out.println("\tName: " + col.getName());
                        System.out.println("\tValue: " + col.getValue());
                        String path = col.getValue();
                        path = path.replace("/{http://www.alfresco.org/model/application/1.0}", "/app:");
                        path = path.replace("/{http://www.alfresco.org/model/site/1.0}", "/st:");
                        path = path.replace("/{http://www.alfresco.org/model/content/1.0}", "/cm:");
                        System.out.println("------------------------");
                        System.out.println("path:" + path);
                        documentList.add(path);
                    }
               
                    /*System.out.println("\tName: " + col.getName());
                    System.out.println("\tValue: " + col.getValue());*/
                   
                }
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        LOGGER.exiting("iterateQueryResultSet");
        return documentList;
    }


/*Alfresco serach vo*/
public class AlfrescoSearchVO {
    private String name;
    private String title;
    private String text;
    private String author;
    private String modifier;
    private String creator;
    private String contentType;
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return the title
     */
    public String getTitle() {
        return title;
    }
    /**
     * @param title the title to set
     */
    public void setTitle(String title) {
        this.title = title;
    }
    /**
     * @return the text
     */
    public String getText() {
        return text;
    }
    /**
     * @param text the text to set
     */
    public void setText(String text) {
        this.text = text;
    }
    /**
     * @return the author
     */
    public String getAuthor() {
        return author;
    }
    /**
     * @param author the author to set
     */
    public void setAuthor(String author) {
        this.author = author;
    }
    /**
     * @return the modifier
     */
    public String getModifier() {
        return modifier;
    }
    /**
     * @param modifier the modifier to set
     */
    public void setModifier(String modifier) {
        this.modifier = modifier;
    }
    /**
     * @return the creator
     */
    public String getCreator() {
        return creator;
    }
    /**
     * @param creator the creator to set
     */
    public void setCreator(String creator) {
        this.creator = creator;
    }
    /**
     * @return the contentType
     */
    public String getContentType() {
        return contentType;
    }
    /**
     * @param contentType the contentType to set
     */
    public void setContentType(String contentType) {
        this.contentType = contentType;
    }
   
}

Tuesday, September 25, 2012

Eclipse helios hibernate plugins URL

Eclipse helios hibernate plugins URL

 Latest Stable Release - http://download.jboss.org/jbosstools/updates/stable/

Steps : filter by hibernate and select all hibernate tools , say next.

After installing the plugin cross check in  by selecting the new project -> others
Add caption


Steps to generate the Entities or Hbm files.

Step1 : create the normal java project and then right click on project -> new project - > others-> select the console configuration
Add this file hibernate.cfg.xml in classpath of the project

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.session_factory_name">MySessionFactory</property>
        <property name="hibernate.connection.driver_class">
            com.mysql.jdbc.Driver</property>
        <property name="current_session_context_class">thread</property>
        <property name="hibernate.connection.url">jdbc:mysql://192.168.42.40:3306/portal</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">password</property>
        <property name="hibernate.connection.pool_size">10</property>
        <property name="show_sql">true</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
       
        <!-- Mapping files -->
    </session-factory>
</hibernate-configuration>





Click next

By default configuration file will be selected

For Database connection select has new

Select a db u required and click next

after that click finish

Reverse engineering step.