Does YAML::Node have a Mark structure? - yaml-cpp

I know that during parsing, yaml-cpp can throw an exception that has nice file location (line and column number) information for where the exception occurred.
How about post-parse? Is there any mechanism to determine the (first) line number of a YAML file that is associated with a given node?

Starting with 0.5.3 YAML::Node has a property Mark() to get information about line number etc.

No, there isn't, but this is an open feature request - see the issue on the project page.

Related

How can I use Format Arguments in BusinessException?

I have noticed the abp localization provide a Format Arguments mechanism to help generate realtime local string by this way, and I want to know how can I do the same thing in calling a BusinessException while all its overloads are not suitable for this purpose.
Please see the documentation: https://docs.abp.io/en/abp/latest/Exception-Handling#exception-localization
It is possible to set an exception code and data related to the exception. Then ABP automatically localizes the exception message by also using the data arguments you've provided.
Example exception:
throw new BusinessException("App:010046")
.WithData("UserName", "john");
And the related localization entry in the json file:
"App:010046": "Username should be unique. '{UserName}' is already taken!"
It is not using {0}, {1}... but using parameter names instead.

How to fix NullPointerException in sites.html in AEM?

I'm suddenly getting NullPointerException in the sites.html link on the author in Adobe Experience Manager, Version 6.0.0.SP3
Any ideas? Please help.
Internal Server Error
Cannot serve request to /sites.html/content in /libs/cq/gui/components/siteadmin/admin/pagecard/pagecard.jsp
Exception:
java.lang.NullPointerException
at org.apache.jsp.libs.cq.gui.components.siteadmin.admin.pagecard.pagecard_jsp.getCommentCount(pagecard_jsp.java:99)
...
We found missing jcr:content nodes for some pages under /content.
Some existing jcr:content nodes were missing jcr:title property.
We added the missing jcr:content nodes and jcr:title property.
This solved the issue.
Note:
The root of any of the sites (specifically sub-sites) should contain the following within their jcr:content –
1. Title
2. cq:allowedTemplates - to define the templates that go with this site specifically.
3. designPath – which defines the clientlibs for the site and can contain options for the sidekick.
Go to crx-quickstart folder in your file system and search for pagecard_jsp.java.
What is on line 99? I have a different version but I guess it is this line:
Resource commentsResource = page.getContentResource().getChild("alt/comments");
If this line throws a NPE, it means that one of the top-level pages under /content is missing jcr:content node or the node is corrupted.
It is just a wild guessing without details.
I think we need to add the property under /content/your-folder/jcr:content as**:
jcr:title : give the exact name . Click on add and save all.

IzPack: How to show UTF-8 license with LicensePanel?

