001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)EndptSecConfigReader.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: /**
030: * EndptSecConfigReader.java
031: *
032: * SUN PROPRIETARY/CONFIDENTIAL.
033: * This software is the proprietary information of Sun Microsystems, Inc.
034: * Use is subject to license terms.
035: *
036: * Created on December 16, 2004, 2:38 PM
037: */package com.sun.jbi.internal.security.config;
038:
039: import com.sun.jbi.StringTranslator;
040: import com.sun.jbi.internal.security.Constants;
041: import com.sun.jbi.internal.security.util.Loader;
042:
043: import java.io.File;
044: import java.io.InputStream;
045: import java.io.Reader;
046:
047: import javax.jbi.JBIException;
048: import org.xml.sax.InputSource;
049: import org.w3c.dom.Document;
050:
051: /**
052: *
053: * @author Sun Microsystems, Inc.
054: */
055: public class EndptSecConfigReader {
056: /** StringTranslator. */
057: private StringTranslator mTranslator;
058:
059: /** Schemas for validation. */
060: private String[] mSchemas;
061:
062: /** The Error Handler for handling SAX Parsing errors */
063: private ConfigErrorHandler mErrHndlr;
064:
065: /** Validate Flag. */
066: private boolean mValidate;
067:
068: /**
069: * Creates a new instance of EndptSecConfigReader.
070: *
071: * @param translator is the String Translator to use for i18N
072: * @param schemaDir is the directory where all the schema files will reside.
073: * @param
074: */
075: public EndptSecConfigReader(StringTranslator translator,
076: String schemaDir) {
077: mTranslator = translator;
078: mSchemas = new String[] { schemaDir + File.separator
079: + Constants.DEPLOY_CONFIG_SCHEMA };
080: mErrHndlr = new ConfigErrorHandler(translator);
081: mValidate = false;
082: }
083:
084: /**
085: * @return true if validation will be done.
086: */
087: public boolean isValidating() {
088: return mValidate;
089: }
090:
091: /**
092: * @param validate is the validation flag.
093: */
094: public void setValidating(boolean validate) {
095: mValidate = validate;
096: }
097:
098: /**
099: * Read the Security Configuration from a input file.
100: *
101: * @param file is the File to read the config data from.
102: * @return the EndpointSecurityConfig read.
103: * @throws JBIException on errors.
104: */
105: public EndpointSecurityConfig read(File file) throws JBIException {
106: try {
107: return this .read(new java.io.FileInputStream(file));
108: } catch (Exception ex) {
109: throw new JBIException(ex.getMessage(), ex);
110: }
111: }
112:
113: /**
114: * Read the Security Configuration from a input stream.
115: *
116: * @param istr is the inputstream to read the data from.
117: * @return the EndpointSecurityConfig read.
118: * @throws JBIException on Errors
119: */
120: public EndpointSecurityConfig read(InputStream istr)
121: throws JBIException {
122: Loader loader = new Loader();
123: try {
124: Document dom = loader.load(new InputSource(istr),
125: mValidate, mErrHndlr, mSchemas);
126: return new EndptSecConfig(dom, mTranslator);
127: } catch (Exception ex) {
128: throw new JBIException(ex.getMessage(), ex);
129: }
130: }
131:
132: /**
133: * Read the EndptSecConfig from the input string.
134: *
135: * @param reader is the Reader to the XML Source
136: * @return the EndptSecConfig instance
137: * @throws JBIException on errors.
138: */
139: public EndpointSecurityConfig read(Reader reader)
140: throws JBIException {
141: Loader loader = new Loader();
142: try {
143: Document dom = loader.load(new InputSource(reader),
144: mValidate, mErrHndlr, mSchemas);
145: return new EndptSecConfig(dom, mTranslator);
146: } catch (Exception ex) {
147: throw new JBIException(ex.toString(), ex);
148: }
149: }
150:
151: }
|