Example usage for org.xml.sax InputSource getPublicId

List of usage examples for org.xml.sax InputSource getPublicId

Introduction

In this page you can find the example usage for org.xml.sax InputSource getPublicId.

Prototype

public String getPublicId() 

Source Link

Document

Get the public identifier for this input source.

Usage

From source file:com.adamrosenfield.wordswithcrosses.net.derstandard.SolutionParser.java

private Reader getReader(InputSource s) throws SAXException, IOException {
    Reader r = s.getCharacterStream();
    InputStream i = s.getByteStream();
    String encoding = s.getEncoding();
    String publicid = s.getPublicId();
    String systemid = s.getSystemId();
    if (r == null) {
        if (i == null)
            i = getInputStream(publicid, systemid);
        // i = new BufferedInputStream(i);
        if (encoding == null) {
            r = theAutoDetector.autoDetectingReader(i);
        } else {//  ww  w .  j a  v a  2s.  com
            try {
                r = new InputStreamReader(i, encoding);
            } catch (UnsupportedEncodingException e) {
                r = new InputStreamReader(i);
            }
        }
    }
    // r = new BufferedReader(r);
    return r;
}

From source file:com.amalto.core.storage.SystemStorageWrapper.java

@Override
public long putDocumentFromSAX(String dataClusterName, XMLReader docReader, InputSource input)
        throws XmlServerException {
    long start = System.currentTimeMillis();
    {/*www. j  av  a  2s.  c om*/
        Storage storage = getStorage(dataClusterName);
        ComplexTypeMetadata type = getType(dataClusterName, storage, input.getPublicId());
        if (type == null) {
            return -1; // TODO
        }
        DataRecordReader<XmlSAXDataRecordReader.Input> reader = new XmlSAXDataRecordReader();
        XmlSAXDataRecordReader.Input readerInput = new XmlSAXDataRecordReader.Input(docReader, input);
        DataRecord record = reader.read(storage.getMetadataRepository(), type, readerInput);
        storage.update(record);
    }
    return System.currentTimeMillis() - start;
}

From source file:net.lightbody.bmp.proxy.jetty.xml.XmlParser.java

public synchronized Node parse(InputSource source) throws IOException, SAXException {
    Handler handler = new Handler();
    XMLReader reader = _parser.getXMLReader();
    reader.setContentHandler(handler);//www .  j a  va2 s.c om
    reader.setErrorHandler(handler);
    reader.setEntityResolver(handler);
    if (log.isDebugEnabled())
        log.debug("parsing: sid=" + source.getSystemId() + ",pid=" + source.getPublicId());
    _parser.parse(source, handler);
    if (handler._error != null)
        throw handler._error;
    Node doc = (Node) handler._top.get(0);
    handler.clear();
    return doc;
}

From source file:com.amalto.core.storage.StorageWrapper.java

@Override
public long putDocumentFromSAX(String dataClusterName, XMLReader docReader, InputSource input)
        throws XmlServerException {

    String typeName = getTypeName(input.getPublicId());
    long start = System.currentTimeMillis();
    {/*from ww w  .java 2 s.c om*/
        Storage storage = getStorage(dataClusterName);
        if (storage == null) {
            throw new XmlServerException("Data cluster '" + dataClusterName + "' does not exist."); //$NON-NLS-1$ //$NON-NLS-2$
        }
        DataRecordReader<XmlSAXDataRecordReader.Input> reader = new XmlSAXDataRecordReader();
        XmlSAXDataRecordReader.Input readerInput = new XmlSAXDataRecordReader.Input(docReader, input);
        MetadataRepository repository = storage.getMetadataRepository();
        DataRecord record = reader.read(repository, repository.getComplexType(typeName), readerInput);
        storage.update(record);
    }
    return System.currentTimeMillis() - start;
}

From source file:org.anodyneos.jse.cron.CronDaemon.java

