CN104965714A - Code generation method and system of application software - Google Patents

Code generation method and system of application software Download PDF

Info

Publication number
CN104965714A
CN104965714A CN201510448452.0A CN201510448452A CN104965714A CN 104965714 A CN104965714 A CN 104965714A CN 201510448452 A CN201510448452 A CN 201510448452A CN 104965714 A CN104965714 A CN 104965714A
Authority
CN
China
Prior art keywords
application software
code
template
configuration information
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510448452.0A
Other languages
Chinese (zh)
Inventor
陆品冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GCI Science and Technology Co Ltd
Original Assignee
GCI Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GCI Science and Technology Co Ltd filed Critical GCI Science and Technology Co Ltd
Priority to CN201510448452.0A priority Critical patent/CN104965714A/en
Publication of CN104965714A publication Critical patent/CN104965714A/en
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

The invention relates to a code generation method and a system of application software. The code generation method of the above application software comprises following steps: acquiring configuration information on the application software based on the requirement document; loading the above configuration information to a buffer module; loading a template engine template corresponding to the configuration information to the buffer module and creating a template engine at the buffer module; analyzing the template engine template according to the template engine and merge the configuration information with the analyzed template engine template in order to obtain a merge module; and generating codes of the application software according to the merge module. The code generation method and the system of application software have following beneficial effects: repeated editing and rectifying operation is unnecessarily performed by a software developer in order to achieve automatic generation of codes of the application software and to effectively increase generation efficiency of codes of the application software.

Description

