Only enable some checks for certain inner package - checkstyle

I have this package structure:
my.package
my.package.other
my.package.api
...
Generally, i want to use some checks, but for the my.package.api package, i want to use some other checks as well (checking JavaDoc). I found the suppression file:
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files="my[\\/]package[\\/]api[\\/]" checks="AdditionalChecks"/>
</suppressions>
But this will disable the additional checks for the special package (and enable those on other packages). Is there a way to do the opposite?

In this case, you must suppress the warnings in all packages but api. The files attribute of the suppress element takes Java regexes, so you can configure it like so (explanation of regex):
<suppressions>
<suppress files="my[\\/]package[\\/](?!api)[^\\/]+[\\/]"
checks="AdditionalChecks"/>
</suppressions>

Related

Using Doxygen with a manual tag file to generate links to external, online, docs

I have written a library, that uses another 3rd party library. This 3rd party library is provided online at a particular website. I have successfully used DoxyGen to document MY project, but I’m having great difficulty getting it to generate links to the 3rd party, online, documentation.
I figured out that I can create “dummy” entries for those classes in my files, and have pages generated for them, these pages have a link to the online documentation. The disadvantage to this is, I am forced to have a page on MY docs that are nothing but a link. Ideally, clicking on a 3rd party class should take the user DIRECTLY to the online documentation, rather than making users to go though a “do-nothing-but-link” page.
I have attempted to use External tag files for this, but keep getting errors when doxygen runs, and the classes tagged remain not-links in the output. I have not found ANY examples that use a manually created tag files to reference online documentation, but based on the wording of the doxygen instructions, it appears this should be doable.
My current tag file currently looks like this(though I have tried quite a few variations):
ExternalTags.xml
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<tagfile>
<compound kind="class">
<name>Vector3</name>
<filename>Vector3.html</filename>
</compound>
</tagfile>
And my config file contains the following line(also tried many variations):
TAGFILES = "externalTags.xml = http://docs.unity3d.com/ScriptReference/"
When the tag file is REMOVED from the configuration, doxygen runs without any errors. WITH the tag file option included, doxygen always generates the following error:
lookup cache used 941/65536 hits=6682 misses=1048
finished...
error: Fatal error at line 1 column 1: error while parsing element
error: Fatal error at line 1 column 1: error while parsing prolog
How can I resolve these errors, and get the links to be generated properly in the doxygen output?
Finally figured it out: it appears, I was missing part of the tag-file contents (namespace section).
When using the following tag-file contents, I got no error, and the links to Unity Types specified in the tag-file appeared properly in the output.
Also, note the filename fields do NOT include the .html extension.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<tagfile>
<compound kind="namespace">
<name>UnityEngine</name>
<filename></filename>
<class kind="class">UnityEngine::PlayerPrefs</class>
<class kind="class">UnityEngine::Vector3</class>
</compound>
<compound kind="class">
<name>UnityEngine::PlayerPrefs</name>
<filename>PlayerPrefs</filename>
</compound>
<compound kind="class">
<name>UnityEngine::Vector3</name>
<filename>Vector3</filename>
</compound>
</tagfile>
Probably not related to the issue, but have not tested changing it back, I renamed the tagfile: unity3d-doxygen-web.tag.xml
It's been a year, but if someone else hits this, the issue comes from the first line:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
should read as:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Doxygen just does not recognize true as a valid keyword.

How do I tell MSDeploy to deploy a package using a manifest?

I have a TeamCity build that creates a package by running the following:
msdeploy -verb:sync -source:contentPath=C:\path\to\files\myFilesToDeploy -dest:package=C:\path\to\packages\filesToDeployPackage.zip
Now I want to deploy this package and its contents to a few servers, but I want to do it using a manifest:
msdeploy -verb:sync -source:package=C:\path\to\packages\filesToDeployPackage.zip -dest:manifest=C:\path\to\manifests\destManifest.xml
destManifest.xml contains:
<?xml version="1.0" encoding="UTF-8"?>
<sitemanifest>
<contentPath path="\\machineNetworkName\path\to\final\content"/>
</sitemanifest>
But this gets me the following error:
Error: Source (contentPath) and destination (sitemanifest) are not compatible for the given operation.
The only way that I managed to have something work was by having 2 manifests, one for source and one for dest, and use contentPath on both XMLs, but then I can't use the package that my build produces. This case requires that folders are uncompressed first. Also I don't like having 2 manifests, I want to solve this with a single manifest.
I've checked Microsoft's docs and other threads and I can't find an example of this. Any hints?

How do I remove the "Set as StartUp Object" designation on an SSIS package?

