static MailSessionConfig from(final OperationContext operationContext, final ModelNode model) throws OperationFailedException { MailSessionConfig cfg = new MailSessionConfig(); cfg.setJndiName( MailSessionDefinition.JNDI_NAME.resolveModelAttribute(operationContext, model).asString()); cfg.setDebug( MailSessionDefinition.DEBUG.resolveModelAttribute(operationContext, model).asBoolean()); if (MailSessionDefinition.FROM.resolveModelAttribute(operationContext, model).isDefined()) { cfg.setFrom( MailSessionDefinition.FROM.resolveModelAttribute(operationContext, model).asString()); } if (model.hasDefined(SERVER_TYPE)) { ModelNode server = model.get(SERVER_TYPE); if (server.hasDefined(SMTP)) { cfg.setSmtpServer(readServerConfig(operationContext, server.get(SMTP))); } if (server.hasDefined(POP3)) { cfg.setPop3Server(readServerConfig(operationContext, server.get(POP3))); } if (server.hasDefined(IMAP)) { cfg.setImapServer(readServerConfig(operationContext, server.get(IMAP))); } } if (model.hasDefined(CUSTOM)) { for (Property server : model.get(CUSTOM).asPropertyList()) { cfg.addCustomServer( readCustomServerConfig(server.getName(), operationContext, server.getValue())); } } return cfg; }
/** {@inheritDoc} */ @Override protected void populateModel(ModelNode operation, ModelNode model) throws OperationFailedException { MailSessionDefinition.JNDI_NAME.validateAndSet(operation, model); MailSessionDefinition.DEBUG.validateAndSet(operation, model); MailSessionDefinition.FROM.validateAndSet(operation, model); }
/** * Extracts the raw JNDI_NAME value from the given model node, and depending on the value and the * value of any USE_JAVA_CONTEXT child node, converts the raw name into a compliant jndi name. * * @param modelNode the model node; either an operation or the model behind a mail session * resource * @return the compliant jndi name */ static String getJndiName(final ModelNode modelNode, OperationContext context) throws OperationFailedException { final String rawJndiName = MailSessionDefinition.JNDI_NAME.resolveModelAttribute(context, modelNode).asString(); return getJndiName(rawJndiName); }