The code generating method of application software and system
Technical field
The present invention relates to field of computer technology, particularly relate to a kind of code generating method and system of application software.
Background technology
Along with the high speed development of computer technology, various application software appears in our life; The making of application software be generally through respective code compiling, run and form, therefore the making of generation to application software of code is most important.
To application software to be produced in prior art, generally need Application developer to carry out comparatively detailed analysis and understanding to its requirement documents, then progressively carry out the work such as the editor of code, amendment, the formation efficiency of respective code so just may be caused low.
Summary of the invention
Based on this, be necessary in prior art, the inefficient technical matters of code building of application software, provides a kind of code generating method and system of application software.
A code generating method for application software, comprises the steps:
The configuration information of described application software is obtained according to the requirement documents of application software;
Described configuration information is loaded on the cache module of code generator;
After template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine;
Resolve template engine template according to described template engine, described configuration information and the template engine template after resolving are merged, obtain merging module;
According to the code of described merging CMOS macro cell application software.
A code generating system for application software, comprising:
Acquisition module, for obtaining the configuration information of described application software according to the requirement documents of application software;
Load-on module, for being loaded on the cache module of code generator by described configuration information;
Creation module, after template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine;
Parsing module, for resolving template engine template according to described template engine, merging described configuration information and the template engine template after resolving, obtaining merging module;
Generation module, for the code according to described merging CMOS macro cell application software.
The code generating method of above-mentioned application software and system, by obtaining the configuration information of application software, be loaded on the cache module of code generator, and after template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine, resolve template engine template with this; Again described configuration information and the template engine template after resolving are merged, obtain merging module, according to the code of described merging CMOS macro cell application software, editor and the amendment of repetition is wherein carried out without the need to software developer, achieve the automatic generation of application software code, effectively improve the code building efficiency of application software.
Accompanying drawing explanation
Fig. 1 is the code generating method process flow diagram of the application software of an embodiment;
Fig. 2 is the database physical table display interface schematic diagram of an embodiment;
Fig. 3 is the code generating system structural representation of the application software of an embodiment.
Embodiment
Below in conjunction with accompanying drawing, the code generating method of the application software provided of the present invention and the embodiment of system are described in detail.
With reference to figure 1, Figure 1 shows that the code generating method process flow diagram of the application software of an embodiment, comprise the steps:
S10, obtains the configuration information of described application software according to the requirement documents of application software;
In above-mentioned steps S10, the requirement documents of application software generally can comprise the relevant configuration information such as the function of application software needs realization.
Can according to the requirement documents design Physical data model of application software, and building database physics table, and then obtained the configuration information of described application software by above-mentioned Physical data model and database physical table, so that the logic improved in above-mentioned configuration information acquisition process and accuracy; Wherein, the display interface of above-mentioned database physical table can be as shown in Figure 2.
S20, is loaded on the cache module of code generator by described configuration information;
In above-mentioned steps S20, code generator is the software according to specific coding specification output code, directly can generate project, also can generate by single page.Described configuration information is loaded on the cache module of code generator, when making to need to use above-mentioned configuration information, the efficiency that it reads can be accelerated, be loaded on the cache module of code generator, but not preserved, the storage space that configuration information is shared in code generator can be reduced, ensure the speed of response of above-mentioned code generator.
Above-mentioned code generator (AutoCode) can be started, click " code robotization " button of code generator, click " increasing newly " button, with the relevant configuration information of loading application software in code robotization list place.
S30, after template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine;
In above-mentioned steps S30, above-mentioned template engine can be FreeMarker, FreeMarker is a template engine, a general utility tool based on template generation text output, uses pure Java to write, and generates to the Data Dynamic that its template servlet provides HTML (HyperText Markup Language, HyperText Markup Language), its template instruction is intuitively powerful, and compiler speed is fast, exports the speed close to static HTML page.
Can according in application program, the template engine template of the business rule design correspondence of wage for public use, above-mentioned template engine template can comprise the templates such as Model class, Dao layer, Service layer, Action layer, the Jsp page, Xml configuration.
S40, resolves template engine template according to described template engine, described configuration information and the template engine template after resolving is merged, and obtains merging module;
S50, according to the code of described merging CMOS macro cell application software.
In above-mentioned steps, described configuration information and the template engine template after resolving are merged, then carries out the generation of respective code, the efficiency of the code building of application software can be improved.
The configuration information of Xml form can be resolved to readable FieldMap, remerge template engine template and above-mentioned FieldMap, obtain merging module; Be combined the variable preset in module to replace according to certain rule, and automatically generate corresponding annotation; According to the setting of configuration information, the object code of Model class, Dao layer, Service layer, Action layer, the Jsp page, Xml configuration can be generated successively.
The code generating method of the application software that the present embodiment provides, by obtaining the configuration information of application software, be loaded on the cache module of code generator, and after template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine, resolve template engine template with this; Again described configuration information and the template engine template after resolving are merged, obtain merging module, according to the code of described merging CMOS macro cell application software, editor and the amendment of repetition is wherein carried out without the need to software developer, achieve the automatic generation of application software code, effectively improve the code building efficiency of application software.
In one embodiment, the step that the above-mentioned requirement documents according to application software obtains the configuration information of described application software can comprise:
According to the requirement documents design Physical data model of application software;
According to described Physical data model in the code details place configuration code title of code generator, database name, type of code and use template, to obtain the configuration information of described application software.
As an embodiment, above-mentionedly can also to comprise after the process of the code details place configuration code title of code generator, database name, type of code and use template according to described Physical data model:
List structure information corresponding to application software is obtained according to described configuration information;
According to described list structure information, initialization is carried out to described configuration information;
Configuration information after initialization is shown to list configuration and query configuration.
As an embodiment, above-mentioned configuration information after initialization is shown to list configuration and query configuration step after can also comprise:
The field Chinese name of each information that described list configuration place is shown and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence;
The field Chinese name of each information that described query configuration place shows and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence.
In the present embodiment, can in information such as the code details place configuration code title of code generator, database name, table name, bag name, class name, author, type of code and use templates; After preserving the information of previous step configuration, click " initial configuration ", AutoCode can be connected to database, obtains the list structure information of specifying, and for carrying out initialization to code configuration, is shown to list configuration and query configuration afterwards; Afterwards in list configuration place, to field Chinese name, whether show, whether the information such as non-NULL, editor's node, line number, row number carry out detailed configuration, at query configuration place, to field Chinese name, whether show, whether inquire about, whether derive the functions such as sequence and carry out detailed configuration, to ensure the integrality of the code building of subsequent applications software.
In one embodiment, the code generating method of above-mentioned application software can also comprise:
According to the function of application software, applied environment adjusts described code, to strengthen the readability of code.
In the present embodiment, after the code building of application software, can according to the function of application software, applied environment, adjusts accordingly the code of above-mentioned application software and upgrades, to ensure readability and the practicality of generated code.
With reference to figure 3, Figure 3 shows that the code generating system structural representation of the application software of an embodiment, comprising:
Acquisition module 10, for obtaining the configuration information of described application software according to the requirement documents of application software;
Load-on module 20, for being loaded on the cache module of code generator by described configuration information;
Creation module 30, after template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine;
Parsing module 40, for resolving template engine template according to described template engine, merging described configuration information and the template engine template after resolving, obtaining merging module;
Generation module 50, for the code according to described merging CMOS macro cell application software.
In one embodiment, above-mentioned acquisition module can be further used for:
According to the requirement documents design Physical data model of application software;
According to described Physical data model in the code details place configuration code title of the code generator of application software, database name, type of code and use template, to obtain the configuration information of described application software.
As an embodiment, above-mentioned acquisition module can be further used for:
List structure information corresponding to application software is obtained according to described configuration information;
According to described list structure information, initialization is carried out to described configuration information;
Configuration information after initialization is shown to list configuration and query configuration.
As an embodiment, above-mentioned acquisition module can be further used for:
The field Chinese name of each information that described list configuration place is shown and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence;
The field Chinese name of each information that described query configuration place shows and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence.
In one embodiment, the code generating system of above-mentioned application software can also comprise:
Adjusting module, for the function according to application software, applied environment adjusts described code, to strengthen the readability of code.
The code generating system of application software of the present invention and the code generating method one_to_one corresponding of application software of the present invention, the technical characteristic of setting forth in the embodiment of the code generating method of above-mentioned application software and beneficial effect thereof are all applicable to, in the embodiment of the code generating system of application software, hereby state.
Each technical characteristic of the above embodiment can combine arbitrarily, for making description succinct, the all possible combination of each technical characteristic in above-described embodiment is not all described, but, as long as the combination of these technical characteristics does not exist contradiction, be all considered to be the scope that this instructions is recorded.
The above embodiment only have expressed several embodiment of the present invention, and it describes comparatively concrete and detailed, but can not therefore be construed as limiting the scope of the patent.It should be pointed out that for the person of ordinary skill of the art, without departing from the inventive concept of the premise, can also make some distortion and improvement, these all belong to protection scope of the present invention.Therefore, the protection domain of patent of the present invention should be as the criterion with claims.

