text:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
 ~ 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.
 -->
<project basedir="." default="build" name="apache-cassandra"
         xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    <property environment="env"/>
    <property file="build.properties" />
    <property name="debuglevel" value="source,lines,vars"/>

    <property name="basedir" value="."/>
    <property name="build.src" value="${basedir}/src"/>
    <property name="build.src.java" value="${basedir}/src/java"/>
    <property name="build.src.driver" value="${basedir}/drivers/java/src" />
    <property name="avro.src" value="${basedir}/src/avro"/>
    <property name="build.src.gen-java" value="${basedir}/src/gen-java"/>
    <property name="build.lib" value="${basedir}/lib"/>
    <property name="build.dir" value="${basedir}/build"/>
    <property name="build.dir.lib" value="${basedir}/build/lib"/>
    <property name="build.test.dir" value="${build.dir}/test"/>
    <property name="build.classes" value="${build.dir}/classes"/>
    <property name="build.classes.main" value="${build.classes}/main" />
    <property name="build.classes.thrift" value="${build.classes}/thrift" />
    <property name="build.classes.cql" value="${build.classes}/cql" />
    <property name="javadoc.dir" value="${build.dir}/javadoc"/>
    <property name="interface.dir" value="${basedir}/interface"/>
    <property name="interface.thrift.dir" value="${interface.dir}/thrift"/>
    <property name="interface.thrift.gen-java" value="${interface.thrift.dir}/gen-java"/>
    <property name="test.dir" value="${basedir}/test"/>
    <property name="test.resources" value="${test.dir}/resources"/>
    <property name="test.lib" value="${build.dir}/test/lib"/>
    <property name="test.classes" value="${build.dir}/test/classes"/>
    <property name="test.conf" value="${test.dir}/conf"/>
    <property name="test.data" value="${test.dir}/data"/>
    <property name="test.name" value="*Test"/>
    <property name="test.unit.src" value="${test.dir}/unit"/>
    <property name="test.src.driver" value="${basedir}/drivers/java/test"/>
    <property name="test.long.src" value="${test.dir}/long"/>
    <property name="test.distributed.src" value="${test.dir}/distributed"/>
    <property name="dist.dir" value="${build.dir}/dist"/>
    <property name="base.version" value="0.8.0"/>
    <condition property="version" value="${base.version}">
      <isset property="release"/>
    </condition>
    <property name="version" value="${base.version}-SNAPSHOT"/>
    <property name="version.properties.dir"
              value="${build.classes.main}/org/apache/cassandra/config/" />
    <property name="final.name" value="${ant.project.name}-${version}"/>
    <property name="maven-ant-tasks.version" value="2.1.1" />
    <property name="maven-ant-tasks.url"
              value="http://repo2.maven.org/maven2/org/apache/maven/maven-ant-tasks" />
    <property name="test.timeout" value="60000" />
    <property name="test.long.timeout" value="300000" />

    <!-- http://cobertura.sourceforge.net/ -->
    <property name="cobertura.version" value="1.9.4.1"/>
    <property name="cobertura.build.dir" value="${build.dir}/cobertura"/>
    <property name="cobertura.report.dir" value="${cobertura.build.dir}/report"/>
    <property name="cobertura.classes.dir" value="${cobertura.build.dir}/classes"/>
    <property name="cobertura.datafile" value="${cobertura.build.dir}/cobertura.ser"/>

    <condition property="maven-ant-tasks.jar.exists">
      <available file="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
    </condition>

    <condition property="is.source.artifact">
      <available file="${build.src.java}" type="dir" />
    </condition>

    <!--
         Add all the dependencies.
    -->
    <path id="maven-ant-tasks.classpath" path="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
    <path id="cassandra.classpath">
        <pathelement location="${cobertura.classes.dir}"/>
        <pathelement location="${build.classes.main}" />
        <pathelement location="${build.classes.thrift}" />
        <fileset dir="${build.lib}">
          <include name="**/*.jar" />
        </fileset>
        <fileset dir="${build.dir.lib}">
          <include name="**/*.jar" />
        </fileset>
    </path>

    <!--
        Setup the output directories.
    -->
    <target name="init">
        <fail unless="is.source.artifact"
            message="Not a source artifact, stopping here." />
        <mkdir dir="${build.classes.main}"/>
        <mkdir dir="${build.classes.thrift}"/>
        <mkdir dir="${build.classes.cql}"/>
        <mkdir dir="${test.lib}"/>
        <mkdir dir="${test.classes}"/>
        <mkdir dir="${build.src.gen-java}"/>
    </target>

    <target name="clean" description="Remove all locally created artifacts">
        <delete dir="${build.test.dir}" />
        <delete dir="${build.classes}" />
        <delete dir="${cobertura.classes.dir}" />
        <delete dir="${build.src.gen-java}" />
        <delete file="${build.dir}/internode.avpr" />
    </target>
    <target depends="clean" name="cleanall"/>

    <target name="realclean" depends="clean">
        <delete dir="${build.dir}" />
    </target>

    <!--
       This generates the CLI grammar files from Cli.g
    -->
    <target name="check-gen-cli-grammar">
        <uptodate property="cliUpToDate"
                srcfile="${build.src.java}/org/apache/cassandra/cli/Cli.g"
                targetfile="${build.src.gen-java}/org/apache/cassandra/cli/Cli.tokens"/>
    </target>

    <target name="gen-cli-grammar" depends="check-gen-cli-grammar" unless="cliUpToDate">
      <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cli/Cli.g  ....</echo>
      <java classname="org.antlr.Tool"
            classpath="${build.lib}/antlr-3.2.jar"
            fork="true"
            failonerror="true">
         <arg value="${build.src.java}/org/apache/cassandra/cli/Cli.g" />
         <arg value="-fo" />
         <arg value="${build.src.gen-java}/org/apache/cassandra/cli/" />
      </java>
    </target>

    <!--
       This generates the CQL grammar files from Cql.g
    -->
    <target name="check-gen-cql-grammar">
      <uptodate property="cqlcurrent"
                srcfile="${build.src.java}/org/apache/cassandra/cql/Cql.g"
                targetfile="${build.src.gen-java}/org/apache/cassandra/cql/Cql.tokens"/>
    </target>

    <target name="gen-cql-grammar" depends="check-gen-cql-grammar" unless="cqlcurrent">
      <echo>Building Grammar ${build.src.java}/org/apache/cassandra/cql/Cql.g  ...</echo>
      <java classname="org.antlr.Tool"
            classpath="${build.lib}/antlr-3.2.jar"
            fork="true"
            failonerror="true">
         <arg value="${build.src.java}/org/apache/cassandra/cql/Cql.g" />
         <arg value="-fo" />
         <arg value="${build.src.gen-java}/org/apache/cassandra/cql/" />
      </java>
    </target>

    <!--
       Fetch Maven Ant Tasks and Cassandra's dependencies
       These targets are intentionally free of dependencies so that they
       can be run stand-alone from a binary release artifact.
    -->
    <target name="maven-ant-tasks-download" unless="maven-ant-tasks.jar.exists">
      <echo>Downloading Maven ANT Tasks...</echo>
      <mkdir dir="${build.dir}" />
      <get src="${maven-ant-tasks.url}/${maven-ant-tasks.version}/maven-ant-tasks-${maven-ant-tasks.version}.jar"
           dest="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" usetimestamp="true" />
    </target>

    <target name="maven-ant-tasks-init" depends="maven-ant-tasks-download" unless="maven-ant-tasks.initialized">
      <mkdir dir="${build.dir.lib}"/>
      <typedef uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />

      <!-- define the remote repositories we use -->
      <artifact:remoteRepository id="central" url="http://repo1.maven.org/maven2"/>
      <artifact:remoteRepository id="java.net2" url="http://download.java.net/maven/2"/>
      <artifact:remoteRepository id="apache"    url="https://repository.apache.org/content/repositories/releases"/>
      <artifact:remoteRepository id="cloudera"  url="https://repository.cloudera.com/content/repositories/releases"/>
      <!-- for distributed tests -->
      <artifact:remoteRepository id="jclouds"   url="http://jclouds.googlecode.com/svn/repo"/>
      <artifact:remoteRepository id="oauth"     url="http://oauth.googlecode.com/svn/code/maven"/>
      <artifact:remoteRepository id="twttr"     url="http://maven.twttr.com"/>

      <property name="maven-ant-tasks.initialized" value="true"/>
    </target>

    <target name="maven-ant-tasks-retrieve-build" depends="maven-ant-tasks-init">
      <artifact:dependencies filesetId="build-dependency-jars"
                             sourcesFilesetId="build-dependency-sources"
                             cacheDependencyRefs="true"
                             dependencyRefsBuildFile="${build.dir}/build-dependencies.xml">
          <!-- FIXME: paranamer can be dropped after we're depending on avro
          (since it depends on them). -->
          <dependency groupId="com.thoughtworks.paranamer" artifactId="paranamer-ant" version="2.1"/>
          <dependency groupId="junit" artifactId="junit" version="4.6" />
          <dependency groupId="commons-logging" artifactId="commons-logging" version="1.1.1"/>
          <dependency groupId="org.apache.rat" artifactId="apache-rat" version="0.6" />
          <dependency groupId="com.cloudera.hadoop" artifactId="hadoop-core" version="0.20.2-320"/>
          <dependency groupId="com.cloudera.hadoop" artifactId="hadoop-streaming" version="0.20.2-320"/>
          <dependency groupId="net.sf.jopt-simple" artifactId="jopt-simple" version="3.2"/>

          <dependency groupId="net.java.dev.jna" artifactId="jna" version="3.2.7"/>
          <remoteRepository refid="central"/>
          <remoteRepository refid="apache"/>
          <remoteRepository refid="cloudera"/>
          <remoteRepository refid="java.net2"/>
      </artifact:dependencies>
      <artifact:dependencies pathId="cobertura.classpath">
          <dependency groupId="net.sourceforge.cobertura" artifactId="cobertura" version="${cobertura.version}"/>
          <remoteRepository refid="central"/>
      </artifact:dependencies>

      <copy todir="${build.dir.lib}/jars">
          <fileset refid="build-dependency-jars"/>
          <mapper type="flatten"/>
      </copy>
      <copy todir="${build.dir.lib}/sources">
          <fileset refid="build-dependency-sources"/>
          <mapper type="flatten"/>
      </copy>
    </target>

    <target name="maven-ant-tasks-retrieve-test" depends="maven-ant-tasks-init">
      <artifact:dependencies filesetId="test-dependency-jars"
                             sourcesFilesetId="test-dependency-sources"
                             cacheDependencyRefs="true"
                             dependencyRefsBuildFile="${build.dir}/test-dependencies.xml">
        <dependency groupId="org.apache.whirr" artifactId="whirr-core" version="0.3.0-incubating-SNAPSHOT"/>
        <dependency groupId="org.apache.whirr" artifactId="whirr-cli" version="0.3.0-incubating-SNAPSHOT"/>
        <remoteRepository refid="apache"/>
        <remoteRepository refid="central"/>
        <remoteRepository refid="jclouds"/>
        <remoteRepository refid="oauth"/>
        <remoteRepository refid="twttr"/>
      </artifact:dependencies>
      <copy todir="${test.lib}/jars">
        <fileset refid="test-dependency-jars"/>
        <mapper type="flatten"/>
      </copy>
      <copy todir="${test.lib}/sources">
        <fileset refid="test-dependency-sources"/>
        <mapper type="flatten"/>
      </copy>
    </target>

    <!--
       Generate avro code
    -->
    <target name="check-avro-generate" depends="maven-ant-tasks-init">
      <taskdef name="avro-protocol" classname="org.apache.avro.specific.ProtocolTask">
        <classpath refid="cassandra.classpath" />
      </taskdef>
      <uptodate property="avroInterfaceUpToDate"
                srcfile="${build.src.java}/org/apache/cassandra/hadoop/hadoop.genavro"
                targetfile="${build.src.gen-java}/org/apache/cassandra/hadoop/hadoop.avpr" />
      <uptodate property="avroINProtoUpToDate" srcfile="${avro.src}/internode.genavro"
                targetfile="${build.dir}/internode.avpr" />
    </target>

    <target name="avro-generate"
            depends="avro-interface-generate-hadoop,avro-interface-generate-internode"
            description="Generates Java Avro classes for client and internal use." />

    <target name="avro-interface-generate-hadoop" unless="avroInterfaceUpToDate"
            depends="init,check-avro-generate,maven-ant-tasks-retrieve-build">
      <avromacro protocolname="hadoop"
                 inputfile="${build.src.java}/org/apache/cassandra/hadoop/hadoop.genavro"
                 jsondir="${build.src.gen-java}/org/apache/cassandra/hadoop"
                 outputdir="${build.src}" />
    </target>
    <target name="avro-interface-generate-internode" unless="avroINProtoUpToDate"
            depends="init,check-avro-generate,maven-ant-tasks-retrieve-build">
      <avromacro protocolname="internode" inputfile="${avro.src}/internode.genavro"
                 jsondir="${build.dir}" outputdir="${build.src}"/>
    </target>

    <macrodef name="avromacro">
      <attribute name="protocolname" />
      <attribute name="inputfile" />
      <attribute name="jsondir" />
      <attribute name="outputdir" />
      <sequential>
        <echo message="Generating Avro @{protocolname} code..." />
        <mkdir dir="@{jsondir}" />
        <!-- Generate json schema from genavro IDL -->
        <java classname="org.apache.avro.tool.Main" fork="true">
          <classpath refid="cassandra.classpath" />
          <arg value="idl" />
          <arg value="@{inputfile}" />
          <arg value="@{jsondir}/@{protocolname}.avpr" />
        </java>

        <!-- Generate java code from JSON protocol schema -->
        <avro-protocol destdir="@{outputdir}/gen-java">
            <fileset file="@{jsondir}/@{protocolname}.avpr" />
        </avro-protocol>
      </sequential>
    </macrodef>

    <!--
       Generate thrift code.  We have targets to build java because
       Cassandra depends on it, and python because that is what the system
       tests run.
    -->
    <target name="gen-thrift-java" depends="rat-init" description="Generate Thrift Java artifacts">
      <echo>Generating Thrift Java code from ${basedir}/interface/cassandra.thrift ....</echo>
      <exec executable="thrift" dir="${basedir}/interface" failonerror="true">
        <arg line="--gen java:hashcode" />
        <arg line="-o ${interface.thrift.dir}" />
        <arg line="cassandra.thrift" />
      </exec>
      <java classname="org.apache.rat.Report" fork="true"
            output="${build.dir}/rat-report.log">
        <classpath refid="rat.classpath" />
        <arg value="-a" />
        <arg value="--force" />
        <arg value="interface/thrift" />
      </java>
    </target>
    <target name="gen-thrift-py" description="Generate Thrift Python artifacts">
      <echo>Generating Thrift Python code from ${basedir}/interface/cassandra.thrift ....</echo>
      <exec executable="thrift" dir="${basedir}/interface" failonerror="true">
        <arg line="--gen py" />
        <arg line="-o ${interface.thrift.dir}" />
        <arg line="cassandra.thrift" />
      </exec>
    </target>

    <!-- create properties file with C version -->
    <target name="createVersionPropFile">
      <taskdef name="propertyfile" classname="org.apache.tools.ant.taskdefs.optional.PropertyFile"/>
      <propertyfile file="${version.properties.dir}/version.properties">
        <entry key="CassandraVersion" value="${version}"/>
      </propertyfile>
    </target>

    <!--
        The build target builds all the .class files
    -->
    <target name="build"
        depends="maven-ant-tasks-retrieve-build,avro-generate,build-subprojects,build-project" description="Compile Cassandra classes"/>
    <target name="build-subprojects" description="Compile Cassandra contrib projects"/>
    <target name="codecoverage" depends="cobertura-instrument,test,cobertura-report" description="Create code coverage report"/>

    <target depends="init,avro-generate,gen-cli-grammar,gen-cql-grammar"
            name="build-project">
        <echo message="${ant.project.name}: ${ant.file}"/>
        <!-- Order matters! -->
        <javac debug="true" debuglevel="${debuglevel}"
               destdir="${build.classes.thrift}" includeantruntime="false">
            <src path="${interface.thrift.dir}/gen-java"/>
            <classpath refid="cassandra.classpath"/>
        </javac>
        <javac debug="true" debuglevel="${debuglevel}"
               destdir="${build.classes.main}" includeantruntime="false">
            <src path="${build.src.java}"/>
            <src path="${build.src.gen-java}"/>
            <src path="${build.src.driver}" />
            <classpath refid="cassandra.classpath"/>
        </javac>
        <javac debug="true" debuglevel="${debuglevel}"
               destdir="${build.classes.cql}" includeantruntime="false">
            <src path="${build.src.driver}" />
            <classpath refid="cassandra.classpath"/>
        </javac>

        <taskdef name="paranamer" classname="com.thoughtworks.paranamer.ant.ParanamerGeneratorTask">
          <classpath refid="cassandra.classpath" />
        </taskdef>

        <antcall target="createVersionPropFile"/>
    </target>

    <!--
        The jar target makes cassandra.jar output.
    -->
    <target name="jar" depends="build" description="Assemble Cassandra JAR files">
      <mkdir dir="${build.classes.main}/META-INF" />
      <mkdir dir="${build.classes.thrift}/META-INF" />
      <copy file="LICENSE.txt"
            tofile="${build.classes.main}/META-INF/LICENSE.txt"/>
      <copy file="LICENSE.txt"
            tofile="${build.classes.thrift}/META-INF/LICENSE.txt"/>
      <copy file="NOTICE.txt"
            tofile="${build.classes.main}/META-INF/NOTICE.txt"/>
      <copy file="NOTICE.txt"
            tofile="${build.classes.thrift}/META-INF/NOTICE.txt"/>

      <!-- Thrift Jar -->
      <jar jarfile="${build.dir}/${ant.project.name}-thrift-${version}.jar"
           basedir="${build.classes.thrift}">
        <manifest>
          <attribute name="Implementation-Title" value="Cassandra"/>
          <attribute name="Implementation-Version" value="${version}"/>
          <attribute name="Implementation-Vendor" value="Apache"/>
        </manifest>
      </jar>

      <!-- Main Jar -->
      <jar jarfile="${build.dir}/${final.name}.jar"
           basedir="${build.classes.main}">
        <manifest>
        <!-- <section name="org/apache/cassandra/infrastructure"> -->
          <attribute name="Implementation-Title" value="Cassandra"/>
          <attribute name="Implementation-Version" value="${version}"/>
          <attribute name="Implementation-Vendor" value="Apache"/>
          <attribute name="Premain-Class"
                     value="org.apache.cassandra.infrastructure.continuations.CAgent"/>
          <attribute name="Class-Path"
                     value="${ant.project.name}-thrift-${version}.jar" />
        <!-- </section> -->
        </manifest>
      </jar>

      <!-- CQL driver Jar -->
      <jar jarfile="${build.dir}/${ant.project.name}-cql-${version}.jar"
           basedir="${build.classes.cql}">
        <manifest>
          <attribute name="Implementation-Title" value="Cassandra"/>
          <attribute name="Implementation-Version" value="${version}"/>
          <attribute name="Implementation-Vendor" value="Apache"/>
          <attribute name="Class-Path"
                     value="${ant.project.name}-thrift-${version}.jar" />
        </manifest>
      </jar>
    </target>

    <!-- creates release tarballs -->
    <target name="artifacts" depends="jar,javadoc"
            description="Create Cassandra release artifacts">
      <mkdir dir="${dist.dir}"/>
      <copy todir="${dist.dir}/lib">
        <fileset dir="${build.lib}"/>
        <fileset dir="${build.dir}">
          <include name="${final.name}.jar" />
          <include name="${ant.project.name}-thrift-${version}.jar" />
          <include name="${ant.project.name}-cql-${version}.jar" />
        </fileset>
      </copy>
      <copy todir="${dist.dir}/javadoc">
        <fileset dir="${javadoc.dir}"/>
      </copy>
      <copy todir="${dist.dir}/bin">
        <fileset dir="bin"/>
      </copy>
      <copy todir="${dist.dir}/conf">
        <fileset dir="conf"/>
      </copy>
      <copy todir="${dist.dir}/interface">
        <fileset dir="interface">
          <include name="**/*.thrift" />
        </fileset>
      </copy>
      <copy todir="${dist.dir}/">
        <fileset dir="${basedir}">
          <include name="*.txt" />
        </fileset>
      </copy>

      <tar compression="gzip" longfile="gnu"
        destfile="${build.dir}/${final.name}-bin.tar.gz">

        <!-- Everything but bin/ (default mode) -->
        <tarfileset dir="${dist.dir}" prefix="${final.name}">
          <include name="**"/>
          <exclude name="bin/*" />
        </tarfileset>
        <!-- Shell includes in bin/ (default mode) -->
        <tarfileset dir="${dist.dir}" prefix="${final.name}">
          <include name="bin/*.in.sh" />
        </tarfileset>
        <!-- Executable scripts in bin/ -->
        <tarfileset dir="${dist.dir}" prefix="${final.name}" mode="755">
          <include name="bin/*"/>
          <not>
                <filename name="bin/*.in.sh" />
          </not>
        </tarfileset>
      </tar>

      <tar compression="gzip" longfile="gnu"
           destfile="${build.dir}/${final.name}-src.tar.gz">

        <tarfileset dir="${basedir}"
                    prefix="${final.name}-src">
          <include name="**"/>
          <exclude name="build/**" />
          <exclude name="src/gen-java/**" />
          <exclude name=".git/**" />
          <exclude name="bin/*" /> <!-- handled separately below -->
          <!-- exclude Eclipse files -->
          <exclude name=".project" />
          <exclude name=".classpath" />
          <exclude name=".settings/**" />
          <exclude name=".externalToolBuilders/**" />
        </tarfileset>

        <!-- Shell includes and batch files in bin/ -->
        <tarfileset dir="${basedir}" prefix="${final.name}-src">
          <include name="bin/*.in.sh" />
          <include name="bin/*.bat" />
        </tarfileset>
        <!-- Everything else (assumed to be scripts), is executable -->
        <tarfileset dir="${basedir}" prefix="${final.name}-src" mode="755">
          <include name="bin/*"/>
          <exclude name="bin/*.in.sh" />
          <exclude name="bin/*.bat" />
        </tarfileset>
      </tar>
    </target>

    <target name="release" depends="artifacts,rat-init"
            description="Create and QC release artifacts">
      <checksum file="${build.dir}/${final.name}-bin.tar.gz"
                forceOverwrite="yes"
                todir="${build.dir}"
                fileext=".md5"
                algorithm="MD5" />
      <checksum file="${build.dir}/${final.name}-src.tar.gz"
                forceOverwrite="yes"
                todir="${build.dir}"
                fileext=".md5"
                algorithm="MD5" />
      <checksum file="${build.dir}/${final.name}-bin.tar.gz"
                forceOverwrite="yes"
                todir="${build.dir}"
                fileext=".sha"
                algorithm="SHA" />
      <checksum file="${build.dir}/${final.name}-src.tar.gz"
                forceOverwrite="yes"
                todir="${build.dir}"
                fileext=".sha"
                algorithm="SHA" />

      <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
                  reportFile="${build.dir}/${final.name}-bin.rat.txt">
        <tarfileset>
          <gzipresource>
            <file file="${build.dir}/${final.name}-bin.tar.gz" />
          </gzipresource>
        </tarfileset>
      </rat:report>

      <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
                  reportFile="${build.dir}/${final.name}-src.rat.txt">
        <tarfileset>
          <gzipresource>
            <file file="${build.dir}/${final.name}-src.tar.gz" />
          </gzipresource>
        </tarfileset>
      </rat:report>
    </target>

  <target name="build-test" depends="build" description="Compile test classes">
    <javac
     debug="true"
     debuglevel="${debuglevel}"
     destdir="${test.classes}">
      <classpath refid="cassandra.classpath"/>
      <src path="${test.unit.src}"/>
      <src path="${test.long.src}"/>
      <src path="${test.src.driver}"/>
    </javac>

    <!-- Non-java resources needed by the test suite -->
    <copy todir="${test.classes}">
      <fileset dir="${test.resources}"/>
    </copy>
  </target>

  <target name="build-distributed-test" depends="build-test,maven-ant-tasks-retrieve-test" description="Compile distributed test classes (which have additional deps)">
    <javac
     debug="true"
     debuglevel="${debuglevel}"
     destdir="${test.classes}">
      <classpath>
          <path refid="cassandra.classpath"/>
          <pathelement location="${test.classes}"/>
          <fileset dir="${test.lib}">
            <include name="**/*.jar" />
          </fileset>
      </classpath>
      <src path="${test.distributed.src}"/>
    </javac>
  </target>

  <macrodef name="testmacro">
    <attribute name="suitename" />
    <attribute name="inputdir" />
    <attribute name="timeout" />
    <attribute name="forkmode" default="perTest"/>
    <element name="optjvmargs" implicit="true" optional="true" />
    <attribute name="filter" default="**/${test.name}.java"/>
    <sequential>
      <echo message="running @{suitename} tests"/>
      <mkdir dir="${build.test.dir}/cassandra"/>
      <mkdir dir="${build.test.dir}/output"/>
      <junit fork="on" forkmode="@{forkmode}" failureproperty="testfailed" maxmemory="1024m" timeout="@{timeout}">
        <sysproperty key="net.sourceforge.cobertura.datafile" file="${cobertura.datafile}"/>
        <formatter type="xml" usefile="true"/>
        <formatter type="brief" usefile="false"/>
        <jvmarg value="-Dstorage-config=${test.conf}"/>
        <jvmarg value="-Daccess.properties=${test.conf}/access.properties"/>
        <jvmarg value="-Dlog4j.configuration=log4j-junit.properties" />
        <jvmarg value="-ea"/>
        <optjvmargs/>
        <classpath>
          <path refid="cassandra.classpath" />
          <pathelement location="${test.classes}"/>
          <path refid="cobertura.classpath"/>
          <pathelement location="${test.conf}"/>
          <fileset dir="${test.lib}">
            <include name="**/*.jar" />
          </fileset>
        </classpath>
        <batchtest todir="${build.test.dir}/output">
          <fileset dir="@{inputdir}" includes="@{filter}" />
        </batchtest>
      </junit>
      <fail if="testfailed" message="Some @{suitename} test(s) failed."/>
    </sequential>
  </macrodef>

  <target name="test" depends="build-test" description="Execute unit tests">
    <testmacro suitename="unit" inputdir="${test.unit.src}" timeout="60000">
      <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
      <jvmarg value="-Dcorrupt-sstable-root=${test.data}/corrupt-sstables"/>
    </testmacro>
    <testmacro suitename="driverunit" inputdir="${test.src.driver}" timeout="60000">
      <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
    </testmacro>
  </target>

  <target name="msg-ser-gen-test" depends="build-test" description="Generates message serializations">
    <testmacro suitename="unit" inputdir="${test.unit.src}"
               timeout="60000" filter="**/SerializationsTest.java">
      <jvmarg value="-Dcassandra.test-serialization-writes=True"/>
    </testmacro>
  </target>

  <target name="msg-ser-test" depends="build-test" description="Tests message serializations">
    <testmacro suitename="unit" inputdir="${test.unit.src}" timeout="60000"
               filter="**/SerializationsTest.java"/>
  </target>

  <target name="msg-ser-test-7" depends="build-test" description="Generates message serializations">
    <testmacro suitename="unit" inputdir="${test.unit.src}"
               timeout="60000" filter="**/SerializationsTest.java">
      <jvmarg value="-Dcassandra.version=0.7"/>
    </testmacro>
  </target>

  <target name="long-test" depends="build-test" description="Execute functional tests">
    <testmacro suitename="long" inputdir="${test.long.src}"
               timeout="${test.long.timeout}" />
  </target>

  <!-- Depends on artifacts so that we can push a tarball to remote nodes, and has its own build target for cloudy deps. -->
  <target name="distributed-test" depends="build-distributed-test,artifacts" description="Execute distributed tests: see ${test.distributed.src}/README.txt">
    <testmacro suitename="distributed" inputdir="${test.distributed.src}" timeout="1200000" forkmode="once">
      <jvmarg value="-Dwhirr.config=${whirr.config}"/>
      <jvmarg value="-Dwhirr.cassandra_tarball=${build.dir}/${final.name}-bin.tar.gz"/>
    </testmacro>
  </target>

  <!-- instruments the classes to later create code coverage reports -->
  <target name="cobertura-instrument" depends="build,build-test">
    <taskdef resource="tasks.properties">
      <classpath refid="cobertura.classpath"/>
    </taskdef>

    <delete file="${cobertura.datafile}"/>

    <cobertura-instrument todir="${cobertura.classes.dir}" datafile="${cobertura.datafile}">
      <ignore regex="org.apache.log4j.*"/>

      <fileset dir="${build.classes.main}">
        <include name="**/*.class"/>
        <exclude name="**/*Test.class"/>
        <exclude name="**/*TestCase.class"/>
        <exclude name="**/test/*.class"/>
        <exclude name="${cobertura.excludes}"/>
      </fileset>

    </cobertura-instrument>
  </target>

  <!-- create both html and xml code coverage reports -->
  <target name="cobertura-report">
    <cobertura-report format="html" destdir="${cobertura.report.dir}" srcdir="${build.src.java}"
      datafile="${cobertura.datafile}"/>
    <cobertura-report format="xml" destdir="${cobertura.report.dir}" srcdir="${build.src.java}"
      datafile="${cobertura.datafile}"/>
  </target>

  <!--
    License audit tool
  -->
  <target name="rat-init" depends="maven-ant-tasks-init">
    <artifact:dependencies pathId="rat.classpath">
      <dependency groupId="org.apache.rat" artifactId="apache-rat-tasks" version="0.6" />
    </artifact:dependencies>
    <typedef uri="antlib:org.apache.rat.anttasks" classpathref="rat.classpath"/>
  </target>

  <target name="rat-check" depends="rat-init">
    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
                reportFile="${build.dir}/rat-report.log">
      <fileset dir="."  excludesfile=".rat-excludes" />
    </rat:report>
    <condition property="rat.passed">
      <isfileselected file="${build.dir}/rat-report.log">
        <containsregexp expression="^0 Unknown Licenses"/>
      </isfileselected>
    </condition>
    <fail unless="rat.passed">Unknown licenses: See build/rat-report.log.</fail>
  </target>

  <target name="rat-write" depends="rat-init">
    <echo>RAT: invoking addLicense to write missing headers</echo>
    <java classname="org.apache.rat.Report" fork="true"
          output="${build.dir}/rat-report.log">
      <classpath refid="rat.classpath" />
      <arg value="-a" />
      <arg value="--force" />
      <arg value="." />
    </java>
  </target>

  <target name="javadoc" depends="init" description="Create javadoc">
    <tstamp>
      <format property="YEAR" pattern="yyyy"/>
    </tstamp>
    <javadoc destdir="${javadoc.dir}" author="true" version="true" use="true"
      windowtitle="${ant.project.name} API" classpathref="cassandra.classpath"
      bottom="Copyright &copy; ${YEAR} The Apache Software Foundation"
      useexternalfile="yes"
      maxmemory="256m">

      <fileset dir="${build.src.java}" defaultexcludes="yes">
        <include name="org/apache/**/*.java"/>
      </fileset>
      <fileset dir="${interface.thrift.gen-java}" defaultexcludes="yes">
        <include name="org/apache/**/*.java"/>
      </fileset>
    </javadoc>
   </target>

  <!-- Generate Eclipse project description files -->
  <target name="generate-eclipse-files" depends="build">
    <echo file=".project"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
  <name>${eclipse.project.name}</name>
  <comment></comment>
  <projects>
  </projects>
    <buildSpec>
      <buildCommand>
        <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
        <triggers>full,incremental,auto,clean,</triggers>
        <arguments>
          <dictionary>
            <key>LaunchConfigHandle</key>
            <value><project>/.externalToolBuilders/Cassandra_Ant_Builder.launch</value>
          </dictionary>
        </arguments>
      </buildCommand>
    </buildSpec>
  <natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
  </natures>
