/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import java.io.*; import org.codehaus.plexus.util.*; boolean result = true; boolean checkEncoding( String module, String sourceEncoding, String reportingEncoding ) { print( "module " + module + ", source encoding " + sourceEncoding + ", expected reporting encoding " + reportingEncoding ); File source = new File( basedir, module + "/src/main/java/Test.java" ); File javadoc = new File( basedir, module + "/target/site/apidocs/Test.html" ); String java = IOUtil.toString( new FileInputStream( source ), sourceEncoding ); String html = IOUtil.toString( new FileInputStream( javadoc ), reportingEncoding ); if ( html.indexOf( "text/html; charset=" + reportingEncoding ) < 0 ) { System.err.println( "charset not specified in content-type of " + javadoc ); return false; } String javaChars = StringUtils.getNestedString( java, "{non-ascii chars delimiter}" ); String htmlChars = StringUtils.getNestedString( html, "{non-ascii chars delimiter}" ); print( "javaChars = " + javaChars ); print( "htmlChars = " + htmlChars ); return javaChars.equals( htmlChars ); } try { result = checkEncoding( "default", "ISO-8859-15", "UTF-8") && checkEncoding( "encoding", "UTF-8", "UTF-16" ) && checkEncoding( "docencoding", "UTF-8", "UTF-16" ); } catch( IOException e ) { e.printStackTrace(); result = false; } return result;