Claims (10)

1. a code generating method for application software, is characterized in that, comprises the steps:
The configuration information of described application software is obtained according to the requirement documents of application software;
Described configuration information is loaded on the cache module of code generator;
After template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine;
Resolve template engine template according to described template engine, described configuration information and the template engine template after resolving are merged, obtain merging module;
According to the code of described merging CMOS macro cell application software.
2. the code generating method of application software according to claim 1, is characterized in that, the step that the described requirement documents according to application software obtains the configuration information of described application software comprises:
According to the requirement documents design Physical data model of application software;
According to described Physical data model in the code details place configuration code title of the code generator of application software, database name, type of code and use template, to obtain the configuration information of described application software.
3. the code generating method of application software according to claim 2, it is characterized in that, describedly also to comprise after the process of the code details place configuration code title of code generator, database name, type of code and use template according to described Physical data model:
List structure information corresponding to application software is obtained according to described configuration information;
According to described list structure information, initialization is carried out to described configuration information;
Configuration information after initialization is shown to list configuration and query configuration.
4. the code generating method of application software according to claim 3, is characterized in that, described configuration information after initialization is shown to list configuration and query configuration step after also comprise:
The field Chinese name of each information that described list configuration place is shown and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence;
The field Chinese name of each information that described query configuration place shows and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence.
5. the code generating method of application software according to claim 1, is characterized in that, also comprises:
According to the function of application software, applied environment adjusts described code, to strengthen the readability of code.
6. a code generating system for application software, is characterized in that, comprising:
Acquisition module, for obtaining the configuration information of described application software according to the requirement documents of application software;
Load-on module, for being loaded on the cache module of code generator by described configuration information;
Creation module, after template engine template corresponding for described configuration information is loaded on described cache module, at described cache module drawing template establishment engine;
Parsing module, for resolving template engine template according to described template engine, merging described configuration information and the template engine template after resolving, obtaining merging module;
Generation module, for the code according to described merging CMOS macro cell application software.
7. the code generating system of application software according to claim 6, is characterized in that, described acquisition module is further used for:
According to the requirement documents design Physical data model of application software;
According to described Physical data model in the code details place configuration code title of code generator, database name, type of code and use template, to obtain the configuration information of described application software.
8. the code generating system of application software according to claim 7, is characterized in that, described acquisition module is further used for:
List structure information corresponding to application software is obtained according to described configuration information;
According to described list structure information, initialization is carried out to described configuration information;
Configuration information after initialization is shown to list configuration and query configuration.
9. the code generating system of application software according to claim 8, is characterized in that, described acquisition module is further used for:
The field Chinese name of each information that described list configuration place is shown and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence;
The field Chinese name of each information that described query configuration place shows and expanding function are arranged; Wherein, described expanding function comprises the function whether showing, whether inquire about, whether derive sequence.
10. the code generating system of application software according to claim 6, is characterized in that, also comprises:
Adjusting module, for the function according to application software, applied environment adjusts described code, to strengthen the readability of code.
CN201510448452.0A 2015-07-27 2015-07-27 Code generation method and system of application software Pending CN104965714A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510448452.0A CN104965714A (en) 2015-07-27 2015-07-27 Code generation method and system of application software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510448452.0A CN104965714A (en) 2015-07-27 2015-07-27 Code generation method and system of application software