As title. My license file contains UTF-8 characters and by default IzPack's LicensePanel seems to expect ASCII text files.
Is there a solution to this?
UPDATE:
I tried using "encoding" attributes with my resource line:
<res id="LicencePanel.licence" src="Licence.txt" encoding="utf-8"/>
It didn't work.
I have had a similar problem with my LicencePanel.licence resource. I have an InfoPanel.Info resource in my installation as well. Both my info file (readme.txt) and licence (licence.txt) are in plain text format. My compiler accepts the readme file, but not the licence file when I run the installation.
Perhaps it isn't an encoding problem, since both files were in the same format, but the info file was accepted and the license was not.
Looks like this isn't going to work. I looked at the source for 4.3.5 and it looks like this may be a bug. Maybe it is fixed in a future version. I had a look at the source and this is the issue. Inside LicencePanel.java:
String resNamePrifix = "LicencePanel.licence";
licence = ResourceManager.getInstance().getTextResource(resNamePrifix);
ResourceManager has two methods:
public String getTextResource(String resource, String encoding) throws ResourceNotFoundException, IOException
public String getTextResource(String resource) throws ResourceNotFoundException, IOException
The first second one is being used while the first one should be used.
Edit: Just checked 5.0.0-rc1 and I think the issue occurs there too. (Didn't test just glanced at the code).

MsTest, DataSourceAttribute - how to get it working with a runtime generated file?

for some test I need to run a data driven test with a configuration that is generated (via reflection) in the ClassInitialize method (by using reflection). I tried out everything, but I just can not get the data source properly set up.
The test takes a list of classes in a csv file (one line per class) and then will test that the mappings to the database work out well (i.e. try to get one item from the database for every entity, which will throw an exception when the table structure does not match).
The testmethod is:
[DataSource(
"Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\EntityMappingsTests.Types.csv",
"EntityMappingsTests.Types#csv",
DataAccessMethod.Sequential)
]
[TestMethod()]
public void TestMappings () {
Obviously the file is EntityMappingsTests.Types.csv. It should be in the DataDirectory.
Now, in the Initialize method (marked with ClassInitialize) I put that together and then try to write it.
WHERE should I write it to? WHERE IS THE DataDirectory?
I tried:
File.WriteAllText(context.TestDeploymentDir + "\\EntityMappingsTests.Types.csv", types.ToString());
File.WriteAllText("EntityMappingsTests.Types.csv", types.ToString());
Both result in "the unit test adapter failed to connect to the data source or read the data". More exact:
Error details: The Microsoft Jet database engine could not find the
object 'EntityMappingsTests.Types.csv'. Make sure the object exists
and that you spell its name and the path name correctly.
So where should I put that file?
I also tried just writing it to the current directory and taking out the DataDirectory part - same result. Sadly, there is limited debugging support here.
Please use the ProcessMonitor tool from technet.microsoft.com/en-us/sysinternals/bb896645. Put a filter on MSTest.exe or the associate qtagent32.exe and find out what locations it is trying to load from and at what point in time in the test loading process. Then please provide an update on those details here .
After you add the CSV file to your VS project, you need to open the properties for it. Set the Property "Copy To Output Directory" to "Copy Always". The DataDirectory defaults to the location of the compiled executable, which runs from the output directory so it will find it there.

MSBuild and IgnoreStandardErrorWarningFormat

I'm trying to write a MSBuild project that will generate html documentation using doxygen. I couldn't find anything about that on the net except for one example, which seems incomplete; it doesn't parse doxygen warnings.
I found that MSBuild's Exec task has parameters like IgnoreStandardErrorWarningFormat and CustomWarningRegularExpression. What is the "Standard Error/Warning Format" and what kind of REs are allowed in these properties?
Edit: ah, "Inside the Microsoft Build Engine" wrongly describes it as property in .NET 3.5, where it is actually from 4. No use for me...
The standard msbuild error/warning format is described here.
In a nutshell, the format is:
MSBuild recognizes error messages and warnings that have been specially formatted by many command line tools that typically write to the console. For instance, take a look at the following error messages - they are all properly formatted to be MSBuild and Visual Studio friendly.
Main.cs(17,20): warning CS0168: The variable 'foo' is declared but never used
C:\dir1\foo.resx(2) : error BC30188: Declaration expected.
cl : Command line warning D4024 : unrecognized source file type 'foo.cs', object file assumed
error CS0006: Metadata file 'System.dll' could not be found.
These messages confirm to special format that is shown below, and comprise 5 parts - the order of these parts are important and should not change:
Origin (Required)
Origin can be blank. If present, the origin is usually a tool name, like 'cl' in one of the examples. But it could also be a file name, like 'Main.cs' shown in another example. If it is a file name, then it must be an absolute or a relative file name, followed by an optional parenthesized line/column information in one of the following forms:
(line) or (line-line) or (line-col) or (line,col-col) or (line,col,line,col)
Subcategory (Optional)
Subcategory is used to classify the category itself further, and should not be localized.
Category (Required)
Category must be either 'error' or 'warning'. Case does not matter. Like origin, category must not be localized.
Code (Required)
Code identifies an application specific error code / warning code. Code must not be localized and it must not contain spaces.
Text (Optional)
User friendly text that explains the error, and must be localized if you cater to multiple locales.
The format is fully documented in the MSBuild source code here.
I can't find docs on it right now, but I think the standard error format is something like
.*(\d+(,\d+(,\d+,\d+)?)?)?: error .*:.*
.*(\d+(,\d+(,\d+,\d+)?)?)?: warning .*:.*
examples:
c:\somefile.txt(10,20,10,30): error CMD1234: blarg
c:\somefile.txt(10,20): error CMD1234: yadda yadda
c:\somefile.txt: warning ARG5678: blah blah