It's easy to right-click and set a package as the startup object in an SSIS 2005 solution.
When it comes to removing that option, I could find nothing. There were dozens of pages on adding it, but nothing on removing it. After poking around all afternoon, I found that if I go to the "XXXXX.dtproj.user" file in the main solution folder, I can remove the "StartObjectID" tag in a text editor to accomplish this.
<?xml version="1.0" encoding="utf-8"?>
<DataTransformationsUserConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Configurations>
<Configuration>
<Name>Whatever</Name>
<Options>
<StartObjectID>Whatever.dtsx</StartObjectID>
<UserIDs />
<UserPasswords />
<OfflineMode>false</OfflineMode>
</Options>
</Configuration>
</Configurations>
</DataTransformationsUserConfiguration>
Is there a more obvious way to remove "Set as StartUp Object" from an SSIS package?
Right click solution folder ---> Configuration Properties---> Debugging----->Start Action
Set the start object id to Active Package

The attribute list is not defined in o:converter (Netbeans 7.3)

I'm trying to use the new org.omnifaces.converter.ListConverter in a primefaces picklist.
I added the new dependency in my project with maven and rebuilt the project in order to download the jar file:
<dependency>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId>
<version>1.5</version>
</dependency>
I'm importing the namespace in my facelets as follows:
xmlns:o="http://omnifaces.org/ui"
Still, when I try to use <o:converter> in my picklist as follows:
<o:converter converterId="omnifaces.ListConverter" list="#{projectBean.clientSource}" />
I get a message from netbeans 7.3 saying :
The attribute list is not defined in the component converter
It doesn't seem to cause any build failure though...
Am I missing something? Do I not use omnifaces as it is meant to be?
This is, unfortunately, "by design".
Netbeans apparently validates the attributes rather strictly based on their registration in the *.taglib.xml file.
The <o:converter> is supposed to support all attribtues of any arbitrary converter, such as pattern and locale of <f:convertDateTime>, the minFractionDigits and integerOnly of <f:convertNumber>, etcetera. It's however impossible to register all of those attributes in the *.taglib.xml file in order to satisfy all possible use cases of <o:converter>. It namely also supports custom converters instead of standard ones.
It's however valid to specify a "custom" tag attribute and this is where the <o:converter> relies on. The list attribute is actually an attribute of the omnifaces.ListConverter converter. I don't have Netbeans at hands and I'm not sure whether it interpretes it as an error or as an warning and or if it's configurable somewhere in its validation settings, but I can assure you that this is absolutely harmless and should at most generate a warning (and thus not as an error).
In case you didn't understood the use of <o:converter>, it's a special tag handler which evaluates the attributes of the specified converter during view render time instead of view build time. This way it's possible to supply "dynamic" attributes tied to bean properties instead of hardcoded string attributes.
I worked around this issue in netbeans by unzipping omnifaces-2.1.jar.
Edit omnifaces-2.1\META-INF\omnifaces-ui-taglib.xml
Find converter
Add an attribute under converter:
<attribute>
<description>
<![CDATA[
Model source list http://showcase.omnifaces.org/converters/ListConverter
]]>
</description>
<name>list</name>
<required>false</required>
<type>java.lang.String</type>
</attribute>
Just before < /tag >.
Zip the extracted contents (META-INF and org folders) into onmifaces-2.1.jar.
Use that jar in netbeans.
The first time when you add the dependency, netbeans don't update its namespaces list.
Then,
Execute "Clean and Build"
In some cases, restart Netbeans
And its all
The same has happened to me with omnifaces 1.7 and Netbeans 7.3.1

FitNesse configuration files

I'm using FitNesse as a functional testing framework. I'm running into trouble when FitNesse runs code that needs configuration.
If I need to get a connection string from the configuration file, I can get it to work by adding it to the FitServer.exe.config. However, I don't like that solution. I would like FitNesse to load my own configuration file, namely TheNameOfMyApp.dll.config.
Is this possible?
Sure, easy to do. I'm assuming you're using the dotnet or dotnet2 test runner. I'm using the dotnet2 test runner, and here's how I've got it set up:
First, when you !define your COMMAND_PATTERN, include -c suite.config. For instance, I have the following in root:
!define COMMAND_PATTERN {%m -c suite.config %p}
!define TEST_RUNNER {..\..\bin\Debug\FitServer.exe}
suite.config goes in the same dir as fitnesse.jar:
<suiteConfig>
<fit.Settings>
<appConfigFile>..\..\MyProjectFolder\fitnesse\MyProjectName.config</appConfigFile>
</fit.Settings>
<fit.Assemblies>
</fit.Assemblies>
<fit.FileExclusions>
<add>^\.svn$</add>
</fit.FileExclusions>
<fit.Namespaces>
</fit.Namespaces>
<fit.CellHandlers>
</fit.CellHandlers>
<fitlibrary.CellHandlers>
</fitlibrary.CellHandlers>
</suiteConfig>
MyProjectName.config looks like this:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="keyname" value="something" />
</appSettings>
</configuration>
You can make things easier for yourself if you use an absolute path for the appConfigFile. I started off with an absolute path, got things working, then switched to a relative path by trial and error.
Note that I'm running my test runner from a non-standard location, which will affect the relative path in suite.config. The path is relative to your TEST_RUNNER location, NOT to suite.config or fitnesse.jar.
yes it is possible but an awful load of work. you need to define a test-project where you have your tests in it and a "wrapper"-project where you have the functionality of providing the tests with data and configuration settings.