Publications (1)

Publication Number Publication Date
CN104965714A true CN104965714A (en) 2015-10-07

Family

ID=54219748

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510448452.0A Pending CN104965714A (en) 2015-07-27 2015-07-27 Code generation method and system of application software

Country Status (1)

Country Link
CN (1) CN104965714A (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250164A (en) * 2016-08-16 2016-12-21 广州仕邦人力资源有限公司 A kind of code generating method based on requirement documents and device
CN106453517A (en) * 2016-09-20 2017-02-22 郑州云海信息技术有限公司 Configuration file generation method based on freemarker
CN106528168A (en) * 2016-11-22 2017-03-22 北京锐安科技有限公司 Method and apparatus for generating code framework
CN106970801A (en) * 2017-04-18 2017-07-21 北京思特奇信息技术股份有限公司 A kind of method and device of rapid build application system
CN107357588A (en) * 2017-07-19 2017-11-17 万帮充电设备有限公司 Object Code Generator method and device
CN107391153A (en) * 2017-07-31 2017-11-24 深圳乐信软件技术有限公司 A kind of code generating method and device based on Spring Yu MyBatis framework integrations
CN107977293A (en) * 2016-10-21 2018-05-01 英业达科技有限公司 Monitoring programme generation system and its production method
CN108228166A (en) * 2018-03-15 2018-06-29 链家网(北京)科技有限公司 A kind of back-end code generation method and system based on template
CN108572845A (en) * 2018-03-15 2018-09-25 华为技术有限公司 The upgrade method and related system of distributed micro services cluster
CN109062925A (en) * 2018-06-06 2018-12-21 中国平安人寿保险股份有限公司 Automatically generate the method, apparatus, computer equipment and storage medium of insert sentence
CN110032369A (en) * 2019-04-24 2019-07-19 成都市映潮科技股份有限公司 A kind of code automatic generation method, device and medium
CN111142871A (en) * 2019-12-24 2020-05-12 杭州安恒信息技术股份有限公司 Front-end page development system, method, equipment and medium
CN111324343A (en) * 2020-02-20 2020-06-23 支付宝(杭州)信息技术有限公司 Code generation method and device
CN112099766A (en) * 2020-11-18 2020-12-18 北京恒信启华信息技术股份有限公司 Demand management tool set for flexibly customizing enterprise application system
CN114385175A (en) * 2020-10-20 2022-04-22 武汉斗鱼鱼乐网络科技有限公司 Code generation method and device, electronic equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117202A (en) * 2009-12-30 2011-07-06 北大方正集团有限公司 J2EE architecture-based code generating device
CN103135979A (en) * 2011-12-05 2013-06-05 ***通信集团广东有限公司 Method, device and system for generating terminal applications
CN103135976A (en) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 Code automatic generation method and device
CN103500087A (en) * 2013-09-17 2014-01-08 福建亿榕信息技术有限公司 Code generation method and device based on maven plug-in and freemarker template
CN104331285A (en) * 2014-10-30 2015-02-04 北京思特奇信息技术股份有限公司 Automatic code generation method and system
CN104598240A (en) * 2015-01-20 2015-05-06 北京仿真中心 Platform-spanning simulation model development method and system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117202A (en) * 2009-12-30 2011-07-06 北大方正集团有限公司 J2EE architecture-based code generating device
CN103135976A (en) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 Code automatic generation method and device
CN103135979A (en) * 2011-12-05 2013-06-05 ***通信集团广东有限公司 Method, device and system for generating terminal applications
CN103500087A (en) * 2013-09-17 2014-01-08 福建亿榕信息技术有限公司 Code generation method and device based on maven plug-in and freemarker template
CN104331285A (en) * 2014-10-30 2015-02-04 北京思特奇信息技术股份有限公司 Automatic code generation method and system
CN104598240A (en) * 2015-01-20 2015-05-06 北京仿真中心 Platform-spanning simulation model development method and system

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250164A (en) * 2016-08-16 2016-12-21 广州仕邦人力资源有限公司 A kind of code generating method based on requirement documents and device
CN106453517A (en) * 2016-09-20 2017-02-22 郑州云海信息技术有限公司 Configuration file generation method based on freemarker
CN107977293A (en) * 2016-10-21 2018-05-01 英业达科技有限公司 Monitoring programme generation system and its production method
CN106528168A (en) * 2016-11-22 2017-03-22 北京锐安科技有限公司 Method and apparatus for generating code framework
CN106970801A (en) * 2017-04-18 2017-07-21 北京思特奇信息技术股份有限公司 A kind of method and device of rapid build application system
CN107357588B (en) * 2017-07-19 2020-08-14 万帮充电设备有限公司 Object code generation method and device
CN107357588A (en) * 2017-07-19 2017-11-17 万帮充电设备有限公司 Object Code Generator method and device
CN107391153B (en) * 2017-07-31 2020-10-16 深圳乐信软件技术有限公司 Code generation method and device based on Spring and MyBatis framework integration
CN107391153A (en) * 2017-07-31 2017-11-24 深圳乐信软件技术有限公司 A kind of code generating method and device based on Spring Yu MyBatis framework integrations
CN108572845A (en) * 2018-03-15 2018-09-25 华为技术有限公司 The upgrade method and related system of distributed micro services cluster
CN108228166B (en) * 2018-03-15 2020-07-07 贝壳找房(北京)科技有限公司 Template-based back-end code generation method and system
CN108228166A (en) * 2018-03-15 2018-06-29 链家网(北京)科技有限公司 A kind of back-end code generation method and system based on template
CN109062925A (en) * 2018-06-06 2018-12-21 中国平安人寿保险股份有限公司 Automatically generate the method, apparatus, computer equipment and storage medium of insert sentence
CN109062925B (en) * 2018-06-06 2023-08-22 中国平安人寿保险股份有限公司 Method, device, computer equipment and storage medium for automatically generating insert sentences
CN110032369A (en) * 2019-04-24 2019-07-19 成都市映潮科技股份有限公司 A kind of code automatic generation method, device and medium
CN111142871A (en) * 2019-12-24 2020-05-12 杭州安恒信息技术股份有限公司 Front-end page development system, method, equipment and medium
CN111142871B (en) * 2019-12-24 2023-06-06 杭州安恒信息技术股份有限公司 Front-end page development system, method, equipment and medium
CN111324343B (en) * 2020-02-20 2022-03-25 蚂蚁财富(上海)金融信息服务有限公司 Code generation method and device
CN111324343A (en) * 2020-02-20 2020-06-23 支付宝(杭州)信息技术有限公司 Code generation method and device
CN114385175A (en) * 2020-10-20 2022-04-22 武汉斗鱼鱼乐网络科技有限公司 Code generation method and device, electronic equipment and storage medium
CN112099766A (en) * 2020-11-18 2020-12-18 北京恒信启华信息技术股份有限公司 Demand management tool set for flexibly customizing enterprise application system

Similar Documents

Publication Publication Date Title
CN104965714A (en) Code generation method and system of application software
CN110007917B (en) Visual page generation and browsing method based on browser
CN111241454B (en) Method, system and device for generating webpage codes
CN110955410B (en) Code automatic generation method, device, equipment and medium
CN104317589A (en) Automatic code generating method and automatic code generating device for loading dynamic link library
CN115617327A (en) Low code page building system, method and computer readable storage medium
CN108984155B (en) Data processing flow setting method and device
CN106293664A (en) Code generating method and device
CN104035754A (en) XML (Extensible Markup Language)-based custom code generation method and generator
CN111124379B (en) Page generation method and device, electronic equipment and storage medium
US20150066977A1 (en) Method and system for managing digital resources
CN104834600A (en) Method for testing Android application controls
CN104750472A (en) Resource bundle management method and device of terminal application
CN104731588A (en) Page layout file generation method and device
CN106126564A (en) A kind of method rendered based on dynamic template language
CN107479866A (en) The method that open terminal applies data and function are realized based on reconfiguration technique
CN102521008A (en) Program compiling device and method for compiling program
US9038004B2 (en) Automated integrated circuit design documentation
Atzeni et al. CodeOntology: Querying Source Code in a Semantic Framework.
CN103294463A (en) Editing system and method
CN102710833A (en) Mobile phone test case and automatic generation method thereof
CN109213477B (en) Method and device for realizing automatic comparison of software line difference
CN110989999A (en) Code generation method and device, electronic equipment and medium
CN106991144B (en) Method and system for customizing data crawling workflow
CN115510361A (en) Data chart page generation method based on visual configuration and related equipment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20151007

RJ01 Rejection of invention patent application after publication