public CronDaemon(InputSource source) throws JseException {

    Schedule schedule;//from   ww w.jav  a2s .  co m

    // parse source
    try {

        JAXBContext jc = JAXBContext.newInstance("org.anodyneos.jse.cron.config");
        Unmarshaller u = jc.createUnmarshaller();
        //Schedule
        Source schemaSource = new StreamSource(Thread.currentThread().getContextClassLoader()
                .getResourceAsStream("org/anodyneos/jse/cron/cron.xsd"));

        SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Schema schema = sf.newSchema(schemaSource);
        u.setSchema(schema);
        ValidationEventCollector vec = new ValidationEventCollector();
        u.setEventHandler(vec);

        JAXBElement<?> rootElement;
        try {
            rootElement = ((JAXBElement<?>) u.unmarshal(source));
        } catch (UnmarshalException ex) {
            if (!vec.hasEvents()) {
                throw ex;
            } else {
                for (ValidationEvent ve : vec.getEvents()) {
                    ValidationEventLocator vel = ve.getLocator();
                    log.error("Line:Col[" + vel.getLineNumber() + ":" + vel.getColumnNumber() + "]:"
                            + ve.getMessage());
                }
                throw new JseException("Validation failed for source publicId='" + source.getPublicId()
                        + "'; systemId='" + source.getSystemId() + "';");
            }
        }

        schedule = (Schedule) rootElement.getValue();

        if (vec.hasEvents()) {
            for (ValidationEvent ve : vec.getEvents()) {
                ValidationEventLocator vel = ve.getLocator();
                log.warn("Line:Col[" + vel.getLineNumber() + ":" + vel.getColumnNumber() + "]:"
                        + ve.getMessage());
            }
        }

    } catch (JseException e) {
        throw e;
    } catch (Exception e) {
        throw new JseException("Cannot parse " + source + ".", e);
    }

    SpringHelper springHelper = new SpringHelper();

    ////////////////
    //
    // Configure Spring and Create Beans
    //
    ////////////////

    TimeZone defaultTimeZone;

    if (schedule.isSetTimeZone()) {
        defaultTimeZone = getTimeZone(schedule.getTimeZone());
    } else {
        defaultTimeZone = TimeZone.getDefault();
    }

    if (schedule.isSetSpringContext() && schedule.getSpringContext().isSetConfig()) {
        for (Config config : schedule.getSpringContext().getConfig()) {
            springHelper.addXmlClassPathConfigLocation(config.getClassPathResource());
        }
    }

    for (org.anodyneos.jse.cron.config.JobGroup jobGroup : schedule.getJobGroup()) {
        for (Job job : jobGroup.getJob()) {
            if (job.isSetBeanRef()) {
                if (job.isSetBean() || job.isSetClassName()) {
                    throw new JseException("Cannot set bean or class attribute for job when beanRef is set.");
                } // else config ok
            } else {
                if (!job.isSetClassName()) {
                    throw new JseException("must set either class or beanRef for job.");
                }
                GenericBeanDefinition beanDef = new GenericBeanDefinition();
                MutablePropertyValues propertyValues = new MutablePropertyValues();

                if (!job.isSetBean()) {
                    job.setBean(UUID.randomUUID().toString());
                }

                if (springHelper.containsBean(job.getBean())) {
                    throw new JseException(
                            "Bean name already used; overriding not allowed here: " + job.getBean());
                }

                beanDef.setBeanClassName(job.getClassName());

                for (Property prop : job.getProperty()) {
                    String value = null;
                    if (prop.isSetSystemProperty()) {
                        value = System.getProperty(prop.getSystemProperty());
                    }
                    if (null == value) {
                        value = prop.getValue();
                    }

                    propertyValues.addPropertyValue(prop.getName(), value);
                }

                beanDef.setPropertyValues(propertyValues);
                springHelper.registerBean(job.getBean(), beanDef);
                job.setBeanRef(job.getBean());
            }
        }
    }

    springHelper.init();

    ////////////////
    //
    // Configure Timer Services
    //
    ////////////////

    for (org.anodyneos.jse.cron.config.JobGroup jobGroup : schedule.getJobGroup()) {

        String jobGroupName;
        JseTimerService service = new JseTimerService();

        timerServices.add(service);

        if (jobGroup.isSetName()) {
            jobGroupName = jobGroup.getName();
        } else {
            jobGroupName = UUID.randomUUID().toString();
        }

        if (jobGroup.isSetMaxConcurrent()) {
            service.setMaxConcurrent(jobGroup.getMaxConcurrent());
        }

        for (Job job : jobGroup.getJob()) {

            TimeZone jobTimeZone = defaultTimeZone;

            if (job.isSetTimeZone()) {
                jobTimeZone = getTimeZone(job.getTimeZone());
            } else {
                jobTimeZone = defaultTimeZone;
            }

            Object obj;

            Date notBefore = null;
            Date notAfter = null;

            if (job.isSetNotBefore()) {
                notBefore = job.getNotBefore().toGregorianCalendar(jobTimeZone, null, null).getTime();
            }
            if (job.isSetNotAfter()) {
                notAfter = job.getNotAfter().toGregorianCalendar(jobTimeZone, null, null).getTime();
            }

            CronSchedule cs = new CronSchedule(job.getSchedule(), jobTimeZone, job.getMaxIterations(),
                    job.getMaxQueue(), notBefore, notAfter);

            obj = springHelper.getBean(job.getBeanRef());
            log.info("Adding job " + jobGroup.getName() + "/" + job.getName() + " using bean "
                    + job.getBeanRef());
            if (obj instanceof CronJob) {
                ((CronJob) obj).setCronContext(new CronContext(jobGroupName, job.getName(), cs));
            }
            if (obj instanceof JseDateAwareJob) {
                service.createTimer((JseDateAwareJob) obj, cs);
            } else if (obj instanceof Runnable) {
                service.createTimer((Runnable) obj, cs);
            } else {
                throw new JseException("Job must implement Runnable or JseDateAwareJob");
            }
        }
    }
}