</projectDescription>]]>
    </echo>
	<echo file=".classpath"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src/java"/>
  <classpathentry kind="src" path="src/gen-java"/>
  <classpathentry kind="src" path="interface/thrift/gen-java"/>
  <classpathentry kind="src" path="drivers/java/src"/>
  <classpathentry kind="src" path="drivers/java/test"/>
  <classpathentry kind="src" path="test/unit"/>
  <classpathentry kind="src" path="test/long"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="output" path="build/classes/main"/>
  <classpathentry kind="lib" path="build/classes/thrift"/>
  <classpathentry kind="lib" path="build/test/classes"/>
  <classpathentry kind="lib" path="test/conf"/>
]]>
	</echo>
  	<path id="eclipse-project-libs-path">
  	 <fileset dir="lib">
  	    <include name="**/*.jar" />
     </fileset>
 	 <fileset dir="build/lib/jars">
  	    <include name="**/*.jar" />
  	 </fileset>
  	</path>
  	<property name="eclipse-project-libs" refid="eclipse-project-libs-path"/>
  	<script language="javascript"> <![CDATA[
  		importClass(java.io.File);
  		jars = project.getProperty("eclipse-project-libs").split(":");

  		cp = "";
  	    for (i=0; i< jars.length; i++) {
  	       cp += ' <classpathentry kind="lib" path="'+jars[i]+'"/>\n';
  		}

  		cp += '</classpath>';

  		echo = project.createTask("echo");
  	    echo.setMessage(cp);
  		echo.setFile(new File(".classpath"));
  		echo.setAppend(true);
  	    echo.perform();
  	]]> </script>
    <mkdir dir=".settings" />
    <mkdir dir=".externalToolBuilders" />
    <echo file=".externalToolBuilders/Cassandra_Ant_Builder.launch"><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="build,build-test,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="build,build-test,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="build,build-test,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="build,build-test,"/>
