{"id":1000277,"date":"2006-11-16T16:33:44","date_gmt":"2006-11-16T21:33:44","guid":{"rendered":"http:\/\/www.elharo.com\/blog\/software-development\/java\/2006\/11\/16\/compiling-javac\/"},"modified":"2006-11-16T17:03:40","modified_gmt":"2006-11-16T22:03:40","slug":"compiling-javac","status":"publish","type":"post","link":"https:\/\/www.elharo.com\/blog\/software-development\/java\/2006\/11\/16\/compiling-javac\/","title":{"rendered":"Compiling Javac"},"content":{"rendered":"<p>I downloaded the javac sources and gave them a whirl with ant on my PowerBook. No success. They wouldn&#8217;t compile. I&#8217;m not sure whether this is because I&#8217;m using a Mac or because I&#8217;m using Java 5, and they want Java 6. There seem to be several missing or incompatible classes.<br \/>\n<!--more--><\/p>\n<pre>~\/projects\/compiler$ ant\r\nBuildfile: build.xml\r\n\r\nprep:\r\n    [mkdir] Created dir: \/Users\/elharo\/Projects\/compiler\/build\/bootclasses\r\n    [mkdir] Created dir: \/Users\/elharo\/Projects\/compiler\/build\/classes\r\n    [mkdir] Created dir: \/Users\/elharo\/Projects\/compiler\/dist\/bin\r\n    [mkdir] Created dir: \/Users\/elharo\/Projects\/compiler\/dist\/lib\r\n\r\ncheck-javac.isuptodate:\r\n\r\nbuild-lib.javac.jar:\r\n    [mkdir] Created dir: \/Users\/elharo\/Projects\/compiler\/build\/gensrc\/com\/sun\/tools\/javac\r\n     [copy] Copying 1 file to \/Users\/elharo\/Projects\/compiler\/build\/gensrc\/com\/sun\/tools\/javac\/resources\r\n    [javac] Compiling 250 source files to \/Users\/elharo\/Projects\/compiler\/build\/bootclasses\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:84: interface expected here\r\n    [javac] public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {\r\n    [javac]                                         ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1793: cannot find symbol\r\n    [javac] symbol  : class Kind\r\n    [javac] location: class com.sun.tools.javac.tree.JCTree.TypeBoundKind\r\n    [javac]         public Kind getKind() {\r\n    [javac]                ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTaskImpl.java:449: reference to Tree is ambiguous, both class com.sun.tools.javac.tree.Tree in com.sun.tools.javac.tree and class com.sun.source.tree.Tree in com.sun.source.tree match\r\n    [javac]     public TypeMirror getTypeMirror(Iterable&lt; ? extends Tree> path) {\r\n    [javac]                                                        ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTaskImpl.java:469: reference to Tree is ambiguous, both class com.sun.tools.javac.tree.Tree in com.sun.tools.javac.tree and class com.sun.source.tree.Tree in com.sun.source.tree match\r\n    [javac]     public Iterable&lt; ? extends Tree> pathFor(CompilationUnitTree unit, Tree node) {\r\n    [javac]                                                                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTaskImpl.java:469: reference to Tree is ambiguous, both class com.sun.tools.javac.tree.Tree in com.sun.tools.javac.tree and class com.sun.source.tree.Tree in com.sun.source.tree match\r\n    [javac]     public Iterable&lt; ? extends Tree> pathFor(CompilationUnitTree unit, Tree node) {\r\n    [javac]                               ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:434: com.sun.tools.javac.tree.JCTree.JCCompilationUnit is not abstract and does not override abstract method getTypeDecls() in com.sun.source.tree.CompilationUnitTree\r\n    [javac]     public static class JCCompilationUnit extends JCTree implements CompilationUnitTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:486: getTypeDecls() in com.sun.tools.javac.tree.JCTree.JCCompilationUnit cannot implement getTypeDecls() in com.sun.source.tree.CompilationUnitTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.util.List&lt;com .sun.tools.javac.tree.JCTree>\r\n    [javac] required: java.util.List&lt; ? extends com.sun.source.tree.Tree>\r\n    [javac]         public List&lt;jctree> getTypeDecls() {\r\n    [javac]                             ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:503: com.sun.tools.javac.tree.JCTree.JCImport is not abstract and does not override abstract method getQualifiedIdentifier() in com.sun.source.tree.ImportTree\r\n    [javac]     public static class JCImport extends JCTree implements ImportTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:515: getQualifiedIdentifier() in com.sun.tools.javac.tree.JCTree.JCImport cannot implement getQualifiedIdentifier() in com.sun.source.tree.ImportTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getQualifiedIdentifier() { return qualid; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:566: com.sun.tools.javac.tree.JCTree.JCClassDecl is not abstract and does not override abstract method getMembers() in com.sun.source.tree.ClassTree\r\n    [javac]     public static class JCClassDecl extends JCStatement implements ClassTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:604: getMembers() in com.sun.tools.javac.tree.JCTree.JCClassDecl cannot implement getMembers() in com.sun.source.tree.ClassTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.util.List&lt;com .sun.tools.javac.tree.JCTree>\r\n    [javac] required: java.util.List&lt; ? extends com.sun.source.tree.Tree>\r\n    [javac]         public List&lt;jctree> getMembers() {\r\n    [javac]                             ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:600: getExtendsClause() in com.sun.tools.javac.tree.JCTree.JCClassDecl cannot implement getExtendsClause() in com.sun.source.tree.ClassTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getExtendsClause() { return extending; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:624: com.sun.tools.javac.tree.JCTree.JCMethodDecl is not abstract and does not override abstract method getDefaultValue() in com.sun.source.tree.MethodTree\r\n    [javac]     public static class JCMethodDecl extends JCTree implements MethodTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:672: getDefaultValue() in com.sun.tools.javac.tree.JCTree.JCMethodDecl cannot implement getDefaultValue() in com.sun.source.tree.MethodTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getDefaultValue() { \/\/ for annotation types\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:661: getReturnType() in com.sun.tools.javac.tree.JCTree.JCMethodDecl cannot implement getReturnType() in com.sun.source.tree.MethodTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getReturnType() { return restype; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:689: com.sun.tools.javac.tree.JCTree.JCVariableDecl is not abstract and does not override abstract method getType() in com.sun.source.tree.VariableTree\r\n    [javac]     public static class JCVariableDecl extends JCStatement implements VariableTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:713: getType() in com.sun.tools.javac.tree.JCTree.JCVariableDecl cannot implement getType() in com.sun.source.tree.VariableTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getType() { return vartype; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1456: com.sun.tools.javac.tree.JCTree.JCTypeCast is not abstract and does not override abstract method getType() in com.sun.source.tree.TypeCastTree\r\n    [javac]     public static class JCTypeCast extends JCExpression implements TypeCastTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1468: getType() in com.sun.tools.javac.tree.JCTree.JCTypeCast cannot implement getType() in com.sun.source.tree.TypeCastTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getType() { return clazz; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1479: com.sun.tools.javac.tree.JCTree.JCInstanceOf is not abstract and does not override abstract method getType() in com.sun.source.tree.InstanceOfTree\r\n    [javac]     public static class JCInstanceOf extends JCExpression implements InstanceOfTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1491: getType() in com.sun.tools.javac.tree.JCTree.JCInstanceOf cannot implement getType() in com.sun.source.tree.InstanceOfTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getType() { return clazz; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1685: com.sun.tools.javac.tree.JCTree.JCArrayTypeTree is not abstract and does not override abstract method getType() in com.sun.source.tree.ArrayTypeTree\r\n    [javac]     public static class JCArrayTypeTree extends JCExpression implements ArrayTypeTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1695: getType() in com.sun.tools.javac.tree.JCTree.JCArrayTypeTree cannot implement getType() in com.sun.source.tree.ArrayTypeTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getType() { return elemtype; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1705: com.sun.tools.javac.tree.JCTree.JCTypeApply is not abstract and does not override abstract method getType() in com.sun.source.tree.ParameterizedTypeTree\r\n    [javac]     public static class JCTypeApply extends JCExpression implements ParameterizedTypeTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1717: getType() in com.sun.tools.javac.tree.JCTree.JCTypeApply cannot implement getType() in com.sun.source.tree.ParameterizedTypeTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getType() { return clazz; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1754: com.sun.tools.javac.tree.JCTree.JCWildcard is not abstract and does not override abstract method getBound() in com.sun.source.tree.WildcardTree\r\n    [javac]     public static class JCWildcard extends JCExpression implements WildcardTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1777: getBound() in com.sun.tools.javac.tree.JCTree.JCWildcard cannot implement getBound() in com.sun.source.tree.WildcardTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getBound() { return inner; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1802: com.sun.tools.javac.tree.JCTree.JCAnnotation is not abstract and does not override abstract method getAnnotationType() in com.sun.source.tree.AnnotationTree\r\n    [javac]     public static class JCAnnotation extends JCExpression implements AnnotationTree {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1814: getAnnotationType() in com.sun.tools.javac.tree.JCTree.JCAnnotation cannot implement getAnnotationType() in com.sun.source.tree.AnnotationTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]         public JCTree getAnnotationType() { return annotationType; }\r\n    [javac]                       ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1848: com.sun.tools.javac.tree.JCTree.JCErroneous is not abstract and does not override abstract method getErrorTrees() in com.sun.source.tree.ErroneousTree\r\n    [javac]     public static class JCErroneous extends JCExpression\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/JCTree.java:1860: getErrorTrees() in com.sun.tools.javac.tree.JCTree.JCErroneous cannot implement getErrorTrees() in com.sun.source.tree.ErroneousTree; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.util.List&lt;com .sun.tools.javac.tree.JCTree>\r\n    [javac] required: java.util.List&lt; ? extends com.sun.source.tree.Tree>\r\n    [javac]         public List&lt;jctree> getErrorTrees() {\r\n    [javac]                             ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTaskImpl.java:451: reference to Tree is ambiguous, both class com.sun.tools.javac.tree.Tree in com.sun.tools.javac.tree and class com.sun.source.tree.Tree in com.sun.source.tree match\r\n    [javac]         Tree last = null;\r\n    [javac]         ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTaskImpl.java:452: reference to Tree is ambiguous, both class com.sun.tools.javac.tree.Tree in com.sun.tools.javac.tree and class com.sun.source.tree.Tree in com.sun.source.tree match\r\n    [javac]         for (Tree node : path)\r\n    [javac]              ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTrees.java:80: com.sun.tools.javac.api.JavacTrees is not abstract and does not override abstract method getTree(javax.lang.model.element.Element,javax.lang.model.element.AnnotationMirror,javax.lang.model.element.AnnotationValue) in com.sun.source.util.Trees\r\n    [javac] public class JavacTrees extends Trees {\r\n    [javac]        ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTrees.java:164: getTree(javax.lang.model.element.Element,javax.lang.model.element.AnnotationMirror,javax.lang.model.element.AnnotationValue) in com.sun.tools.javac.api.JavacTrees cannot override getTree(javax.lang.model.element.Element,javax.lang.model.element.AnnotationMirror,javax.lang.model.element.AnnotationValue) in com.sun.source.util.Trees; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]     public JCTree getTree(Element e, AnnotationMirror a, AnnotationValue v) {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTrees.java:160: getTree(javax.lang.model.element.Element,javax.lang.model.element.AnnotationMirror) in com.sun.tools.javac.api.JavacTrees cannot override getTree(javax.lang.model.element.Element,javax.lang.model.element.AnnotationMirror) in com.sun.source.util.Trees; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]     public JCTree getTree(Element e, AnnotationMirror a) {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTrees.java:143: getTree(javax.lang.model.element.Element) in com.sun.tools.javac.api.JavacTrees cannot override getTree(javax.lang.model.element.Element) in com.sun.source.util.Trees; attempting to use incompatible return type\r\n    [javac] found   : com.sun.tools.javac.tree.JCTree\r\n    [javac] required: com.sun.source.tree.Tree\r\n    [javac]     public JCTree getTree(Element element) {\r\n    [javac]                   ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/api\/JavacTrees.java:187: cannot find symbol\r\n    [javac] symbol  : method getPath(com.sun.tools.javac.tree.JCTree.JCCompilationUnit,com.sun.tools.javac.tree.JCTree)\r\n    [javac] location: class com.sun.source.util.TreePath\r\n    [javac]         return TreePath.getPath(treeTopLevel.snd, treeTopLevel.fst);\r\n    [javac]                        ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/TreeCopier.java:45: com.sun.tools.javac.tree.TreeCopier is not abstract and does not override abstract method visitOther(com.sun.source.tree.Tree,P) in com.sun.source.tree.TreeVisitor\r\n    [javac] public class TreeCopier&lt;p> implements TreeVisitor&lt;jctree ,P> {\r\n    [javac]        ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/TreeCopier.java:403: inconvertible types\r\n    [javac] found   : com.sun.tools.javac.tree.Tree\r\n    [javac] required: com.sun.tools.javac.tree.JCTree\r\n    [javac]         JCTree tree = (JCTree) node;\r\n    [javac]                                ^\r\n    [javac] \/Users\/elharo\/Projects\/compiler\/src\/share\/classes\/com\/sun\/tools\/javac\/tree\/TreeCopier.java:406: inconvertible types\r\n    [javac] found   : com.sun.tools.javac.tree.Tree\r\n    [javac] required: com.sun.tools.javac.tree.JCTree.LetExpr\r\n    [javac]                 LetExpr t = (LetExpr) node;\r\n    [javac]                                       ^\r\n    [javac] 41 errors\r\n&lt;\/jctree>&lt;\/p>&lt;\/jctree>&lt;\/com>&lt;\/jctree>&lt;\/com>&lt;\/jctree>&lt;\/com>&lt;<\/pre>\n<p>I loaded the code into Eclipse, which also complains about some classes. One thing I noticed: they haven&#8217;t been using static code analyzers as much as I would. There are lots of unused imports here. Maybe NetBeans isn&#8217;t as aggressive as Eclipse about removing such detritus?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I downloaded the javac sources and gave them a whirl with ant on my PowerBook. No success. They wouldn&#8217;t compile. I&#8217;m not sure whether this is because I&#8217;m using a Mac or because I&#8217;m using Java 5, and they want Java 6. There seem to be several missing or incompatible classes.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[410],"class_list":["post-1000277","post","type-post","status-publish","format-standard","hentry","category-java","tag-flash"],"_links":{"self":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts\/1000277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/comments?post=1000277"}],"version-history":[{"count":0,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts\/1000277\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/media?parent=1000277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/categories?post=1000277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/tags?post=1000277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}