From source file:org.apache.axis2.jaxbri.CodeGenerationUtility.java

/**
 * @param additionalSchemas/*from www .  j a va  2  s . c  o  m*/
 * @throws RuntimeException
 */
public static TypeMapper processSchemas(final List schemas, Element[] additionalSchemas,
        CodeGenConfiguration cgconfig) throws RuntimeException {
    try {

        //check for the imported types. Any imported types are supposed to be here also
        if (schemas == null || schemas.isEmpty()) {
            //there are no types to be code generated
            //However if the type mapper is left empty it will be a problem for the other
            //processes. Hence the default type mapper is set to the configuration
            return new DefaultTypeMapper();
        }

        final Map schemaToInputSourceMap = new HashMap();
        final Map<String, StringBuffer> publicIDToStringMap = new HashMap<String, StringBuffer>();

        //create the type mapper
        JavaTypeMapper mapper = new JavaTypeMapper();

        String baseURI = cgconfig.getBaseURI();
        if (!baseURI.endsWith("/")) {
            baseURI = baseURI + "/";
        }

        for (int i = 0; i < schemas.size(); i++) {
            XmlSchema schema = (XmlSchema) schemas.get(i);
            InputSource inputSource = new InputSource(new StringReader(getSchemaAsString(schema)));
            //here we have to set a proper system ID. otherwise when processing the
            // included schaemas for this schema we have a problem
            // it creates the system ID using this target namespace value

            inputSource.setSystemId(baseURI + "xsd" + i + ".xsd");
            inputSource.setPublicId(schema.getTargetNamespace());
            schemaToInputSourceMap.put(schema, inputSource);
        }

        File outputDir = new File(cgconfig.getOutputLocation(), "src");
        outputDir.mkdir();

        Map nsMap = cgconfig.getUri2PackageNameMap();
        EntityResolver resolver = new EntityResolver() {
            public InputSource resolveEntity(String publicId, String systemId)
                    throws SAXException, IOException {
                InputSource returnInputSource = null;
                XmlSchema key = null;
                for (Iterator iter = schemaToInputSourceMap.keySet().iterator(); iter.hasNext();) {
                    key = (XmlSchema) iter.next();
                    String nsp = key.getTargetNamespace();
                    if (nsp != null && nsp.equals(publicId)) {

                        // when returning the input stream we have to always return a new
                        // input stream.
                        // sinc jaxbri internally consumes the input stream it gives an
                        // exception.
                        returnInputSource = new InputSource(new StringReader(getSchemaAsString(key)));
                        InputSource existingInputSource = (InputSource) schemaToInputSourceMap.get(key);
                        returnInputSource.setSystemId(existingInputSource.getSystemId());
                        returnInputSource.setPublicId(existingInputSource.getPublicId());
                        break;
                    }
                }
                if (returnInputSource == null) {
                    // then we have to find this using the file system
                    if (systemId != null) {
                        returnInputSource = new InputSource(systemId);
                        returnInputSource.setSystemId(systemId);
                    }
                }

                if (returnInputSource == null) {
                    if (publicId != null) {

                        if (!publicIDToStringMap.containsKey(publicId)) {
                            URL url = new URL(publicId);
                            BufferedReader bufferedReader = new BufferedReader(
                                    new InputStreamReader(url.openStream()));
                            StringBuffer stringBuffer = new StringBuffer();
                            String str = null;
                            while ((str = bufferedReader.readLine()) != null) {
                                stringBuffer.append(str);
                            }
                            publicIDToStringMap.put(publicId, stringBuffer);
                        }

                        String schemaString = publicIDToStringMap.get(publicId).toString();
                        returnInputSource = new InputSource(new StringReader(schemaString));
                        returnInputSource.setPublicId(publicId);
                        returnInputSource.setSystemId(publicId);
                    }
                }
                return returnInputSource;
            }
        };

        Map properties = cgconfig.getProperties();
        String bindingFileName = (String) properties.get(BINDING_FILE_NAME);

        XmlSchema key = null;
        for (Iterator schemaIter = schemaToInputSourceMap.keySet().iterator(); schemaIter.hasNext();) {

            SchemaCompiler sc = XJC.createSchemaCompiler();
            if (bindingFileName != null) {
                if (bindingFileName.endsWith(".jar")) {
                    scanEpisodeFile(new File(bindingFileName), sc);
                } else {
                    InputSource inputSoruce = new InputSource(new FileInputStream(bindingFileName));
                    inputSoruce.setSystemId(new File(bindingFileName).toURI().toString());
                    sc.getOptions().addBindFile(inputSoruce);
                }

            }

            key = (XmlSchema) schemaIter.next();

            if (nsMap != null) {
                Iterator iterator = nsMap.entrySet().iterator();
                while (iterator.hasNext()) {
                    Map.Entry entry = (Map.Entry) iterator.next();
                    String namespace = (String) entry.getKey();
                    String pkg = (String) nsMap.get(namespace);
                    registerNamespace(sc, namespace, pkg);
                }
            }

            sc.setEntityResolver(resolver);

            sc.setErrorListener(new ErrorListener() {
                public void error(SAXParseException saxParseException) {
                    log.error(saxParseException.getMessage());
                    log.debug(saxParseException.getMessage(), saxParseException);
                }

                public void fatalError(SAXParseException saxParseException) {
                    log.error(saxParseException.getMessage());
                    log.debug(saxParseException.getMessage(), saxParseException);
                }

                public void warning(SAXParseException saxParseException) {
                    log.warn(saxParseException.getMessage());
                    log.debug(saxParseException.getMessage(), saxParseException);
                }

                public void info(SAXParseException saxParseException) {
                    log.info(saxParseException.getMessage());
                    log.debug(saxParseException.getMessage(), saxParseException);
                }
            });

            sc.parseSchema((InputSource) schemaToInputSourceMap.get(key));
            sc.getOptions().addGrammar((InputSource) schemaToInputSourceMap.get(key));

            for (Object property : properties.keySet()) {
                String propertyName = (String) property;
                if (propertyName.startsWith("X")) {
                    String[] args = null;
                    String propertyValue = (String) properties.get(property);
                    if (propertyValue != null) {
                        args = new String[] { "-" + propertyName, propertyValue };
                    } else {
                        args = new String[] { "-" + propertyName };
                    }
                    sc.getOptions().parseArguments(args);
                }
            }

            // Bind the XML
            S2JJAXBModel jaxbModel = sc.bind();

            if (jaxbModel == null) {
                throw new RuntimeException("Unable to generate code using jaxbri");
            }

            // Emit the code artifacts
            JCodeModel codeModel = jaxbModel.generateCode(null, null);
            FileCodeWriter writer = new FileCodeWriter(outputDir);
            codeModel.build(writer);

            Collection mappings = jaxbModel.getMappings();

            Iterator iter = mappings.iterator();

            while (iter.hasNext()) {
                Mapping mapping = (Mapping) iter.next();
                QName qn = mapping.getElement();
                String typeName = mapping.getType().getTypeClass().fullName();

                mapper.addTypeMappingName(qn, typeName);
            }

            //process the unwrapped parameters
            if (!cgconfig.isParametersWrapped()) {
                //figure out the unwrapped operations
                List axisServices = cgconfig.getAxisServices();
                for (Iterator servicesIter = axisServices.iterator(); servicesIter.hasNext();) {
                    AxisService axisService = (AxisService) servicesIter.next();
                    for (Iterator operations = axisService.getOperations(); operations.hasNext();) {
                        AxisOperation op = (AxisOperation) operations.next();

                        if (WSDLUtil.isInputPresentForMEP(op.getMessageExchangePattern())) {
                            AxisMessage message = op.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
                            if (message != null && message.getParameter(Constants.UNWRAPPED_KEY) != null) {

                                Mapping mapping = jaxbModel.get(message.getElementQName());
                                List elementProperties = mapping.getWrapperStyleDrilldown();
                                for (int j = 0; j < elementProperties.size(); j++) {
                                    Property elementProperty = (Property) elementProperties.get(j);

                                    QName partQName = WSDLUtil.getPartQName(op.getName().getLocalPart(),
                                            WSDLConstants.INPUT_PART_QNAME_SUFFIX,
                                            elementProperty.elementName().getLocalPart());
                                    //this type is based on a primitive type- use the
                                    //primitive type name in this case
                                    String fullJaveName = elementProperty.type().fullName();
                                    if (elementProperty.type().isArray()) {
                                        fullJaveName = fullJaveName.concat("[]");
                                    }
                                    mapper.addTypeMappingName(partQName, fullJaveName);

                                    if (elementProperty.type().isPrimitive()) {
                                        mapper.addTypeMappingStatus(partQName, Boolean.TRUE);
                                    }
                                    if (elementProperty.type().isArray()) {
                                        mapper.addTypeMappingStatus(partQName, Constants.ARRAY_TYPE);
                                    }
                                }
                            }
                        }

                        if (WSDLUtil.isOutputPresentForMEP(op.getMessageExchangePattern())) {
                            AxisMessage message = op.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
                            if (message != null && message.getParameter(Constants.UNWRAPPED_KEY) != null) {

                                Mapping mapping = jaxbModel.get(message.getElementQName());
                                List elementProperties = mapping.getWrapperStyleDrilldown();
                                for (int j = 0; j < elementProperties.size(); j++) {
                                    Property elementProperty = (Property) elementProperties.get(j);

                                    QName partQName = WSDLUtil.getPartQName(op.getName().getLocalPart(),
                                            WSDLConstants.OUTPUT_PART_QNAME_SUFFIX,
                                            elementProperty.elementName().getLocalPart());
                                    //this type is based on a primitive type- use the
                                    //primitive type name in this case
                                    String fullJaveName = elementProperty.type().fullName();
                                    if (elementProperty.type().isArray()) {
                                        fullJaveName = fullJaveName.concat("[]");
                                    }
                                    mapper.addTypeMappingName(partQName, fullJaveName);

                                    if (elementProperty.type().isPrimitive()) {
                                        mapper.addTypeMappingStatus(partQName, Boolean.TRUE);
                                    }
                                    if (elementProperty.type().isArray()) {
                                        mapper.addTypeMappingStatus(partQName, Constants.ARRAY_TYPE);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        // Return the type mapper
        return mapper;

    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:org.exist.collections.Collection.java

private InputSource closeShieldInputSource(final InputSource source) {

    final InputSource protectedInputSource = new InputSource();
    protectedInputSource.setEncoding(source.getEncoding());
    protectedInputSource.setSystemId(source.getSystemId());
    protectedInputSource.setPublicId(source.getPublicId());

    if (source.getByteStream() != null) {
        //TODO consider AutoCloseInputStream
        final InputStream closeShieldByteStream = new CloseShieldInputStream(source.getByteStream());
        protectedInputSource.setByteStream(closeShieldByteStream);
    }/*from   ww  w .j ava  2s  .  c o m*/

    if (source.getCharacterStream() != null) {
        //TODO consider AutoCloseReader
        final Reader closeShieldReader = new CloseShieldReader(source.getCharacterStream());
        protectedInputSource.setCharacterStream(closeShieldReader);
    }

    return protectedInputSource;
}

From source file:org.exist.collections.MutableCollection.java

private InputSource closeShieldInputSource(final InputSource source) {
    final InputSource protectedInputSource = new InputSource();
    protectedInputSource.setEncoding(source.getEncoding());
    protectedInputSource.setSystemId(source.getSystemId());
    protectedInputSource.setPublicId(source.getPublicId());

    if (source.getByteStream() != null) {
        //TODO consider AutoCloseInputStream
        final InputStream closeShieldByteStream = new CloseShieldInputStream(source.getByteStream());
        protectedInputSource.setByteStream(closeShieldByteStream);
    }//from ww  w.  j a  v  a  2  s  .c o  m

    if (source.getCharacterStream() != null) {
        //TODO consider AutoCloseReader
        final Reader closeShieldReader = new CloseShieldReader(source.getCharacterStream());
        protectedInputSource.setCharacterStream(closeShieldReader);
    }

    return protectedInputSource;
}