<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/${eclipse.project.name}/build.xml"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="${eclipse.project.name}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="$${workspace_loc:/${eclipse.project.name}/build.xml}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean,"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="$${workspace_loc:/${eclipse.project.name}}"/>
</launchConfiguration>]]>
    </echo>
  </target>

  <pathconvert property="eclipse.project.name">
    <path path="${basedir}" />
    <regexpmapper from="^.*/([^/]+)$$" to="\1" handledirsep="yes" />
  </pathconvert>

  <!-- Clean Eclipse project description files -->
  <target name="clean-eclipse-files">
    <delete file=".project" />
    <delete file=".classpath" />
    <delete dir=".settings" />
  	<delete dir=".externalToolBuilders" />
  	<delete dir="build/eclipse-classes" />
  </target>

</project>

redpajama_set_name: RedPajamaGithub


text:
Qingshan bezeichnet folgende Orte und Verwaltungseinheiten in der Volksrepublik China:

 den Stadtbezirk Qingshan (青山区) der Stadt Baotou im Autonomen Gebiet Innere Mongolei, siehe Qingshan (Baotou);
 den Stadtbezirk Qingshan (青山区) der Stadt Wuhan in der Provinz Hubei, siehe Qingshan (Wuhan);
 die Großgemeinde Qingshan (青山镇) im Stadtbezirk Anyuan der Stadt Pingxiang in der Provinz Jiangxi, siehe Qingshan (Anyuan);
 die Großgemeinde Qingshan (青山镇) im Kreis Chongyang der Stadt Xianning in der Provinz Hubei, siehe Qingshan (Chongyang);
 die Großgemeinde Qingshan (青山镇) im Kreis Jinzhai der Stadt Lu'an in der Provinz Anhui, siehe Qingshan (Jinzhai);
 die Großgemeinde Qingshan (青山镇) im Kreis Lipu der Stadt Guilin im Autonomen Gebiet Guangxi, siehe Qingshan (Lipu);
 die Großgemeinde Qingshan (青山镇) im Kreis Luoshan der Stadt Xinyang in der Provinz Henan, siehe Qingshan (Luoshan);
 die Großgemeinde Qingshan (青山镇) im Kreis Pu'an des Autonomen Bezirks Qianxinan in der Provinz Guizhou, siehe Qingshan (Pu'an);
 die Großgemeinde Qingshan (青山镇) im Kreis Shangnan der Stadt Shangluo in der Provinz Shaanxi, siehe Qingshan (Shangnan);
 die Großgemeinde Qingshan (青山镇) im Stadtbezirk Taobei der Stadt Baicheng in der Provinz Jilin, siehe Qingshan (Taobei);
 die Großgemeinde Qingshan (苘山镇) im Stadtbezirk Wendeng der Stadt Weihai in der Provinz Shandong, siehe Qingshan (Wendeng);
 die Großgemeinde Qingshan (青山镇) der Stadt Yizheng im Verwaltungsgebiet der Stadt Yangzhou in der Provinz Jiangsu, siehe Qingshan (Yizheng);
 die Großgemeinde Qingshan (青山镇) im Stadtbezirk Yunyang der Stadt Shiyan in der Provinz Hubei, siehe Qingshan (Yunyang);
 die Gemeinde Qingshan (青山乡) im Kreis Boli der Stadt Qitaihe in der Provinz Heilongjiang, siehe Qingshan (Boli);
 die Gemeinde Qingshan (青山乡) im Autonomen Kreis Datong der Stadt Xining in der Provinz Qinghai, siehe Qingshan (Datong);
 die Gemeinde Qingshan (青山乡) im Kreis Dongzhi der Stadt Chizhou in der Provinz Anhui, siehe Qingshan (Dongzhi);
 die Gemeinde Qingshan (青山乡) im Kreis Guidong der Stadt Chenzhou in der Provinz Hunan, siehe Qingshan (Guidong);
 die Gemeinde Qingshan (青山乡) im Kreis Jiayin der Stadt Yichun in der Provinz Heilongjiang, siehe Qingshan (Jiayin);
 die Gemeinde Qingshan (青山乡) im Kreis Linkou der Stadt Mudanjiang in der Provinz Heilongjiang, siehe Qingshan (Linkou);
 die Gemeinde Qingshan (青山乡) der Stadt Yushu im Verwaltungsgebiet der Unterprovinzstadt Changchun in der Provinz Jilin, siehe Qingshan (Yushu);
 die Gemeinde Qingshan (青山乡) im Kreis Yanchi der Stadt Wuzhong im Autonomen Gebiet Ningxia, siehe Qingshan (Yanchi);
 die Gemeinde Qingshan (青山乡) im Kreis Yingshan der Stadt Nanchong in der Provinz Sichuan, siehe Qingshan (Yingshan);
 die Gemeinde Qingshan (青山乡) im Stadtbezirk Yu'an der Stadt Lu'an in der Provinz Anhui, siehe Qingshan (Yu'an);
 das Straßenviertel Qingshan (青山街道) im Stadtbezirk Dawukou der Stadt Shizuishan im Autonomen Gebiet Ningxia, siehe Qingshan (Dawukou);
 das Straßenviertel Qingshan (青山街道) im Stadtbezirk Shigu der Stadt Hengyang in der Provinz Hunan, siehe Qingshan (Shigu);
 das Straßenviertel Qingshan (青山街道) der Stadt Wudalianchi im Verwaltungsgebiet der Stadt Heihe in der Provinz Heilongjiang, siehe Qingshan (Wudalianchi);
 das Dorf Qingshan (青山村) der Großgemeinde Yangzi in der Stadt Zhongxiang der Provinz Hubei, siehe Qingshan (Yangzi);
 das Dorf Qingshan (青山村) im Straßenviertel Lufu des Autonomen Kreises Shilin in der Provinz Yunnan, siehe Qingshan (Lufu);

Qingshan bezeichnet außerdem:
 die Qingshan-Gräber (青山墓群) aus der Zeit der Zhou-Dynastie.

redpajama_set_name: RedPajamaWikipedia


text:
Master Data Management (MDM) Software
Microsoft MDS
Microsoft MDS Reviews
5 reviews14 discussions
Microsoft MDS OverviewUNIXBusinessApplication
Microsoft MDS is #2 ranked solution in top Master Data Management (MDM) Software tools. PeerSpot users give Microsoft MDS an average rating of 8 out of 10. Microsoft MDS is most commonly compared to Informatica MDM: Microsoft MDS vs Informatica MDM. The top industry researching this solution are professionals from a computer software company, accounting for 28% of all views.
What is Microsoft MDS?
Master Data Services (MDS) is the SQL Server solution for master data management. Master data management (MDM) describes the efforts made by an organization to discover and define non-transactional lists of data, with the goal of compiling maintainable master lists. An MDM project generally includes an evaluation and restructuring of internal business processes along with the implementation of MDM technology. The result of a successful MDM solution is reliable, centralized data that can be analyzed, resulting in better business decisions.
Microsoft MDS was previously known as Microsoft Master Data Services, Microsoft MDM, Microsoft SQL Server Master Data Services, MS MDS.
Microsoft MDS Buyer's Guide
Download the Microsoft MDS Buyer's Guide including reviews and more. Updated: January 2022
Microsoft MDS Customers
ETA a.s., Apeejay Surrendra Group, Blue Star Infotech, Rotherham Doncaster and South Humber NHS Foundation, The Sydney Children's Hospitals Network, New Belgium Brewing
Microsoft MDS Video
Microsoft MDS Pricing Advice
What users are saying about Microsoft MDS pricing:
"MDS is a part of the SQL Server enterprise license. I am not aware of any additional costs."
"SAP is more expensive than Microsoft."
"The solution does require a license and we have enterprise licenses."
Profisee
GaryM
Data Architect at World Vision
Top 5Popular
MDS 2016 - Primitive but the price is right
We use MDS for analytical and operational enterprise reference data management including management of campaign, product and financial management hierarchies. We currently only use batch interfaces to feed or get data from it. We also use it to maintain source to enterprise data mappings that are fed to ETL via a generic RDM (Reference Data Management) design. We have a variety of data stewards who use the tool for data management and they get automatically notified via email with a link when new products need hierarchy assignment.
It enables data stewards to directly interact with data on a web site or Excel without building a custom solution. This includes data stewards getting notification emails automatically when new data is loaded including a link to the specific data that needs to be updated. It also has a built-in single level of approval management that is used where versions of data need to be approved prior to publishing. The end result is more consistent data, more consistent data and fewer data silos.
Reference data management is integrated via using standard automated ETL processes extracting from the published database views. This eliminates the need for one-off, silo'd and uncontrolled data management.
Excel interface
Soft delete support
Sophistication of business rules
Price (FREE for sql server enterprise license)
Hierarchy management
Security integration with AD
Very fine grained security
Easy to build (and extendable) business rules
Automatic Notification
Integrated boolean business rules
Integrated workflow
Staging support
Publication support
Ability to propagate from one repository to another
Ability to share reference data across models
Integrates as a web part
Includes both batch staging process and Excel data loading
Unused area of hierarchies to easily identify members not assigned
Product Roadmap - it is unknown how Microsoft will support this tool long term as it now gets very few if any updates when new versions of SqlServer come out. There is no known plan for Azure PaaS version.
It "can" have a bug where a model becomes corrupted. It still operates but will no longer hard delete (purge function stops working) and can no longer migrate the model to another repository as the create or clone functions stop working. It gives internal FK and duplicate row errors when attempting these functions.
Another unpredictable bug: Adding new attribute to entity doesn't show in web interface - only Excel. Only known solution is to drop the entity and re-create it. Only experienced once so far.
Business Rules cannot prevent bad data entry! Business rules cannot be used to prevent bad data from getting entered - it only marks the data as bad after it is saved because rules can only apply to data being saved. And even then it requires the data steward to push a validate rules button. If they forget they won't notice (and notifications won't go out) regarding rule violations. In my 30+ years in IT I've never experienced a tool that only allows you to create reactive rules that identify bad data but never prevent it from getting saved. In a large enterprise I would rule this as a show stopper.
Bottom line: Business rules need the ability to prevent data changes, not just validate saved changes
Second largest shortcoming: Hierarchy integration views don't support custom attributes. This capability (which would be awesome if it worked right) is completely worthless without supporting custom attributes.
Explorer GUI is clunky and awkward.
Tool needs to get more frequent enhancements. For example, since 2016 there has been no enhancement except replacing Silverlight in the 2019 version.
It needs the ability to publish only a single business rule. Publishing business rules requires publishing all rules and results in requirement for re-validation of all rules. Until that is done the validation status on all affected records is in an "awaiting validation" state which can adversely affect data usage and validity.
Needs ability to remove menu options that may not be relevant to data stewards such as Entity Dependencies, Collections or Changesets.
Needs ability to default user group's first screen. For example defaulting to a specific hierarchy display.
Resolve a bug in the domain based validation business rule feature: the web interface will not allow correcting domain based lookups in the child properties (only works using hierarchy drag/drop or within Excel).
Hierarchy names should allow exceeding 30 characters.
Selecting child members within the navigator in a hierarchy results in the GUI just ignoring you... it should allow selecting children in the navigator or at least give an error message. (Note that 2012 version resulted in blank middle panel when this occurred rather than just ignoring you).
Needs to allow renaming the code and name attributes within the publication views (only allows renaming in the UI).
Derived hierarchy views should optionally include all attributes from all respective levels, not just the code and name attributes.
Needs to allow setting the CODE attribute datatype as numeric rather than forced datatype of string (which turns into nvarchar(250) behind the scenes). This is a significant headache as simple sorting on the CODE attribute with numbers causes numbers without leading zeros to not sort correctly and it requires adding business rule to enforce numeric datatype.
Needs to support setting view datatypes to varchar rather than forcing nvarchar so subsequent extracts do not have to do datatype conversion if not using unicode in your target database.
Versioning lacks granularity as it only supports model-level versioning.
The deployment migration GUI tool doesn't support data, only meta-data making the GUI export tool fairly useless. (Including data requires use of command line to support data)
The deployment migration tools do not support business rules requiring manual maintenance when using multiple environments (e.g. dev/sit/prod).
Excel plug-in needs to support hierarchies.
Needs to support email notification to more than one email group/user.
Staging process is non-intuitive and overly complicated.
Repository should utilize a prefix or unique schema for each model so that entities and views do not have to be uniquely named across models.
Needs ability to integrate seamlessly with data quality products. (DQS has some level of integration with MDS but the integration is overly complex and DQS's days are likely numbered).
Notification should work without an AD user first accessing the model. Once you setup the notification for an AD user or group it should just work without every user having to log on at least one time.
We have been using MDS in some capacity for around 10 years going back to 2008R2 version
No issues encountered with stability in terms of up time but one of our models won't send notifications just to specific users which appears to be a bug in the interface between MDS and SqlServer SMTP as MDS logs the notification but SqlServer does not log the email send (success or failure).
There is a bug if you set the CODE or NAME attribute security to read-only for a group that the admin is in, then administration capability disappears for that admin account. This can be reset in the backend repository but is a significant bug. Supposedly it was fixed in CU1 but was not.
Some business rules when attempting to use them cause vague database error that was also supposed to be fixed in SP1 but was not.
Notification stopped working after a couple of years. MDS is sending notification but it no longer communicates with SqlServer smtp even though SqlServer SMTP can be successfully run from other tools such as SqlAgent. It appears to have stopped working after a SqlServer patch.
Our largest entity is a few million rows. It does not seem to scale well for any significant volumes. I would hesitate to use the backend for CDI/customer purposes unless you have very small customer volumes. Consider that if you're looking at Profisee Maestro solution since it shares the same backend database design.
Microsoft was incredible during beta testing but customer services hasn't been needed since much earlier versions that had installation bugs. Documentation online is missing some critical installation nuances such as SqlServer security settings needed in order to deploy models.
There is a great amount of information available on the web for this product and its relatively simple so direct technical support has been rarely needed once we were off the beta version.
We didn't have a previous solution. Any augmentation of source system data for reporting was done via spreadsheets.
I find this product far superior to a previously used product which was Hyperion MDM, now Oracle MDM. Although Oracle has enhanced their product in recent years since I last used it it was built upon the dying Hyperion database and had no governance built in and no web interface. And the Oracle tool is hundreds of thousands verses this tool which is free. Need I say more?
Note that competing products in the market place are very expensive and will include possibly more sophistication than you need. This tool does everything you will need for simple dimension or reference data management purposes.
It is fairly straightforward as the Excel plug-in makes the initial data load very simple.
We implemented it in-house.
What was our ROI?
There was no cost for the software as it comes with SQL Server BI, and Enterprise editions. The ROI is terrific and it means you can avoid building or purchasing a solution.
None as our in-house staff did the setup. There is no day to day maintenance needed. The 2016 version is no longer supported by modern browsers so high recommend only using the latest (2019) version available.
No as this was the only no-cost option with level of sophistication we needed.
It's sweet spot is reference data. Attempting to use it for large scale customer data or products may be problematic.
The tool is integrated into Dynamics AX but there is not clear direction by Microsoft for improving and supporting the product as a stand alone long term. Use it with that knowledge and look for any indication from Microsoft that it will continue to support it or deprecate it.
If starting out I would not recommend using any version prior to 2019.
Suman Jupudi
Sr. Database Developer at Hill Physicians Medical Group
Top 5Leaderboard
Useful Excel plug-in, good scalability, and good integration with SQL Server and other Microsoft products
"It has a very good feature called Excel plug-in. You just have to install the plug-in, and then it directly connects to the MDS instance where you can maintain and manage your data and publish it right through Excel. You don't need to go to the front end to make any changes. It has easy integration with SQL Server, and you can use SSIS to do the ETLs. It is a part of the Microsoft stack. It works with most of the Microsoft stuff."
"The only drawback is that it does not have the matching, merging, and all true MDM components. For these, you have to use another competent called Data Quality Services (DQS). You need to plug it in and use it along with MDS for true MDM. Both of these are integrated together, but you have to do them separately, whereas, in Profisee, there are a couple of screens where you can configure the matching process, create matching rules, and other things, and everything is in one product, which is not the case with MDS. In order to implement a true MDM, you need MDS, DQS, and SSIS. You have to use MDS to store your golden records, DQS to configure and standardize all your rules and matching percentages, and SSIS to load the data to DQS and MDS. At the same time, you also need Melissa Data to clean up your addresses to validate and standardize the addresses. That's the main component of true MDM. It would be good if they can create a true matching component inside MDS and merge MDS and DQS."
We use it to maintain our master data sets. We do a lot of setup files and crosswalk files.
We are using SQL Server 2016. It is on-prem till the recent version because SQL Server 2016 is on-prem, but from SQL Server 2019 onwards, it is compatible with Azure. I did a POC last month on the new version to host it up in Azure. We had both public and private clouds.
It has a very good feature called Excel plug-in. You just have to install the plug-in, and then it directly connects to the MDS instance where you can maintain and manage your data and publish it right through Excel. You don't need to go to the front end to make any changes.
It has easy integration with SQL Server, and you can use SSIS to do the ETLs. It is a part of the Microsoft stack. It works with most of the Microsoft stuff.
The only drawback is that it does not have the matching, merging, and all true MDM components. For these, you have to use another competent called Data Quality Services (DQS). You need to plug it in and use it along with MDS for true MDM. Both of these are integrated together, but you have to do them separately, whereas, in Profisee, there are a couple of screens where you can configure the matching process, create matching rules, and other things, and everything is in one product, which is not the case with MDS.
In order to implement a true MDM, you need MDS, DQS, and SSIS. You have to use MDS to store your golden records, DQS to configure and standardize all your rules and matching percentages, and SSIS to load the data to DQS and MDS. At the same time, you also need Melissa Data to clean up your addresses to validate and standardize the addresses. That's the main component of true MDM. It would be good if they can create a true matching component inside MDS and merge MDS and DQS.
I've been using this solution for the last ten years.
It is stable.
It is pretty good. We initially built only 1 model and 10 entities, but currently, we are maintaining around 20 models and 300 entities.
We have around 50 to 75 people in our organization. They are mostly business analysts and people who are in the data governance team.
Its initial setup is straightforward. It is just like on-prem. It took around one to one and a half hours because we had to spin up the Azure wheel. There are a couple of prerequisites that you need to do that takes around half an hour. After that, it is straightforward.
I did it myself. I also handle its maintenance. I am the main point of contact for any troubleshooting, upgrades, or patches that we need to do.
It has been 200% useful in our organization.
MDS is a part of the SQL Server enterprise license. I am not aware of any additional costs.
I would highly recommend this solution. It is a very good tool. You don't need to implement a true MDM in order to implement MDS. You can automate a digital transformation where you can migrate your Excel and Access databases that are lying in silos to MDS. This way you would have true data governance, security, change tracking (CDC), and security versioning. There are a lot of features that are very beneficial. We'll be staying with MDS.
I would rate Microsoft MDS an eight out of ten.
Free Report: Microsoft MDS Reviews and More
Learn what your peers think about Microsoft MDS. Get advice and tips from experienced pros sharing their opinions. Updated: January 2022.
Satyam Saxena
Senior Software Developer at a manufacturing company with 5,001-10,000 employees
Powerful with great customization; can sometimes be slow with synchronization issues
"Enables non-technical people to directly interact with the BI system."
"There are occasions when the solution maintains SD and we get duplications of MDS."
I'm a distributor and developer of Microsoft MDS.
The most valuable feature of the solution is Excel because it enables even non-technical people to directly interact with the BI system which is important because most of our people are not from the IT sector. The second important feature is that while we are using Informatica and other SAP tools which are less customizable, MDS increases customization for us and that is very useful. MDS, SQL and SSIS make the solution much more powerful. The main reason we use this solution is because of its customization.
I have faced data primary violation in MDS when the primary key was full and that is not good. There are occasions when the solution maintains SD and we get duplications of MDS. When I use the SIS package for batch activity and it's full, I have to delete the batch manually by going into the database. The solution can sometimes be slow. We are in a healthcare environment and I've faced some synchronizing issues with the test model. I've faced some issues as a consultant of this solution because of the above. It can be slow sometimes.
I rate the solution six out of 10.
I've been using this solution for six years.
There can be some issues with stability depending on how you use the solution.
We can directly scale everything by coding and we can customize everything.
It's important to remember that when you're installing the SQL Server, you have to select MDS. Once that's done MDS has to be enabled and the MDS database has to be created. For that purpose, you have to open MDS configuration and create the MDS database. Finally you have to build a few services of Microsoft Windows - Windows 10, Windows Server or something else - to enable multiple services and open multiple ports to enable DevOps MDS service. You then need a Microsoft Silverlight for MDS use. Finally, the MDS developer must have the admin rights of the system as well as the database.
MDS alone is a free product, but it comes with the complete package of Microsoft SQL Server. So while you are purchasing SQL Server Pro version or licensed version of SQL Server you also get SSIS, MDS and DQS.
The advantage of Microsoft MDS is that it's so handy, so customizable, and easy to use. It has all the basics and given that we are a directly integral system, everyone is able to use Excel. The advantage is that you can be working on bulk data and creating a batch, we can upload or deliver activities. If one system has reached capacity or has stopped, then the whole system stops and it is quite difficult to solve the problem. My advice is that if you want to use custom UI, then make sure you work on Internet Explorer. Without it you can't use a structured MDS UI. In place of Internet Explorer create your own custom UI by the .NET feature.
Ariful Mondal
Consulting Practice Partner - Data, Analytics & Artificial Intelligence at Wipro Ltd
ExpertModerator
Flexible, stable, scalable, includes an Excel API add-in, and the support is good
"It's very easy to use."
"It would be a better option to have an on-cloud version."
It can be used for all the data cataloging, master data management, manufacturing, product management, data harmonization, data stewardship, for any kind of master data, and product catalog.
It gives you the flexibility to have in-depth experience. It allows you to collect data and save it as a golden record. You have the flexibility for data stewardship.
They also have an Excel API where you can do everything from Excel. You can make changes with the connectivity on the Excel API.
It's very easy to use.
The version that I work with is on-premises and it required an additional virtual machine on the cloud. It would be a better option to have an on-cloud version.
I have been using this solution for three years.
We are using the latest version.
It's very stable. Stability is one of the best features.
It's scalable. It's based on Microsoft SQL Server.
They are using this solution at an enterprise level for our customer who is an implementer. They are going to produce data and scale it.
We contacted technical support with an issue that we were having and they were able to solve it. It was a learning phase but Microsoft provided support.
Microsoft support is good. They are customer-friendly and they are knowledgeable.
We are using SAP for the master data.
SAP is more expensive than Microsoft. It's costly.
SAP is a very good ESP tool that can also be used for master data services.
It's very stable.
I was not a part of the installation. I have not done it, but it should be simple.
It's similar to any SQL server installation.
Implementing with the cloud was a little bit complex.
There was an issue with the production version.
In my current organization, I'm recommending reviewing all of the product cataloging master data management. This is what I would recommend for anybody who wants to do master data management, they use this product.
Individual Contributor at a pharma/biotech company with 1,001-5,000 employees
Integrates well, scalable, and reliable
"One of the main features I have found useful is the integration with Azure active directory."
"I do not like using Silverlight and Internet Explorer. The new 2019 version gets rid of that, which is one of the reasons why we are looking to switch."
One of the main features I have found useful is the integration with Azure active directory.
I would like to separate the website from the database side. By default, you have the webserver running on the same server as it is the database. This forces us to make a bigger VM which means more costing for the VM. We tried to go with a less expensive route and every now and then we run out of memory, you have to reboot the machine. It is okay in DEV and QA, but ideally, we should not have this happening.
I do not like using Silverlight and Internet Explorer. The new 2019 version gets rid of that, which is one of the reasons why we are looking to switch.
Additionally, the overall performance could improve.
I have been using the solution for two years.
The solution will work fine stability wise if you have the VM sized appropriately.
If you have the environment then the solution can be scaled.
I have not needed to call technical support but I almost did when I was trying to do a SQL server restore of a production database and converting it into a DEV and QA environment.
I set it up on my own laptop and I did not think it was that difficult. The challenging part is making sure you are matched up with the right version and patch level of SQL Server and IE.
I did the implementation myself and it took me two days because we had multiple versions of the documentation. They were all dated in their own unique ways and because of this, I created a new version of them all, that worked for me. We have three technicians that support the solution in my organization.
I believe my organization has had a return on investment using this solution.
The solution does require a license and we have enterprise licenses.
I rate Microsoft MDS a nine out of ten.
Informatica MDM vs Microsoft MDS
SAP Master Data Governance
SAP Master Data Governance vs Microsoft MDS
Profisee vs Microsoft MDS
Boomi AtomSphere Master Data Hub
Boomi AtomSphere Master Data Hub vs Microsoft MDS
IBM InfoSphere MDM
IBM InfoSphere MDM vs Microsoft MDS
TIBCO EBX
TIBCO EBX vs Microsoft MDS
Semarchy xDM
Semarchy xDM vs Microsoft MDS
Reltio Cloud
Reltio Cloud vs Microsoft MDS
Talend Open Studio for MDM
Talend Open Studio for MDM vs Microsoft MDS
Stibo Systems Product Master Data Management
Stibo Systems Product Master Data Management vs Microsoft MDS
Oracle Data Relationship Management
Oracle Data Relationship Management vs Microsoft MDS
Talend MDM Platform
Talend MDM Platform vs Microsoft MDS
Pimcore vs Microsoft MDS
Stibo STEP MDM
Stibo STEP MDM vs Microsoft MDS
Informatica PIM
Informatica PIM vs Microsoft MDS
See all Microsoft MDS alternatives
Download our free Microsoft MDS Report and get advice and tips from experienced pros sharing their opinions.
How does Microsoft MDS (vs Informatica MDM) fit with Azure architecture?
What is the difference between master data management and data governance?
How to build a Customer 360 view?
How to download the Master Data Management (MDM) comparison report?

redpajama_set_name: RedPajamaCommonCrawl


UFO SIGHTINGS DAILY: UFO Seen Over House In Aledo, Texas On June 9, 2015, UFO Sighting News.
UFO Seen Over House In Aledo, Texas On June 9, 2015, UFO Sighting News.
I work for a construction company and was on my lunch break on 06/09/15. I had noticed a large home being constructed about a half a mile away or so and thought I should take a picture to bring home and show my family. Once you see the size of the home you'll understand why something so simple caught my attention. My boss claims the house is around 25,000 square feet so it's not your average home by any stretch. Since I had a few minutes to kill I took out my cell phone and snapped a picture of the home. I use a Samsung Galaxy S4 phone and considering the distance I had to zoom my camera to its maximum zoom of 4X. After snapping the picture I immediately looked to see how it turned out and saw it was a little blurry. I immediately opened my camera again to snap a second picture taking care to hold my hand more steady the second time. I understand with full zoom on a digital camera the slightest shake can blur the image so I was being careful. Approximately 15-20 seconds elapsed between the two pictures. I'm hoping the time stamp information will be uploaded with the images but I'm not that technical so I don't know for sure if it will. I have the information if it does not. Anyway, I glanced at the picture and saw that the quality was much better and would be sufficient for me to show my family the giant house I'd been talking about. I closed my camera app and went on with my work day. That evening I was showing both images to my brother when I noticed something strange in the second, more clear image. I used the zoom capability of my phone to zoom in on the object and that is why I'm contacting you now. I have no explanation for what the object in the image is nor do I have the slightest idea where it came from. I went back and checked the first image and there is nothing apparent in the sky aside from a few clouds. The object doesn't appear to be anywhere near high enough to have been obscured by clouds. Also it struck me as odd that given the very short duration of time between the images that any object could have traveled that far across the frame that quickly. It just doesn't seem possible to me but then again, to the naked eye, I didn't notice anything in the sky at all while taking either picture. I don't know the exact amount of time brethren images buy I do know that both time stamps say 12:10pm. So I do know that I was less that 60 seconds either way. I have no idea what the image is and had no response to it being as I didn't notice it until long after the fact. I have zoomed in and looked as closely as I can and it definitely isn't a bird. From the distance the photo was taken it would have been a huge bird in my opinion. Also the shape doesn't resemble a living creature in any way. My gut told me it had to be an airplane but again the shape appears to be all wrong. I also would have thought it would have been visible in the first picture and it definitely isn't. I'm not sure what could travel that far, that fast. My hope is that your experts can enhance the image and clear this up for me. It is a ufo in the fact that I have no idea what it is or where it came from. I can't with any certainty claim it to be alien either. That's why I'm handing it over to the experts. I hope this is enough information for you to work with and I look forward to hearing from you. Thank you for your time.


Hellma Analytics, a leading company in optics analysis technologies, partners with A*STAR to advance the pharmaceuticals and specialty chemicals manufacturing.
Singapore – A*STAR's Institute of Chemical and Engineering Sciences (ICES) has partnered Hellma Analytics (Hellma) to co-develop next generation manufacturing technologies for the pharmaceutical and specialty chemicals sectors. Hellma has joined the A*STAR consortium on Innovative Processing for Specialties and Pharmaceuticals (iPSP) to drive innovative manufacturing solutions aimed at achieving cost, quality, process and environmental improvements.
The iPSP consortium was launched in June 2013, bringing together several leading biopharmaceutical and specialty chemical manufacturers to bolster R&D for manufacturing processes and practices, and collectively accelerate pharmaceuticals and specialty chemical developments in the region.
ICES' expertise in chemistry, chemical engineering, analytics, control, formulation science and catalysis complements Hellma's pioneering knowledge in process analytical technology (PAT).1 PAT is also one of the key research themes in the iPSP consortium. Hellma offers a comprehensive range of research tools and facilities that will simplify the monitoring of scaled-up processes bringing greater clarity and speed to the research process.
Seated (L-R): Mr Andrew Lee (Managing Director, Hellma Asia Pacific), Dr. Keith Carpenter (Executive Director, ICES), Mr Holm Kändler (Business Development Technical Director, Hellma GmbH & Co., KG).
Institute of Chemical and Engineering Sciences (ICES) is a member of the Agency for Science, Technology and Research (A*STAR). Established in 2002, its mission is to support economic growth in Singapore through world class scientific research, developing novel technology and nurturing creative scientists and engineers. The research area covers chemistry and chemical engineering science, combined with advanced analytical characterization and measurement to develop state of the art technology for the petrochemical, general chemical, fine chemical and pharmaceutical industries. For more information, visit www.ices.a-star.edu.sg.
Hellma Analytics is the world leader for optical analysis technologies made out of glass and quartz. Its high-quality, precise solutions provide the basis for the achievement of reliable measurement in production, quality assurance and research. Thanks to its outstanding performance level and consulting expertise, Hellma Analytics is the preferred partner for manufacturers and end users around the world. Hellma has its own 12 subsidiaries as well as representatives in over 50 countries.


text:
ALABAMA IN THE PROS: June 17, 2019
Here is a look at how former University of Alabama and West Alabama area players are performing in the major and minor leagues.
• Tim Anderson, Hillcrest High School (INF, Chicago White Sox) 236 AB, .318 Avg., 75 Hits, 11 2B, 0 3B, 10 HR, 32 RBI, 35 Runs, 15 Stolen Bases
• Alex Avila (C, Arizona Diamondbacks) 59 AB, .220 Avg., 13 Hits, 2 2B, 0 3B, 5 HR, 11 RBI, 10 Runs, 1 Stolen Base
• Tommy Hunter (RHP, Philadelphia Phillies) On Disabled List (Grade 1 flexor strain)
• Wade LeBlanc (RHP, Seattle Mariners) 6.20 ERA, 3-2 W-L, 34 Strikeouts, 11 Walks, 0 Saves, 45.0 inn. pitched
• Adam Morgan (LHP, Philadelphia Phillies) On 10-day DL: 1.96 ERA, 2-1 W-L, 18 Strikeouts, 6 Walks, 0 Saves, 18.1 inn. Pitched
• Jimmy Nelson (RHP, Milwaukee Brewers) 10.29 ERA, 0-1 W-L, 8 Strikeouts, 6 Walks, 0 Saves, 7.0 inn. pitched
• David Robertson (RHP, Philadelphia Phillies) On 60-day DL: 5.40 ERA, 0-1 W-L, 6 Strikeouts, 6 Walks, 0 Saves, 6.2 inn. pitched
• Spencer Turnbull (RHP, Detroit Tigers) 3.27 ERA, 3-6 W-L, 77 Strikeouts, 32 Walks, 0 Saves, 82.2 inn. pitched
• Chandler Avant (INF, Columbia Fireflies, Class A, New York Mets) 136 AB, .221 Avg., 30 Hits, 7 2B, 0 3B, 1 HR, 16 RBI, 13 Runs, 3 Stolen Bases
• Thomas Burrows (LHP, Mississippi Braves, Class AA, Atlanta Braves) 4.26 ERA, 1-0 W-L, 28 Strikeouts, 15 Walks, 5 Saves, 25.1 inn. pitched
• Will Carter (RHP, Trenton Thunder, Class AA, New York Yankees) 2.70 ERA, 1-0 W-L, 22 Strikeouts, 14 Walks, 1 Saves, 33.1 inn. pitched
• Matt Foster (RHP, Charlotte Knights, Class AAA, Chicago White Sox) 2.67 ERA, 1-1 W-L, 37 Strikeouts, 10 Walks, 2 Save, 33.2 inn. pitched
• Taylor Guilbeau (LHP, Harrisburg Senators, Class AA, Washington Nationals) 3.16 ERA, 1-2 W-L, 30 Strikeouts, 10 Walks, 0 Saves, 25.2 inn. pitched
• Jett Manning (INF, San Jose Giants, Advanced A, San Francisco Giants) 57 AB, .263 Avg., 15 Hits, 2 2B, 0 3B, 1 HR, 2 RBIs, 6 Runs, 3 Stolen Bases
• Kyle Overstreet (C, Amarillo Sod Poodles, Class AA, San Diego Padres) 167 AB, .269 Avg., 45 Hits, 4 2B, 0 3B, 3 HR, 16 RBI, 19 Runs, 0 Stolen Bases
• Chandler Taylor (OF, Fayetteville Woodpeckers, Advanced A, Houston Astros) 51 AB, .255 Avg., 13 Hits, 3 2B, 0 3B, 3 HR, 9 RBI, 11 Runs, 3 Stolen Bases
• Cobie Vance (INF, Beloit Snappers, Class A, Oakland Athletics) 191 AB, .199 Avg., 38 Hits, 8 2B, 0 3B, 1 HR, 16 RBI, 25 Runs, 3 Stolen Bases
• Mikey White (INF, Midland RockHounds, Class AA, Oakland A's) 229 AB, .275 Avg., 63 Hits, 20 2B, 0 3B, 6 HR, 40 RBI, 42 Runs, 1 Stolen Base
-- Compiled by Hunter Jones


Star nails are so hot right now! With our high quality Glitter Star nail stickers you'll be able to create flawless Starry manicures in minutes, without any hustle!
Each sheet contains 60 nail stickers.
Ultra thin and very flexible.
You can buy these nail stickers as individual colours or as a set of 9 (all colours) and save 30%.


We've worked with Jasoren on a number of projects and couldn't be happier having them as our software development partner. Their adaptability and steadfast dedication are exemplary, and they always kept our best interest in mind. They can deliver on a tight timeline and budget, and are highly responsive. We'll definitely continue working with Jasoren on our next projects.


text:
Volkswagen crisis: Car giant warned against emissions rigging eight years ago
Bosch, the German engineering firm, raised concerns in 2007 over legality of "defeat devices", leaked documents show
The Department for Transport, has announced that it will re-run laboratory tests on engines Photo: Getty Images
By Tom Morgan, Special Correspondent, and Melanie Hall, in Berlin
5:15PM BST 27 Sep 2015
Volkswagen was warned against emissions-rigging eight years ago by the parts supplier for its so-called "defeat devices", leaked documents show.
Bosch, the German engineering firm, is said to have explained in a memo to VW that use of the software to manipulate results would be against the law.
A 2007 letter warned against using the software during regular operation, according to an internal VW investigation seen by German weekly Bild am Sonntag.
Bosch is understood to have delivered the software to Volkswagen on the basis that it was test purposes and not for normal driving mode.
The company has previously confirmed it delivered components for regulating diesel exhaust systems to Volkswagen.
Fuelling speculation other carmakers were also using the technology, the company said in a statement last week: "We supply components for exhaust after-treatment to several manufacturers. The integration is the responsibility of the manufacturer."
News of the warning came as another German weekly Frankfurter Allgemeine Sonntagszeitung reported a VW technician raised concerns about illegal practice in 2011.
In other developments, it emerged on Sunday:
Volkswagen could face trouble funding leasing deals on new car as the European Central Bank (ECB) threatens to refuse to buy the loans that finance sales of its cars. The ECB declined to comment on claims it has put a temporary ban on buying VW's asset-backed securities debt backed by car loans.
Fresh allegations emerged that the UK Government was warned in 2009 by Transport Research Laboratories, a government consultancy, of serious discrepancies between on-road emissions and the results of lab test results.
New British on-road tests showed Vauxhall diesels averaged more than seven times the EU limit. Emissions Analytics (EA), which carried out the tests, said there was no suggestion of illegality. Vauxhall said: "We do not have 'defeat devices' in our vehicles."
VW has been reeling for more than a week since US regulators found its diesel engines were emitting up to 40 times the amount of nitrogen oxides than standards allow.
Some 11 million VW diesel cars built since 2008 are affected by the scandal. The company has pledged to provide a free fix. In Britain, more than 200,000 Volkswagen and Audi cars could be recalled to remove the devices.
The Vehicle Certification Agency, which oversees the testing of vehicles in Britain, is also investigating whether other manufacturers have manipulated the testing system.
Diesel motorists are likely to see their fuel bills go up as cars consume up to five per cent more fuel per mile when their pollution control systems are operating properly. Owners of cars containing defeat devices have been benefiting from lower fuel consumption but emitting air pollutants far in excess of the legal limit.
The Department for Transport is likely to re-test hundreds of models for emissions, prompting fears up to 1.5million UK owners could be hit with with backdated demands of up to £500 a year going back to 2012.
However, Jason Piper, Senior Manager at the Association of Chartered Certified Accountants told the Daily Telegraph it is more like that VW rather than motorists will be chased for the bill. Mr Piper told the Daily Telegraph how action over tax banding could form the basis of a criminal inquiry.
He said: "It could potentially affect Volkswagen because clearly there is a consequence of these cars being put into the marketplace. This would be under the law of cheating the public revenue."
VW is in the throes of the worst crisis in its 78-year history after admitting it rigged diesel cars sold in America to fool testers into believing they produce far less pollution than they do.
Investors in VW have been accused of ignoring clear signs of corporate governance failings at the German carmaker before the scandal. Howard Sherman, head of corporate governance business development at MSCI, the data provider, said: "We have had concerns about VW for some time."
Meanwhile, Volkswagen's Italian unit has told its dealers to stop selling affected diesels, the Corriera della Sera newspaper reported.
The move that would leave 40,000 cars stuck on Italian lots. Bosch responded to claims in Bild am Sonntag by telling the paper: "Within the scope of the business relationship with Volkswagen we are obliged to maintain confidentiality."
The manufacturer also refused to comment further when approached by the Daily Telegraph.
Follow @Telegraph
Read More Motoring
Auto Trader Car Search
Audi Q7 vs Volvo XC90: which is the best SUV?
Driven: James Bond's SPECTRE Aston Martin DB10
Aston Martin unveils James Bond's Aston Martin
Volkswagen scandal: Britons face extra £50 bill after recall
Is PCP finance a good deal in the long-term?
Geoffrey Lean: The statistics about diesel are crystal clear. It's deadly
Jeremy Clarkson's new Top Gear-style show could be called Gear Knobs
New Range Rover is a 'fortress' on wheels
Top Gear host Chris Evans sells Ferrari for over £1m at Goodwood Revival
Women's Life
Gardening Pictures


text:
Aedes ferinus är en tvåvingeart som beskrevs av Knight 1947. Aedes ferinus ingår i släktet Aedes och familjen stickmyggor.

Artens utbredningsområde är Filippinerna. Inga underarter finns listade i Catalogue of Life.

Källor

Stickmyggor
ferinus


text:
De Blasio Faces Advocates' Demand for $10 Million for Plan to End AIDS
BY DUNCAN OSBORNE Posted on June 18, 2015
Councilmember Corey Johnson, addressing the rally, said there's a "fighting chance" of securing the $10 million advocates are pressing for. | GAY CITY NEWS
AIDS groups gathered on the steps of City Hall to demand that the de Blasio administration contribute $10 million towards the Plan to End AIDS in the city budget for the fiscal year that begins on July 1.
"Ten million dollars is a nice first step," said Corey Johnson, the gay city councilmember who chairs the Council's Health Committee and is HIV-positive, at the June 18 rally. "Ten million is not going to get us the entire way so we're calling on the city to step up."
The rally, which drew about 70 people, was produced by the End AIDS NY 2020 Coalition, which is comprised of 60 AIDS groups. Many of the groups were on a task force, appointed by Governor Andrew Cuomo, that drafted the plan to reduce new HIV infections in New York from the current roughly 3,000 a year to 750 annually by 2020. The plan was endorsed by Cuomo and Mayor Bill de Blasio last year.
On City Hall steps, 70 gather to press mayor as budget negotiations near June 30 deadline
The task force members pressed the Cuomo administration to contribute at least $100 million to the plan in the current state fiscal year, which began on April 1. While Cuomo did negotiate reduced prices for the anti-HIV drugs that are a core component of the plan, the governor kicked in only $10 million. The coalition wants the city to match that amount in its budget.
"I don't want to set expectations too high, but I feel like we have a fighting chance," Johnson said at the rally.
The mayor's preliminary budget, which was released on February 9, cut the budgets of the city health department and the Human Resources Administration, the two city agencies that will deliver most if not all of the resources for implementing the plan. In its response to the preliminary budget, the City Council proposed adding $9.7 million for the plan. While the cuts to the two agencies were partially restored in the mayor's $78 billion executive budget, which was released on May 7, the City Council dollars were not included.
ACT UP New York member Jim Eigo addressing the June 18 rally. | GAY CITY NEWS
At the rally, Jim Eigo, a member of ACT UP New York, recalled a protest the AIDS activist group held on the steps of City Hall in 1987 when AIDS was burning through the city's gay community. About 80 ACT UP members were escorted in by Miriam Friedlander, then a councilmember.
"We were now Miriam's special guests and with her we proceeded to stage a fabulous, glorious protest," Eigo said. "All that time later, AIDS is still with us… So why are we here? Eighty percent of the epidemic is here in the city. Until the city pays its share, we will not end the epidemic."
In large measure, the plan will rely on pre-exposure prophylaxis (PrEP), post-exposure prophylaxis (PEP), and treatment as prevention (TasP) to prevent new HIV infections. PrEP involves the consistent use of anti-HIV drugs by uninfected people to prevent them from becoming infected. PEP is a 28-day course of anti-HIV drugs that prevents infection in someone with a recent exposure. TasP reduces the amount of virus in HIV-positive people so they cannot infect others. All three drug regimens are highly effective when taken correctly.
In an email, a City Hall spokesperson wrote, "Mayor de Blasio is deeply committed to ending the AIDS epidemic and has made key investments on the city-level, such as fully funding the HASA 30 percent rent cap. We are awaiting details on State funding for the blueprint and how it will be spent. Once we have those details, we will assess potential City funding."
Last year, the state and city agreed to cap the rent paid by people with AIDS living in publicly-subsidized housing at 30 percent of their income. AIDS groups had long sought this protection for people with AIDS. The city is paying two-thirds of the cost and the state is covering the rest. To date, the benefit has cost the city at least $22 million.
Jazz & The City
For Plan to End AIDS, Cuomo Offers $200 Million, de Blasio Expands Services to All With HIV
Highest Military Court Jettisons 22-Year HIV Transmission Precedent
State's Highest Bench Approves Reduced Charges for HIV Transmission
Cuomo Budget Includes Only $5 Million for PrEP


text:
List Of Top Ten Richest Journalists In Ghana
By Sky News Gh | January 11, 2023
List Of Top Ten Richest Journalists In Ghana.
A journalist is someone who gathers information based on happenings and or events in a form of texts, pictures, audio, or videos.
The information gathered is being processed into the news for public dissemination.
What Is Journalism?
What Types Of Journalism Do We Have?
List Of The Top Ten Richest Journalists In Ghana
Journalism is the collection, preparation, and distribution of news items to the public.
Salaries Of Ph.D. Holders in Ghana 2022/2023
It involves researching, writing and analyzing, and editing information on news or articles.
• Investigative journalism
• Sports Journalism
• Educational Journalism
• Political Journalism
• Business Journalism
• Arts Journalism
• Celebrity Journalism
• Crime Journalism.
Kwame Sefa Kayi is a distinguished host of the morning show "Kokrooko' on Peace FM. It is believed that aside from his salary, he has a share in all advertisement deals that comes to the table for this morning's show. He won the 2017 journalist of the year award. He acts as an ambassador for companies including Ghana's largest telecommunications network, MTN.
Abdul Malik Kweku Baako.
He is the founder and editor-in-chief of the New Crusading Guide. It was founded in the year 1998. Aside from this, he is also a political analyst and a pundit for the past 3 decades.
Nana Aba Anamoah.
She is the chief editor of GHOne TV. She formally works with TV3 and she's been in the journalism arena for more than ten years now.
Captain Smart.
He works at Multimedia Group of Companies, Adom FM. He works as a morning show host. Captain Smart is one of the key fighters against corruption for the past 10 years.
Paul Adom Otchere.
He is a TV show host on Metro TV and for the past twenty (20) years he has attained a very high level in the Journalism industry.
Gifty Anti.
She's one of the most important personalities in the journalism industry. Gifty Anti worked for the media for the past twenty (20) years. She had a baby girl after her marriage to Nana Ansah Kwao.
Kwabena Yeboah.
He's a renowned sports journalist and one of the richest personalities for the past thirty years.
He's also the president of the Sports Writers Association of Ghana.
Bola Ray.
Regarded as one of the richest journalists in Ghana, Bola Ray is a veteran radio presenter. He happens to be the Chief Executive Officer of Empire Group Of Companies.
Gina Blay.
She's the wife of the New Patriotic Party's current chairman, Freddie Blay whilst she is the former Editor-In-Chief of the Daily Guide newspaper.
Aremeyaw Anas.
He is a well-known investigative journalist who seeks to eradicate corruption, especially in his country, Ghana. Although his identity remains hidden, he's still regarded as one of the richest journalists in the country.
Salaries Of Enrolled Nurses In Ghana
Salaries of Lawyers in Ghana
Salaries of Judges In Ghana 2022/2023
Salaries of Bankers in Ghana 2022/2023
Salaries Of University Lecturers In Ghana, Check now
Category: Salary Tags: List Of Top Ten Richest Journalists In Ghana
← Salaries Of Enrolled Nurses In Ghana List Of Top 10 Richest Boxers In Ghana →
Twifo Hemang Senior High Technical School Courses and Details


In our opinion, wreaths are the most versatile pieces of decor one can have. From traditional greenery to unconventional hoops, we have wreath inspiration to fit any style. Follow along to find the perfect fit for you!
Understated and simple, greenery wreaths are anything but plain, with or without added florals.
Mix and match greenery picks for texture and layer colors to create a full-bodied wreath with pretty simplicity.
Add eucalyptus bush, simple floral picks, and a hand-lettered wooden banner to a simple twisted wreath for a sweet spring welcome.
Upgrade a grapevine wreath with succulent picks and air plants for an effortlessly trendy focal piece.
Bring wreaths to life with subtle or flashy pops of faux florals!
Transform an ordinary grapevine wreath into a spring masterpiece with an array of small floral sprays for colorful spring vibes.
Lavender and billy button sprays bring spring feels to this olive leaf wreath. Find your favorite flower stems here: http://bit.ly/2Gpbveg.
If you're looking for something out of the ordinary, there are plenty of options! From barn wood frames to hoops, out of the box wreaths are a trend we're loving!
DIY your way to a standout piece with an open-back barn woodframe, chipboard cutouts, and colorful floral picks. Get the DIY here: http://bit.ly/2pQxHaT.
Use steel hoops, roses, and greenery bushes to create a simple yet stunning modern wall hanging.
Start by wiring spring blooms to a steel hoop and finish with bundled and knotted yarn strands for dreamy boho charm! Looking for bright colors for spring? Try to mix and match different floral and yarn colors.
Find more floral inspiration: http://bit.ly/2GmPay8.
We hope you're inspired to spruce up your spring space. Be sure to share your creations using #HobbyLobbyMade. Happy creating!


I love being a doula. It has to be the best "job" in the world. I put quotes around job because although I work very hard, it doesn't feel like work when it's a passion.
Women know how to give birth. There's this misconception that doulas help moms labor or empower them to give birth naturally, and that's just not true. Women already possess everything in them to deliver their babies, they just need someone in their corner and someone to lean on, and THAT is what I do as a doula.
Someone recently asked me what my favorite part of being a doula was, is it the new babies? While new babies (or as I like to call them, "freshly squeezed") are so delectable and exquisite, it's not the babies that tug me to this work; it's the women. Seeing them dig down into themselves and find bravery, strength, and triumph in the face of the most vulnerable and powerful physical and emotional task any human being can ever do is the most awe inspiring thing one could be honored to witness. I get to see that. I get to see these women climb mountains. That's why I love what I doula.


When the guys get together for dinner, you know there's going to be some drinking. And if they're at all traditional, it's not beer they're drinking. It's baijiu, the Chinese rice wine that strikes fear into the hearts of foreigners everywhere. In this lesson, learn the names for the finest and the most famous of Chinese baijiu.